Mmcp.market

Sanction MCP server

by ericlovold·io.github.ericlovold/sanction·v0.9.0

The wallet an AI agent carries — mandate, budget, vault, and audit. Counterparties verify first.

B75/100grade B
What users say
No reviews yet
Be the first
Safety scan
B75/100

full report

Adoption
Growing

3 stars56 downloads/wk

Reviews

Write one

Nobody has reviewed Sanction yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Sanction tools (10)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • sanction_authorize

    ALWAYS call this before any purchase, subscription, API credit top-up, or money transfer. Sanction enforces the wallet owner's spend policy: amounts under the auto-approve threshold return immediately; amounts over the escalation threshold pause for human approval; blocked categories are hard-denied. Returns authorized:true with a request_id on approval, or authorized:false with a machine-readable

  • sanction_authorize_capability

    Call this BEFORE acquiring any new capability \u2014 installing a skill or plugin, enabling an integration, or calling an API you haven't used before. Sanction enforces the wallet owner's capability policy: blocked capabilities are hard-denied, capabilities off the allow-list are denied, and sensitive ones return escalated for human approval. Returns authorized:true to proceed, or authorized:false

  • sanction_authorize_provision

    ALWAYS call this before provisioning any resource \u2014 user seats, software licenses, cloud infrastructure, subscriptions with unit counts. One call governs both the resource (the wallet's resource allow/block/escalate lists) and the dollars (the same spend ladder and daily budget as purchases). Amounts or resources over the line pause for human approval; approval mints a one-use grant \u2014 re

  • sanction_authorize_tool

    Call this BEFORE invoking any other tool or external action (a different MCP tool, a shell command, a deploy, an email send). Sanction enforces the wallet owner's tool-governance policy: blocked tools are hard-denied, tools off the allow-list are denied, and sensitive tools return escalated for human approval. Returns authorized:true to proceed, or authorized:false with a machine-readable code (TO

  • sanction_check_authorization

    Poll an authorization request that returned 'escalated', to see whether the wallet owner has approved it yet. Pass the request_id from the escalated authorize/provision/tool response. While pending, status stays 'escalated' \u2014 wait and poll again. Once the owner approves, status becomes 'approved' and a one-use grant_id is returned: retry the ORIGINAL authorize call with the identical fields p

  • sanction_inject_credential

    Retrieve a decrypted credential value using a scoped execution JWT. Every injection is audit-logged with timestamp, agent ID, and credential label \u2014 raw values are never logged. Use the credential value immediately and do not store it in memory, files, or logs. Fails if the JWT is expired, revoked, or if the requested credential label was not in the original scope.

  • sanction_log_outcome

    Record a business outcome (an enrollment, booking, signed engagement, conversion) against this wallet. Outcomes are what the wallet's spend answers to: Sanction computes cost-per-outcome over a rolling window and, when the wallet has a cost_per_outcome ceiling configured, throttles further spend to human-gated once the ceiling is crossed. Call this when your system confirms a real outcome \u2014 n

  • sanction_log_tokens

    Call this after every LLM inference call (Claude, GPT-4, Gemini, Llama, etc.) to record token consumption. It is metered against three budget horizons \u2014 the seat's daily budget, the seat's monthly budget, and the pooled per-department daily token cap \u2014 and returns a 402 budget error naming which horizon was hit if any is exceeded; on a budget error the agent should stop making LLM calls

  • sanction_request_execution

    Mint a short-lived mandate (signed JWT) for a child agent, subprocess, or counterparty: credential scope plus a hard spend cap. Pass the JWT \u2014 never the root pxy_ key. Default 15 min, wallet-bound, freeze-aware. The other party verifies it at POST /mandate/verify with no API key. Required before sanction_inject_credential.

  • sanction_wallet_status

    Check the wallet's current spend and token budget consumption. Returns today's and month-to-date LLM token costs and real-money spend, plus a count of authorization requests pending human approval. Call this at the start of long agentic tasks to confirm budget headroom before initiating expensive operations, or when a prior authorize/log_tokens call returns a budget error.

Public scan report

scanner v0.1.9 · 2026-09-20 · same rubric, same numbers if you re-run it

1 medium
  • Code scan3 source files scanned20/25
  • Live reliabilityno gateway calls yet and no remote to proben/a
  • Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 1 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10

Findings (1)

  • mediumeval / new Function usedexec.eval
    mcp-server.js: …ode, sch); const makeValidate = new Function(`${names_1.default.self}`, `${names_1.de…
Overall 75/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

Install directly

Runs npx -y sanction-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add sanction -- npx -y sanction-mcp
Add to Cursor

Sanction: common questions

Is Sanction MCP server safe?
Mostly: it is graded B (75/100). Read the Sanction safety report
How do I install Sanction?
It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
Does Sanction need an API key?
Yes. The registry entry asks for SANCTION_API_KEY.
Is Sanction maintained?
The last commit was in the last day (2026-09-19). The latest release is v0.9.0.
What can I use instead of Sanction?
Servers from other publishers that do the same job: Lightning Enable MCP Server, agent-device MCP server and Agent-Native Chat MCP server. Compare all Sanction alternatives.

Alternatives to Sanction

Same job from other publishers: the closest match first, then the best rated.

All Sanction alternatives →
  • Lightning Enable MCP Server
    AI agent Lightning payments: L402, invoices, wallets, API discovery, budgets, self-serve signup.
    B
  • agent-device
    MCP server for mobile app automation: verify, control, and debug iOS, Android, TV, and desktop apps
    A
  • Agent-Native Chat
    Minimal chat-first app with durable threads, actions, and the app-agent loop
    A
  • Actual Budget MCP Server
    MCP server exposing Actual Budget accounts, transactions, budgets and reporting to LLM assistants.
    B
  • Mockserver
    Mock, record/replay, verify and chaos-test any HTTP, REST, gRPC or LLM dependency over MCP.
    A

More from ericlovold