{
  "markdown": "# @gomission/mcp\n\n[![Mission MCP Glama score](https://glama.ai/mcp/servers/gomission/mcp/badges/score.svg)](https://glama.ai/mcp/servers/gomission/mcp/score)\n\nMission’s open MCP interception adapter for exact-action authority.\n\nIt has one narrow job: sit before a wrapped MCP provider, classify a proposed\ntool call, and hold consequential calls with an immutable Trust Graduation\naction binding. Low-risk calls may pass through. A chat message saying\n“approve” is never treated as authority.\n\nStatus: experimental beta. Apache-2.0. Zero runtime dependencies.\n\n## Prove the boundary first\n\nRequirements: Node.js 20 or newer.\n\n```bash\nnpx -y @gomission/mcp@beta demo\n```\n\nThe command uses a fake email provider and prints one machine-readable\n`DEMO_RESULT`. It proves that:\n\n- the consequential provider function was called zero times;\n- the hold contains an exact action and input hash;\n- changing the reviewed input changes the commitment;\n- chat text grants no execution authority.\n\nThis proves interception, not completed authorization or production adoption.\nThe portable grant/replay proof lives in `@trust-graduation/core`:\n\n```bash\nnpx -y @trust-graduation/core@beta demo\n```\n\n## The three primitives\n\n| Primitive | Responsibility | Portable object |\n| --- | --- | --- |\n| Mission Gate | Decide before a provider effect | action decision |\n| Trust Profile | Track earned authority per principal and action class | evidence profile |\n| Mission Key | Authorize one exact action until expiry or revocation | single-use grant |\n\nThe MCP adapter implements the pre-provider hold. It does not mint a trusted\nMission Key and it cannot resume a held call. A trusted approval host and\nexecutor must validate and atomically consume the matching key. The\nexperimental A2A continuation is published at:\n\n`https://trustgraduation.org/extensions/a2a/action-authorization/v1`\n\n## MCP Hold to Exact Provider Execution\n\nThe package root exposes the stable, zero-dependency binding bridge used by an\nexternal approval host and executor:\n\n```js\nimport { providerActionFromMcpBinding } from \"@gomission/mcp\";\nimport { createProviderGate } from \"@trust-graduation/core\";\n\nconst gate = createProviderGate({\n  store: sharedAtomicGrantStore,\n  authenticateGrant: verifyApprovalIssuer,\n  provider: existingProviderFunction,\n  writeReceipt: durableReceiptSink\n});\n\n// Re-read the actual provider input at the final seam; never trust a preview.\nconst action = providerActionFromMcpBinding(\n  heldReceipt.action_binding,\n  actualProviderInput\n);\nconst execution = await gate.execute({\n  binding: heldReceipt.action_binding,\n  approval: authenticatedMissionKey,\n  action\n});\n```\n\nThe bridge verifies binding integrity and maps the intercepted identities,\ntarget, constraints, expiry, and nonce into the core executor shape. The core\nthen re-hashes the actual provider input, authenticates and atomically consumes\nthe Key, calls the provider, and writes result-linked evidence. Mutation or\nreplay never reaches the provider.\n\nFor a generated adapter and objective provider-call counters:\n\n```bash\nnpm install @trust-graduation/core@beta\nnpx trust-graduation init-adapter\nnpx trust-graduation conformance ./mission-gate-adapter.mjs --json\n```\n\nWith both packages installed, the included compatibility proof is:\n\n```bash\nnode node_modules/@trust-graduation/core/examples/mcp-provider-roundtrip.mjs\n```\n\nThe MCP proxy still never resumes a held call merely because chat says\n\"approve\". This bridge is for the separately authenticated approval host and\nprovider-bound executor.\n\n## Install for Claude Desktop\n\n```bash\nnpx -y @gomission/mcp@beta install-claude\n```\n\nThe installer inspects the existing Claude Desktop MCP configuration:\n\n- if it finds consequential MCP servers, it selects `--wrap`;\n- otherwise it selects `--local`, an advisory exact-binding demonstration;\n- it never auto-selects the hosted read-only mode.\n\nRestart Claude Desktop after installation, then verify:\n\n```bash\nnpx -y @gomission/mcp@beta verify\n```\n\n`verify` probes modern MCP with `server/discover` and `tools/list`, falling back\nto the initialize-era protocol for older endpoints. Add `--json` for a\nmachine-readable report or `--no-probe` to inspect configuration only.\n\n## Modes\n\n| Mode | What it enforces | What it does not do |\n| --- | --- | --- |\n| `--wrap` | Intercepts selected child MCP servers; holds high/critical or low-confidence calls before the child; fails closed if a child is unavailable | Does not resume a held call or trust chat approval |\n| `--local` | Records an advisory exact-action hold and local review receipt | Is not between another tool and its provider |\n| `--remote` | Exposes hosted read-only Mission context | Does not intercept other MCP servers |\n\nChoose explicitly when needed:\n\n```bash\nnpx -y @gomission/mcp@beta install-claude --wrap\nnpx -y @gomission/mcp@beta install-claude --local\nnpx -y @gomission/mcp@beta install-claude --remote\n```\n\nUseful flags:\n\n- `--workspace <path>` — store local receipts in an existing workspace.\n- `--dry-run` — print the configuration change without writing it.\n- `--force` — create configuration even when Claude Desktop is not detected.\n- `--remote-url <url>` — override the hosted endpoint.\n- `MISSION_DONT_WRAP=\"name1,name2\"` — exclude selected MCP children.\n\n## Exact hold contract\n\nFor a consequential wrapped call, the adapter writes a local receipt containing:\n\n- action class;\n- privacy-preserving local workspace identifier;\n- requesting MCP child;\n- target when one can be inferred;\n- SHA-256 input commitment;\n- one-execution constraints;\n- expiry and nonce;\n- SHA-256 commitment over the complete binding.\n\nReceipts are written atomically with owner-only file permissions. The adapter\nnever stores the raw workspace path inside the binding. A local argument\nsummary remains in the receipt for human review, so treat the receipt directory\nas sensitive workspace data.\n\n## MCP compatibility\n\nPreferred protocol: `2026-07-28`.\n\n- stateless per-request `_meta` with client capabilities;\n- mandatory `server/discover`;\n- one JSON-RPC message per HTTP POST; modern batches and client notifications fail closed;\n- HTTP binding for `MCP-Protocol-Version`, `Mcp-Method`, and `Mcp-Name`;\n- protocol-defined `HeaderMismatch` and unsupported-version errors;\n- `resultType: \"complete\"` and cache metadata;\n- initialize-era compatibility for `2025-11-25` and `2024-11-05`.\n\nThe authority manifest is advertised through MCP discovery under the\nexperimental `mission-authority/v1` capability.\n\n## Security boundary\n\nThe adapter does not claim:\n\n- that a model or chat UI authenticated the principal;\n- that a review receipt is an approval grant;\n- exactly-once behavior at an external provider;\n- independent conformance or production validation;\n- global trust in an agent.\n\nUse `@trust-graduation/core` to create and validate exact grants. The executor\nmust authenticate the grant issuer, re-bind the actual provider input, atomically\nconsume the key, invoke the provider at most once, and reconcile unknown\nprovider outcomes.\n\n## Open-core boundary\n\nFree and open:\n\n- this MCP adapter;\n- `@trust-graduation/core` and its schemas;\n- `@gomission/mission-schemas` conformance vocabulary;\n- the A2A exact-action authorization extension;\n- Mission Lite’s local focus app.\n\nCommercial Mission may provide managed policy, trusted approval surfaces,\nhosted audit/receipt operations, organization controls, support, and provider\nintegrations. Product entitlements never grant action authority.\n\n## Links\n\n- Protocol: https://trustgraduation.org/\n- A2A extension: https://trustgraduation.org/extensions/a2a/action-authorization/v1\n- Mission: https://gomission.io/\n- Source: https://github.com/gomission/mcp\n\n## License\n\nApache-2.0. Mission names and logos are trademarks; the code license does not\ngrant permission to imply endorsement.\n",
  "bytes": 7852,
  "sha": "9f0903ef4872bb1baa33a6cc99c861c913c6f46f1fb08f6c5c608a029d167930",
  "repo_slug": "gomission/mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_gomission_mcp_29e7cd45/readme"
}