Skip to content

feat: multi-tool MCP compatibility (Codex, Crush)#35

Merged
timeleft-- merged 5 commits intomainfrom
builder/aspir-24-feat-add-cli-protocol-setup-co
Mar 27, 2026
Merged

feat: multi-tool MCP compatibility (Codex, Crush)#35
timeleft-- merged 5 commits intomainfrom
builder/aspir-24-feat-add-cli-protocol-setup-co

Conversation

@timeleft--
Copy link
Copy Markdown
Member

Summary

Make fava-trails usable by OpenAI Codex CLI and other non-Claude MCP clients (Crush/OpenCode) — not just Claude Code/Desktop.

  • Enrich tool descriptions with scope discovery, workflow guidance, and promote/sync reminders so agents without instructions field support can self-discover the full lifecycle
  • Add multi-tool config examples to README (Codex TOML + generic JSON) alongside existing Claude examples
  • Create AGENTS.md in data repo template — tool-agnostic onboarding doc (Codex reads AGENTS.md)
  • Genericize agent identity references throughout codebase (claude-code/claude-desktop → codex-cli/my-agent)

Key technical decision

Neither Codex nor Crush reads the MCP instructions field from InitializeResult. Tool descriptions are the only channel for guidance. We enriched descriptions and made get_usage_guide the explicit entry point for new agents.

Consensus review

  • GPT 5.2 Pro: 8/10 — "right interoperability surface, few schema tweaks recommended"
  • GPT 5.1 Codex: 7/10 — "strong progress, no material gaps for Codex agents"

Test plan

  • 571 tests pass (uv run pytest -v)
  • Ruff clean (uv run ruff check src/)
  • GPT 5.1 Codex reviewed Phase 1 changes for Codex MCP compatibility
  • 2-model consensus review on full implementation
  • Manual: Connect fava-trails from Codex CLI and verify save→promote→recall workflow

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

timeleft-- and others added 5 commits March 26, 2026 18:23
… promote, and sync guidance to MCP tool descriptions

- recall: add scope discovery priority order (env var → .fava-trails.yaml → hint → ask) and session start hint
- save_thought: add 'promote via propose_truth when finalized' guidance
- propose_truth: add 'call sync after promoting' guidance
- get_usage_guide: reposition as entry point for agents without instructions support
- tests: add 5 new assertions in TestToolDescriptionEnhancements

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ail_name desc

Address GPT 5.1 Codex review feedback:
- _build_trail_name_desc() now includes scope resolution fallback chain
  when FAVA_TRAILS_SCOPE_HINT is not set, so every tool surfaces
  discovery guidance for Codex and other non-Claude MCP clients
- Replace UTF-8 arrow in get_usage_guide description with ASCII

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… template

- README: Add OpenAI Codex CLI (TOML) and generic MCP client (JSON) config examples
- Create data_repo_template/AGENTS.md with tool-agnostic usage guide
- cli.py: Include AGENTS.md in bootstrap template file list

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- server.py: Replace claude-code/claude-desktop examples with codex-cli/my-agent
- server.py: Generalize MCP stderr logging comment
- orchestrator.py: Replace "Claude Sonnet agents" with "mapper agents"
- CLAUDE.md: Add pointer to AGENTS.md for non-Claude tools

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Schema-driven MCP clients (Codex) may omit optional params.
trail_name is enforced at runtime but was not in most inputSchema
required arrays, causing silent failures for non-Claude clients.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@timeleft-- timeleft-- merged commit 54fc628 into main Mar 27, 2026
7 checks passed
@timeleft-- timeleft-- deleted the builder/aspir-24-feat-add-cli-protocol-setup-co branch March 27, 2026 11:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant