Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 11 additions & 5 deletions apps/llm-mcp-reference/clients/cursor/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,17 @@

## Setup

1. Traverse checkout with working `traverse-mcp`.
2. Copy [`mcp.json.example`](mcp.json.example) into Cursor MCP settings (or project `.cursor`/MCP config as applicable).
3. Fix absolute paths.
1. Traverse checkout with working `traverse-mcp` (tested with **v0.8.2+**).
2. Copy [`mcp.json.example`](mcp.json.example) into Cursor MCP settings (Cursor Settings → MCP, or project MCP config as applicable).
3. Replace `/ABS/PATH/TO/Traverse` with your **absolute** Traverse checkout in both `cwd` and `env.TRAVERSE_REPO`.
4. Apply [`../../shared/prompts/system-boundary.md`](../../shared/prompts/system-boundary.md) in rules/instructions.
5. Exercise [`../../shared/workflows/traverse-starter.md`](../../shared/workflows/traverse-starter.md).
6. For meeting transcripts, follow [`../../shared/workflows/meeting-notes.md`](../../shared/workflows/meeting-notes.md) (tool sequence + sample transcript).
5. Exercise [`../../shared/workflows/traverse-starter.md`](../../shared/workflows/traverse-starter.md) when starter entrypoints are available in the MCP catalog; until then use discovery (`list_entrypoints`) and only render runtime fields.
6. For meeting transcripts, follow [`../../shared/workflows/meeting-notes.md`](../../shared/workflows/meeting-notes.md) (tool sequence + sample transcript) once `meeting-notes.process` is catalogued.

## Live evidence

See [`evidence/`](evidence/) — Cursor cloud agent ran the **same** `cargo run -p traverse-mcp -- stdio` command as `mcp.json.example` and captured discovery + execute/render transcripts (`llm-mcp-cursor-live-smoke`).

## Boundary

Cursor agents working **in this repo** still claim OS tickets via `AGENTS.md`; this façade is for **product** workflows through Traverse MCP, not for replacing Project 2 claim locks.
56 changes: 56 additions & 0 deletions apps/llm-mcp-reference/clients/cursor/evidence/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Cursor MCP live evidence (`llm-mcp-cursor-live-smoke`)

Captured **2026-07-29** against Traverse **v0.8.2** (`TRAVERSE_REPO=/tmp/Traverse`).

## What was proven

The Cursor façade config in [`../mcp.json.example`](../mcp.json.example) launches:

```bash
cargo run -p traverse-mcp -- stdio
```

with `cwd` / `TRAVERSE_REPO` pointing at a Traverse checkout. That exact command was exercised here (stdio JSONL envelopes, local_trust Mode A).

### Transcript A — discovery

File: [`cursor-mcp-stdio-transcript.jsonl`](cursor-mcp-stdio-transcript.jsonl)

Commands: `describe_server` → `list_entrypoints` → `list_content_groups` → `shutdown`

Observed kinds: `mcp_stdio_server_startup` (ready), `mcp_stdio_server_description`, `mcp_stdio_server_entrypoint_list`, `mcp_stdio_server_content_group_list`, `mcp_stdio_server_shutdown`.

### transcript B — validate / execute / render

File: [`cursor-mcp-execute-transcript.jsonl`](cursor-mcp-execute-transcript.jsonl)

Commands follow the upstream `mcp_stdio_server_execution_report_smoke.sh` path against the **current** MCP catalog workflow `expedition.planning.plan-expedition` (request_path `examples/expedition/runtime-requests/plan-expedition.json`).

Observed: validation `valid` → execution `completed` → report `rendered` → shutdown `complete`. stderr empty.

## Runtime fields only

Execution/report envelopes come from Traverse MCP — this façade does **not** invent structured business fields. Agents must present only fields returned by `render_execution_report` / execution envelopes.

## Catalog note (honest)

As of Traverse v0.8.2, `traverse-mcp stdio`’s default governed catalog is the **expedition** registry bundle (plus `core-runtime-example` content group). **`traverse-starter.*` / `meeting-notes.process` entrypoints are not listed yet** in that default catalog.

Implication for App-Refs:

- Cursor MCP config is correct for Mode A (stdio → `traverse-mcp`).
- Live product smoke against starter/meeting-notes **IDs** lands when those capabilities are published into the MCP catalog (or a documented catalog override ships upstream). Until then, this evidence proves the Cursor→MCP host path end-to-end on the catalog the server actually serves.

