Skip to content

chore: retire pramana-mcp; move to archive/ and cut from CLI + workspace #244

Description

@sarath-soman

Motivation

Follow-up to #242. With the TUI archived and a `/pramana` skill (#243) planned to wrap the primitives, the MCP layer becomes a second API shape for the same 5 operations without a load-bearing use case in this workflow:

  • Three API shapes today for the same primitives: `pramana-engine` functions, CLI subcommands (`clap`), MCP tools (JSON schema). Each new primitive touches three places.
  • MCP's real value is autonomous tool-use (Claude reaching for `pramana.search` mid-turn without being asked) and cross-IDE compat (Claude Desktop / Cursor / Zed). Neither is load-bearing for a Claude-Code-only workflow where interaction goes through `/pramana` skill invocations.
  • Cost of carrying MCP: `pramana-mcp` crate, `rmcp` + `tokio` deps on CLI, `mcp` feature flag + its CI matrix row, e2e tests, a stdio server subprocess spawned per MCP consumer.

Lean target shape: `pramana-engine` (core) + `pramana-cli` (binary) + `/pramana` skill (human surface). Three layers, distinct jobs, no overlap.

Scope

Same pattern as #242 — move, don't delete.

Code move

CLI excision

  • `crates/pramana-cli/Cargo.toml`:
  • `crates/pramana-cli/src/main.rs`:
    • Remove the `Mcp { source }` enum variant (line ~122, behind `#[cfg(feature = "mcp")]`)
    • Remove the `Commands::Mcp { source } => cmd_mcp(source)` match arm (line ~256)
    • Remove `fn cmd_mcp(...)` (line ~282–340, includes the `rt.block_on(pramana_mcp::start_mcp_server(tm))` call)
  • `crates/pramana-cli/tests/mcp_e2e.rs` — delete the file (retires with the subcommand)

CI

Docs

  • `README.md`: the example MCP config block (`"args": ["mcp", "--source", "./knowledge"]`, line ~43) either (a) gets removed with a one-liner "MCP server retired; use the `/pramana` skill from Claude Code" note, or (b) stays with an explicit "archived — see `archive/pramana-mcp/` to resurrect" warning.
  • `docs/rust-port.md`: remove the `mcp` row from the feature matrix (line ~46), the feature-build example (line ~56), and the `pramana-mcp/` entry in the crate-layout tree (line ~75).

Side-effects to flag

Non-goals

Acceptance

  • `cargo build --release -p pramana-cli` succeeds without `mcp` (or `tui`) features
  • `pramana --help` no longer lists `mcp` as a subcommand
  • `cargo clippy --workspace --all-targets -- -D warnings` clean
  • `cargo test --workspace` passes (mcp_e2e tests disappear with the subcommand; remaining tests unaffected)
  • `.github/workflows/ci-rust.yml` feature matrix passes all remaining rows
  • `git log --follow archive/pramana-mcp/src/server.rs` shows full pre-archive history
  • `pramana-cli` `[dependencies]` section no longer mentions `tokio` or `pramana-mcp` or `rmcp`

Ordering

Logical execution order:

  1. chore: retire pramana-tui; move to archive/ and cut from CLI + workspace #242 (retire TUI)
  2. This issue (retire MCP)
  3. feat(skill): add /pramana skill with subcommands over MCP primitives #243 (add `/pramana` skill — revised per the "Side-effects" note above)

But nothing technically blocks picking up this issue before #242. They're independent excisions; the only shared artefact is `archive/README.md`.

Release impact

Patch bump. Release note: "MCP stdio server retired; `archive/pramana-mcp/` preserves the code. Everyday Claude usage: the `/pramana` skill wraps the CLI (see #243). Resurrect via `archive/README.md`."

Metadata

Metadata

Assignees

No one assigned

    Labels

    choreMaintenance and toolingenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions