SAP MCP Server
Production-oriented Model Context Protocol server for OOBE Synapse Agent Protocol, Solana, Synapse AgentKit, SNS, and monetized hosted agent workflows.
SAP MCP exposes the same typed tool registry through two supported MCP launch modes:
- Local stdio for desktop agents and local development.
- Remote Streamable HTTP at
/mcpfor hosted customers and orchestrators.
It also includes a professional setup wizard, profile-managed config under ~/.config/mcp-sap, optional Bento policy integration, local and external signing modes, x402 monetization, a self-hosted OOBE facilitator, pay.sh provider YAML generation, and an A2A-compatible discovery card.
User-facing setup docs live in USER_DOCS/. Operator and engineering docs live in docs/.
1. Status
2. Install
Prerequisites:
node --version # >= 22.12.0
corepack enable
corepack prepare [email protected] --activate
pnpm --version # 11.7.0
From source:
pnpm install
pnpm run build
Do not use npm install for source deployments. This repository is locked and verified with pnpm.
From the published package:
npm install -g @oobe-protocol-labs/sap-mcp-server
3. Quick Start
Create or select a profile:
npx sap-mcp-config wizard
Repair hosted SAP MCP runtime entries without recreating the profile:
npx sap-mcp-config repair
After connecting hosted SAP MCP in an agent runtime, start the agent context with one short message:
Start SAP MCP.
The agent should call the free sap_agent_start tool or sap-agent-start
prompt, load sap_skills_bundle, and use the local sap_payments bridge for
paid/write hosted calls.
Inspect the active profile:
npx sap-mcp-config show
npx sap-mcp-config doctor
npx sap-mcp-config pubkey
npx sap-mcp-config profiles
Start local stdio MCP:
sap-mcp-server
or from source:
node dist/cli.js
Hosted customers connect their agents to https://mcp.sap.oobeprotocol.ai/mcp, but signing remains user-controlled. The recommended setup for most users is the wizard-managed pair of MCP entries:
sap: hosted Streamable HTTP SAP MCP athttps://mcp.sap.oobeprotocol.ai/mcp;sap_payments: local non-custodial payment bridge for x402/pay.sh paid/write calls.
Any user who wants to pay x402/pay.sh charges, register or operate a SAP identity, or execute value-moving Solana/SAP tools should run the wizard first and keep the dedicated wallet under ~/.config/mcp-sap/keypairs/ or behind an external signer. Read-only hosted discovery can use the remote URL without a local signer.
4. Local Client Config
For local agents, let SAP MCP follow the active profile manager instead of hard-coding wallet paths or stale RPC overrides:
{
"mcpServers": {
"sap": {
"command": "sap-mcp-server",
"env": {
"SAP_MCP_ALLOW_ENV_CONFIG_OVERRIDE": "false",
"SAP_LOG_LEVEL": "info"
}
}
}
}
Codex uses TOML rather than the JSON mcpServers shape. For hosted remote MCP, add this to ~/.codex/config.toml and restart Codex:
[mcp_servers.sap]
url = "https://mcp.sap.oobeprotocol.ai/mcp"
For paid/write hosted tools, add the local non-custodial payment bridge as well:
[mcp_servers.sap_payments]
command = "npx"
args = ["--yes", "--package", "@oobe-protocol-labs/[email protected]", "sap-mcp-server"]
startup_timeout_sec = 300
tool_timeout_sec = 300
[mcp_servers.sap_payments.env]
SAP_MCP_ALLOW_ENV_CONFIG_OVERRIDE = "false"
SAP_MCP_PAYMENTS_BRIDGE_ONLY = "true"
SAP_ALLOWED_TOOLS = "all"
SAP_LOG_LEVEL = "info"
On Windows, use command = "npx.cmd". The wizard can write this automatically.
Codex supports Streamable HTTP MCP servers with URL-based entries in config.toml. Use local stdio through npx only when you specifically want Codex to launch the local SAP MCP process:
[mcp_servers.sap]
command = "npx"
args = ["--yes", "--package", "@oobe-protocol-labs/[email protected]", "sap-mcp-server"]
[mcp_servers.sap.env]
SAP_MCP_ALLOW_ENV_CONFIG_OVERRIDE = "false"
SAP_LOG_LEVEL = "info"
On Windows, use command = "npx.cmd".
See 04. Local Stdio MCP Runbook.
5. Remote Server
Remote deployments expose MCP over Streamable HTTP:
node dist/remote/server.js
Production environment values should come from a private secret store or private deployment file, not from public docs. Public hosted agent-facing deployments can use SAP_MCP_AUTH_TYPE=none when x402, rate limits, and policy are enabled. API key or JWT auth remains available for private beta, enterprise, and admin deployments.
Remote endpoints:
GET /
GET /docs
GET /server.json
GET /favicon.png
GET /favicon.ico
GET /health
GET /openapi.json
GET /.well-known/x402
GET /pay/provider.yml
GET /.well-known/agent-card.json
GET /.well-known/sap-mcp-wizard.json
GET /.well-known/sap-mcp-tool-catalog.json
GET /tool-catalog.json
GET /wizard/install.sh
POST /mcp
GET /mcp
DELETE /mcp
GET / is a public, share-safe landing page with Open Graph/Twitter metadata. It exposes only public server information; keypair bytes, private wallet paths, RPC query secrets, and VPS-local paths must never appear there.
GET /docs serves the public documentation site for install, start, configuration, hosted remote MCP, x402/pay.sh payments, and MCP client setup.
Marketplace listings such as Smithery can use smithery.config.schema.json
to explain the hosted setup path. The schema intentionally asks for no
secrets: SAP MCP hosted reads work remotely, while paid/write calls use the
wizard-managed local sap_payments bridge, local profile policy, and
user-controlled signer.
See 05. Hosted Streamable HTTP Deployment and 07. HTTP Endpoints, MCP Clients, And Smoke Tests.
6. Monetization
Hosted HTTP deployments can require payment for paid tools/call requests while leaving local stdio and base MCP protocol calls free.
Initial model:
Enable x402:
SAP_MCP_MONETIZATION_ENABLED=true
SAP_MCP_MONETIZATION_PROVIDER=x402
SAP_MCP_MONETIZATION_PAY_TO=YOUR_SOLANA_USDC_RECIPIENT
SAP_MCP_X402_FACILITATOR_URL=YOUR_PRIVATE_OR_HOSTED_FACILITATOR_URL
Initialize and run the OOBE facilitator:
npx sap-mcp-facilitator init
npx sap-mcp-facilitator start
Generate a pay.sh provider YAML:
The hosted public catalog is available at https://mcp.sap.oobeprotocol.ai/pay/provider.yml.
It is secret-free and intended for pay.sh catalog/proxy discovery.
npx sap-mcp-pay-sh-spec \
--out sap-mcp-pay-sh.yml \
--upstream-url https://mcp.sap.oobeprotocol.ai \
--network mainnet \
--recipient YOUR_SOLANA_USDC_RECIPIENT
See 06. x402/pay.sh Monetization Settlement.
For local agent runtimes that cannot replay x402 challenges natively, install
the wizard's local sap_payments bridge and call sap_payments_call_paid_tool.
The legacy CLI helper is still available for terminal use:
npm exec --yes --package @oobe-protocol-labs/sap-mcp-server -- sap-mcp-x402-paid-call \
--tool sap_list_all_agents \
--arguments '{"limit":5}' \
--max-usd 0.02 \
--confirm
The helper signs payment payloads with the user's local SAP MCP profile and never sends keypair bytes to the hosted server.
7. Commands
pnpm run typecheck
pnpm run lint
pnpm test -- --run
pnpm run build
pnpm run verify:release
Installed binaries:
8. Documentation
Start with 00. Engineering Documentation Index.
9. Repository Layout
The repository is a modular monorepo. Real source code lives in packages/*/src/; the corresponding src/ directories are thin compatibility wrappers (export * from '../../packages/...') that preserve existing import paths.
packages/
core/ Shared runtime types, errors, logger, constants, guards, result
config-runtime/ Runtime config, secure config manager, setup wizard, runtime doctor, client injection
server-runtime/ MCP server factory, capability registration, server metadata
hosted-gateway/ Streamable HTTP MCP server, public home, premium routes, rate limiter, tx relay
local-bridge/ Local stdio MCP bridge, payment bridge process diagnostics
mcp-adapter/ Model Context Protocol adapter compatibility layer
schemas/ Public Zod schemas and protocol contracts
tools/ SAP, Solana, AgentKit, SNS, profile, skill, chat, payment, perps, and premium tools
ui-cards/ MCP Apps Card rendering, card builder, templates, protocol logos
wizard-core/ Shared CLI and desktop wizard flow
tool-plugin-template/ Trusted external tool-family plugin template
adapters/ Solana connection and public key adapter utilities
bin/ npx-safe bootstrap entrypoints for remote and local servers
memory/ Agent memory store, tool call store, stream buffer, Hermes bridge
observability/ Metrics collection and exporter
perps/ Perpetual futures analytics, Adrena builders, chart indicators, risk engine
payments/ x402 monetization, facilitator, usage ledger, pay.sh spec, pricing
policy/ Local, Bento, and hybrid policy engines, spending limits, permission checks
premium/ Premium runtime plugins, streams, webhooks, session management
prompts/ MCP prompt templates for developer, payments, context, execution-proof, registry
resources/ MCP resource templates for memory, execution-proof, reputation, profile, registry, stats
runtime/ Module resolution and payment bridge process management
sap/ SAP SDK client manager, types, and error classes
security/ Private-key guard, tool permissions, prompt injection notes, approval gates
session/ Session store, delegated sessions, agent sessions, session limits
signer/ Local, delegated, and external signer adapters, wallet guard, policy-enforcing wallet
solana/ Solana ATA utilities
strategies/ Strategy store and trade journal
transports/ stdio and HTTP transport layers
tui/ Terminal UI wizard save helper (legacy, source in src/tui/)
The root package.json re-exports all package surfaces so consumers can import from @oobe-protocol-labs/sap-mcp-server without referencing internal packages directly.
10. License
SAP MCP Server is released under the MIT License.