## Reproduce

```bash
export TRAVERSE_REPO=/absolute/path/to/Traverse
cd "$TRAVERSE_REPO"
printf '%s\n' \
'{"command":"describe_server"}' \
'{"command":"list_entrypoints"}' \
'{"command":"shutdown"}' \
| cargo run -q -p traverse-mcp -- stdio
```

Optional full execute path: see Traverse `scripts/ci/mcp_stdio_server_execution_report_smoke.sh`.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{"auth_boundary":{"default_mode":"local_trust","required_commands":["execute_entrypoint","render_execution_report"],"required_token_env":"TRAVERSE_MCP_STDIO_BEARER_TOKEN"},"content_group_count":1,"governing_spec":"022-mcp-wasm-server","host_mode":"stdio","kind":"mcp_stdio_server_startup","public_surface_id":"traverse.mcp.stdio-server","server_name":"traverse-mcp","status":"ready","supported_commands":["describe_server","list_content_groups","describe_content_group","list_entrypoints","describe_entrypoint","validate_entrypoint","execute_entrypoint","render_execution_report","shutdown"]}
{"auth_boundary":{"default_mode":"local_trust","required_commands":["execute_entrypoint","render_execution_report"],"required_token_env":"TRAVERSE_MCP_STDIO_BEARER_TOKEN","token_output_policy":"never_echo_raw_token"},"content_groups":[{"content_group_id":"core-runtime-example","display_name":"Core runtime example","governed_paths":["examples/templates/executable-capability-package/manifest.template.json","docs/executable-package-template.md","docs/local-runtime-home.md","scripts/ci/executable_package_template_smoke.sh"],"invocable_entrypoints":["describe_content_group"],"summary":"Traverse-neutral executable capability package template and local runtime shape.","validation_commands":["bash scripts/ci/executable_package_template_smoke.sh"]}],"downstream_validation_path":{"consumer_name":"youaskm3","governing_specs":["019-downstream-consumer-contract","020-downstream-integration-validation","021-app-facing-operational-constraints"],"public_surface_id":"traverse.mcp.downstream-consumer","validated_flow_id":"youaskm3_mcp_validation"},"governed_surface_counts":{"capabilities":6,"events":5,"workflows":1},"governing_spec":"022-mcp-wasm-server","host_mode":"stdio","kind":"mcp_stdio_server_description","public_surface_id":"traverse.mcp.stdio-server","runtime_authority":"Traverse runtime authority","server_name":"traverse-mcp","supported_commands":["describe_server","list_content_groups","describe_content_group","list_entrypoints","describe_entrypoint","validate_entrypoint","execute_entrypoint","render_execution_report","shutdown"]}
{"content_groups":[{"content_group_id":"core-runtime-example","display_name":"Core runtime example","governed_paths":["examples/templates/executable-capability-package/manifest.template.json","docs/executable-package-template.md","docs/local-runtime-home.md","scripts/ci/executable_package_template_smoke.sh"],"invocable_entrypoints":["describe_content_group"],"summary":"Traverse-neutral executable capability package template and local runtime shape.","validation_commands":["bash scripts/ci/executable_package_template_smoke.sh"]}],"entrypoints":{"capabilities":[{"artifact_kind":"capability","id":"expedition.planning.capture-expedition-objective","lifecycle":"active","summary":"Capture a structured expedition objective from destination, timing, and planning preference inputs.","version":"1.0.0"},{"artifact_kind":"capability","id":"expedition.planning.interpret-expedition-intent","lifecycle":"active","summary":"Interpret free-form expedition planning intent into structured route preferences, constraints, and assumptions.","version":"1.0.0"},{"artifact_kind":"capability","id":"expedition.planning.assess-conditions-summary","lifecycle":"active","summary":"Assess a deterministic expedition conditions summary from objective and interpreted intent context.","version":"1.0.0"},{"artifact_kind":"capability","id":"expedition.planning.validate-team-readiness","lifecycle":"active","summary":"Validate expedition team readiness from objective, conditions summary, and team profile context.","version":"1.0.0"},{"artifact_kind":"capability","id":"expedition.planning.assemble-expedition-plan","lifecycle":"active","summary":"Assemble the final expedition plan from objective, interpreted intent, conditions, and readiness inputs.","version":"1.0.0"},{"artifact_kind":"capability","id":"expedition.planning.plan-expedition","lifecycle":"active","summary":"Compose the canonical expedition planning workflow into one first-class governed capability.","version":"1.0.0"}],"events":[{"artifact_kind":"event","id":"expedition.planning.expedition-objective-captured","lifecycle":"active","summary":"A normalized expedition objective has been captured and is ready for downstream planning.","version":"1.0.0"},{"artifact_kind":"event","id":"expedition.planning.expedition-intent-interpreted","lifecycle":"active","summary":"An expedition intent has been interpreted into structured planning inputs for downstream steps.","version":"1.0.0"},{"artifact_kind":"event","id":"expedition.planning.conditions-summary-assessed","lifecycle":"active","summary":"A deterministic expedition conditions summary has been assessed for the current planning context.","version":"1.0.0"},{"artifact_kind":"event","id":"expedition.planning.team-readiness-validated","lifecycle":"active","summary":"A team readiness result has been validated for the expedition objective and conditions context.","version":"1.0.0"},{"artifact_kind":"event","id":"expedition.planning.expedition-plan-assembled","lifecycle":"active","summary":"A final expedition plan has been assembled and is ready for downstream consumption.","version":"1.0.0"}],"workflows":[{"artifact_kind":"workflow","id":"expedition.planning.plan-expedition","lifecycle":"active","summary":"Capture, interpret, validate, and assemble an expedition plan deterministically.","version":"1.0.0"}]},"governing_spec":"022-mcp-wasm-server","host_mode":"stdio","kind":"mcp_stdio_server_entrypoint_list","server_name":"traverse-mcp"}
{"content_groups":[{"content_group_id":"core-runtime-example","display_name":"Core runtime example","governed_paths":["examples/templates/executable-capability-package/manifest.template.json","docs/executable-package-template.md","docs/local-runtime-home.md","scripts/ci/executable_package_template_smoke.sh"],"invocable_entrypoints":["describe_content_group"],"summary":"Traverse-neutral executable capability package template and local runtime shape.","validation_commands":["bash scripts/ci/executable_package_template_smoke.sh"]}],"governing_spec":"022-mcp-wasm-server","host_mode":"stdio","kind":"mcp_stdio_server_content_group_list","server_name":"traverse-mcp"}
{"governing_spec":"022-mcp-wasm-server","host_mode":"stdio","kind":"mcp_stdio_server_shutdown","reason":"shutdown_command","server_name":"traverse-mcp","status":"complete"}
4 changes: 2 additions & 2 deletions docs/llm-reference-apps-plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,8 @@ v1 documents **Mode A** only. Do not revive HTTP `traverse-cli serve` as the pro
|---|---|---|
| `llm-mcp-reference-apps-plan` | Plan + scaffold (this doc + tree) | Done (#238) |
| `llm-mcp-claude-live-smoke` | Live Claude Desktop/Code path against `traverse-starter` | Ready |
| `llm-mcp-cursor-live-smoke` | Live Cursor MCP path | Ready |
| `llm-mcp-meeting-notes-workflow` | Document + config for meeting-notes via MCP | In Progress |
| `llm-mcp-cursor-live-smoke` | Live Cursor MCP path | In Progress |
| `llm-mcp-meeting-notes-workflow` | Document + config for meeting-notes via MCP | Done (#239) |
| `llm-mcp-chatgpt-adapter` | ChatGPT Actions/GPT mapping (or MCP when shipped) | Future / Ready when API stable |
| `llm-mcp-grok-adapter` | Grok tool-calling mapping | Future / Ready when API stable |
| `llm-mcp-embedded-host` | Mode B embedded prepare/cache for MCP host | Blocked on Traverse Spec 520 implement |
Expand Down
3 changes: 3 additions & 0 deletions scripts/ci/llm_mcp_reference_smoke.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ need apps/llm-mcp-reference/clients/claude-code/README.md
need apps/llm-mcp-reference/clients/claude-code/.mcp.json.example
need apps/llm-mcp-reference/clients/cursor/README.md
need apps/llm-mcp-reference/clients/cursor/mcp.json.example
need apps/llm-mcp-reference/clients/cursor/evidence/README.md
need apps/llm-mcp-reference/clients/cursor/evidence/cursor-mcp-stdio-transcript.jsonl
need apps/llm-mcp-reference/clients/cursor/evidence/cursor-mcp-execute-transcript.jsonl
need apps/llm-mcp-reference/clients/chatgpt/README.md
need apps/llm-mcp-reference/clients/grok/README.md
# Configs must mention traverse-mcp, not invent business fields
Expand Down
Loading