Mission — Trust Graduation Gate

io.github.gomissionPublished by GitHub account gomissionv0.1.4Updated Oct 24, 2026

Trust Graduation gate: Claude can do real work once Mission decides what it is allowed to do.

VerifiedStreamable HTTPWeb executableDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

Mission's experimental MCP interception adapter that classifies proposed tool calls and holds consequential ones with an exact-action binding before a wrapped…

What you can do
  • Intercept and classify proposed tool calls from wrapped child MCP servers, holding high-risk or low-confidence calls before they reach the provider.
  • Record an advisory exact-action hold and local review receipt in local mode.
  • Write receipts containing action class, requesting child, target, SHA-256 input commitment, constraints, expiry and nonce.
  • Install and verify Claude Desktop configuration, with dry-run and JSON report options.
  • Expose a binding bridge that maps a held receipt into an external approval host and executor.
When to use it
Use it when you want a gate in front of MCP servers whose tools can send, change or delete things, so consequential calls are held for an exact, reviewable authorization instead of being executed on a chat message. It is a beta, experimental component, not a finished approval system.
Requirements
Node.js 20 or newer for the npm package, run via npx or installed locally. Claude Desktop for the installer workflow. Remote mode requires an explicitly configured, authenticated remote service; the legacy public endpoints are retired. Optional settings include MISSION_DONT_WRAP, MISSION_WORKSPACE, MISSION_LOCAL_URL or MISSION_LOCAL_PORT.
Before you install
It does not mint trusted keys or resume held calls; a separate authenticated approval host and executor must validate and consume a grant, so it is not a complete authorization system. Receipts keep a local argument summary, so treat the receipt directory as sensitive workspace data. The installer writes Claude Desktop configuration unless --dry-run is used. Status is experimental beta.

Installation

In SourceWeft

  1. Open Mission — Trust Graduation Gate in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.gomission%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "mission-trust-graduation-gate": {
      "type": "http",
      "url": "https://claude.gomission.io/mcp/"
    }
  }
}

README

@gomission/mcp

[Mission MCP Glama score]

Mission’s open MCP interception adapter for exact-action authority.

It has one narrow job: sit before a wrapped MCP provider, classify a proposed tool call, and hold consequential calls with an immutable Trust Graduation action binding. Low-risk calls may pass through. A chat message saying “approve” is never treated as authority.

Status: experimental beta. Apache-2.0. Zero runtime dependencies.

Prove the boundary first

Requirements: Node.js 20 or newer.

bash
npx -y @gomission/mcp@beta demo

The command uses a fake email provider and prints one machine-readable DEMO_RESULT. It proves that:

  • the consequential provider function was called zero times;
  • the hold contains an exact action and input hash;
  • changing the reviewed input changes the commitment;
  • chat text grants no execution authority.

This proves interception, not completed authorization or production adoption. The portable grant/replay proof lives in @trust-graduation/core:

bash
npx -y @trust-graduation/core@beta demo

The three primitives

PrimitiveResponsibilityPortable object
Mission GateDecide before a provider effectaction decision
Trust ProfileTrack earned authority per principal and action classevidence profile
Mission KeyAuthorize one exact action until expiry or revocationsingle-use grant

The MCP adapter implements the pre-provider hold. It does not mint a trusted Mission Key and it cannot resume a held call. A trusted approval host and executor must validate and atomically consume the matching key. The experimental A2A continuation is published at:

https://trustgraduation.org/extensions/a2a/action-authorization/v1

MCP Hold to Exact Provider Execution

The package root exposes the stable, zero-dependency binding bridge used by an external approval host and executor:

js
import { providerActionFromMcpBinding } from "@gomission/mcp";import { createProviderGate } from "@trust-graduation/core";
const gate = createProviderGate({  store: sharedAtomicGrantStore,  authenticateGrant: verifyApprovalIssuer,  provider: existingProviderFunction,  writeReceipt: durableReceiptSink});
// Re-read the actual provider input at the final seam; never trust a preview.const action = providerActionFromMcpBinding(  heldReceipt.action_binding,  actualProviderInput);const execution = await gate.execute({  binding: heldReceipt.action_binding,  approval: authenticatedMissionKey,  action});

The bridge verifies binding integrity and maps the intercepted identities, target, constraints, expiry, and nonce into the core executor shape. The core then re-hashes the actual provider input, authenticates and atomically consumes the Key, calls the provider, and writes result-linked evidence. Mutation or replay never reaches the provider.

For a generated adapter and objective provider-call counters:

bash
npm install @trust-graduation/core@betanpx trust-graduation init-adapternpx trust-graduation conformance ./mission-gate-adapter.mjs --json

With both packages installed, the included compatibility proof is:

bash
node node_modules/@trust-graduation/core/examples/mcp-provider-roundtrip.mjs

The MCP proxy still never resumes a held call merely because chat says "approve". This bridge is for the separately authenticated approval host and provider-bound executor.

Install for Claude Desktop

bash
npx -y @gomission/mcp@beta install-claude

The installer inspects the existing Claude Desktop MCP configuration:

  • if it finds consequential MCP servers, it selects --wrap;
  • otherwise it selects --local, an advisory exact-binding demonstration;
  • it never auto-selects the hosted read-only mode.

Restart Claude Desktop after installation, then verify:

bash
npx -y @gomission/mcp@beta verify

verify probes modern MCP with server/discover and tools/list, falling back to the initialize-era protocol for older endpoints. Add --json for a machine-readable report or --no-probe to inspect configuration only.

Modes

ModeWhat it enforcesWhat it does not do
--wrapIntercepts selected child MCP servers; holds high/critical or low-confidence calls before the child; fails closed if a child is unavailableDoes not resume a held call or trust chat approval
--localRecords an advisory exact-action hold and local review receiptIs not between another tool and its provider
--remoteRequires an explicitly configured, authenticated remote serviceThe old public PHP endpoint is retired; no hosted service is advertised by this release

Choose explicitly when needed:

bash
npx -y @gomission/mcp@beta install-claude --wrapnpx -y @gomission/mcp@beta install-claude --local# The legacy public remote is retired. Use the local or provider-interception mode above.

Useful flags:

  • --workspace <path> — store local receipts in an existing workspace.
  • --dry-run — print the configuration change without writing it.
  • --force — create configuration even when Claude Desktop is not detected.
  • --remote-url <url> — override the hosted endpoint.
  • MISSION_DONT_WRAP="name1,name2" — exclude selected MCP children.

Exact hold contract

For a consequential wrapped call, the adapter writes a local receipt containing:

  • action class;
  • privacy-preserving local workspace identifier;
  • requesting MCP child;
  • target when one can be inferred;
  • SHA-256 input commitment;
  • one-execution constraints;
  • expiry and nonce;
  • SHA-256 commitment over the complete binding.

Receipts are written atomically with owner-only file permissions. The adapter never stores the raw workspace path inside the binding. A local argument summary remains in the receipt for human review, so treat the receipt directory as sensitive workspace data.

MCP compatibility

Preferred protocol: 2026-07-28.

  • stateless per-request _meta with client capabilities;
  • mandatory server/discover;
  • one JSON-RPC message per HTTP POST; modern batches and client notifications fail closed;
  • HTTP binding for MCP-Protocol-Version, Mcp-Method, and Mcp-Name;
  • protocol-defined HeaderMismatch and unsupported-version errors;
  • resultType: "complete" and cache metadata;
  • initialize-era compatibility for 2025-11-25 and 2024-11-05.

The authority manifest is advertised through MCP discovery under the experimental mission-authority/v1 capability.

Security boundary

The adapter does not claim:

  • that a model or chat UI authenticated the principal;
  • that a review receipt is an approval grant;
  • exactly-once behavior at an external provider;
  • independent conformance or production validation;
  • global trust in an agent.

Use @trust-graduation/core to create and validate exact grants. The executor must authenticate the grant issuer, re-bind the actual provider input, atomically consume the key, invoke the provider at most once, and reconcile unknown provider outcomes.

Open-core boundary

Free and open:

  • this MCP adapter;
  • @trust-graduation/core and its schemas;
  • @gomission/mission-schemas conformance vocabulary;
  • the A2A exact-action authorization extension;
  • Mission Lite’s local focus app.

Commercial Mission may provide managed policy, trusted approval surfaces, hosted audit/receipt operations, organization controls, support, and provider integrations. Product entitlements never grant action authority.

Links

License

Apache-2.0. Mission names and logos are trademarks; the code license does not grant permission to imply endorsement.

Workspace isolation in 0.3.0-beta.3

The local chat bridge no longer assumes that port 8814 belongs to the selected workspace. An explicit absolute MISSION_WORKSPACE and explicit loopback MISSION_LOCAL_URL (or MISSION_LOCAL_PORT) are required even for the workspace identity probe. Redirects are rejected. Chat forwarding remains unavailable until the desktop provides a supported workspace-scoped authentication handoff; no query is sent by this release. Local advisory holds and receipts continue to work.

The legacy gomission.io/mcp/ and claude.gomission.io/mcp/ endpoints are retired. They are not an alternative authentication path.

Source: README.md at commit 997cdd0

Tools

0
SourceWeft has not read this server's tools yet.

Version history

1
  1. v0.1.4LatestSep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts