SAP MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SAP_LOG_LEVEL | No | Log level (e.g., info, debug, error). | info |
| SAP_MCP_AUTH_TYPE | No | Authentication type for remote server: 'none' for public, 'api_key' or 'jwt' for private modes. | none |
| SAP_MCP_MONETIZATION_PAY_TO | No | Solana USDC recipient address for payment settlements. | |
| SAP_MCP_MONETIZATION_ENABLED | No | Set to 'true' to enable x402 monetization for paid tools. | false |
| SAP_MCP_X402_FACILITATOR_URL | No | URL of the self-hosted OOBE facilitator for x402 payments. | |
| SAP_MCP_MONETIZATION_PROVIDER | No | Monetization provider (only 'x402' currently supported). | x402 |
| SAP_MCP_ALLOW_ENV_CONFIG_OVERRIDE | No | If set to false, environment config overrides are disabled. Recommended for production. | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| sap_register_agentC | Register the connected wallet as a SAP agent using SDK AgentModule.register. |
| sap_update_agentC | Update the connected wallet SAP agent using SDK AgentModule.update. |
| sap_deactivate_agentA | Deactivate the connected wallet SAP agent. |
| sap_reactivate_agentC | Reactivate the connected wallet SAP agent. |
| sap_close_agentB | Close the connected wallet SAP agent and reclaim rent. |
| sap_report_callsC | Report served call count for the connected wallet SAP agent. |
| sap_update_reputation_metricsC | Update self-reported latency and uptime metrics for the connected wallet SAP agent. |
| sap_get_agentA | Fetch agent identity by owner wallet. If omitted, fetches the connected wallet agent. |
| sap_get_agent_statsC | Fetch agent stats by agent PDA. |
| sap_get_global_stateB | Fetch the on-chain global registry through SDK AgentModule.fetchGlobalRegistry. |
| sap_get_network_overviewA | Fetch real network counters from SDK DiscoveryRegistry.getNetworkOverview. |
| sap_get_agent_profileB | Fetch a hydrated SAP agent profile by owner wallet. |
| sap_is_agent_activeA | Check if a wallet owns an active SAP agent. |
| sap_discover_agentsA | Discover agents by protocol, capability, or capability list. Unfiltered global listing is not exposed by SDK v0.20. |
| sap_list_agentsA | Compatibility alias for filtered SAP agent discovery. Requires protocol or capability. Use sap_list_all_agents for a global on-chain directory snapshot. |
| sap_list_all_agentsB | Enumerate SAP AgentAccount PDAs directly from the on-chain program account set. Use this for current global directory requests such as "list all agents in the SAP ecosystem rn". |
| sap_find_tools_by_categoryA | Find on-chain tool descriptors by SDK tool category name or numeric category. |
| sap_get_tool_category_summaryB | Fetch SDK discovery summary across SAP tool categories. |
| sap_fetch_capability_indexC | Fetch a SAP capability index by capability ID. |
| sap_fetch_protocol_indexB | Fetch a SAP protocol index by protocol ID. |
| sap_fetch_tool_category_indexC | Fetch a SAP tool category index by numeric category. |
| sap_fetch_toolB | Fetch a tool descriptor by agent PDA and tool name. |
| sap_fetch_feedbackC | Fetch a feedback PDA by agent PDA and optional reviewer wallet. |
| sap_fetch_attestationA | Fetch an attestation PDA by agent PDA and optional attester wallet. |
| sap_fetch_escrowA | Fetch a V1 escrow by escrow PDA, or by agent PDA and optional depositor. |
| sap_fetch_escrow_v2A | Fetch a V2 escrow by escrow PDA, or by agent PDA, depositor, and nonce. |
| sap_fetch_pending_settlementB | Fetch a V2 pending settlement PDA. |
| sap_fetch_disputeC | Fetch a V2 dispute PDA. |
| sap_fetch_vaultA | Fetch a memory vault by agent PDA. |
| sap_fetch_sessionB | Fetch a session ledger by session PDA. |
| sap_fetch_epoch_pageB | Fetch an epoch page by session PDA and epoch index. |
| sap_fetch_stakeB | Fetch agent stake by stake PDA or agent PDA. |
| sap_fetch_subscriptionA | Fetch a subscription by PDA or by agent PDA/subscriber/subId. |
| sap_create_escrowC | Create a V1 escrow using SDK EscrowModule.create. |
| sap_deposit_escrowC | Deposit funds into a V1 escrow. |
| sap_settle_escrowC | Settle calls against a V1 escrow. |
| sap_settle_escrow_batchC | Batch settle V1 escrow entries using SDK EscrowModule.settleBatch. |
| sap_withdraw_escrowB | Withdraw funds from a V1 escrow. |
| sap_close_escrowB | Close an empty V1 escrow. |
| sap_x402_estimate_costB | Estimate cost for a number of calls using SDK X402Registry.estimateCost. Reads escrow/pricing when available and supports optional volume curve overrides. |
| sap_x402_calculate_costB | Pure local cost calculation using SDK X402Registry.calculateCost; does not read chain state. |
| sap_x402_prepare_paymentA | Prepare a V1 x402 payment context using SDK X402Registry.preparePayment. Deprecated by the SDK for production escrow creation; prefer Escrow V2 tools for new flows. |
| sap_x402_build_payment_headersB | Build SAP x402 HTTP headers from a public PaymentContext returned by sap_x402_prepare_payment. |
| sap_x402_build_headers_from_escrowB | Build SAP x402 HTTP headers by fetching escrow data for an agent wallet with SDK X402Registry.buildPaymentHeadersFromEscrow. |
| sap_x402_has_escrowB | Check whether an x402 escrow exists for an agent/depositor pair. |
| sap_x402_fetch_escrowB | Fetch raw x402 escrow account data using SDK X402Registry.fetchEscrow. Resolves V2 first, then V1 fallback. |
| sap_x402_get_balanceB | Fetch x402 escrow balance using SDK X402Registry.getBalance. |
| sap_x402_settleC | Settle served x402 calls through SDK X402Registry.settle. Must be called by the agent owner wallet. |
| sap_x402_settle_batchB | Batch-settle served x402 calls through SDK X402Registry.settleBatch. Must be called by the agent owner wallet. |
| sap_create_escrow_v2C | Create a V2 escrow using SDK EscrowV2Module.create. |
| sap_deposit_escrow_v2C | Deposit funds into a V2 escrow. |
| sap_settle_escrow_v2C | Settle calls against a V2 escrow. |
| sap_next_settlement_indexB | Read the next V2 settlement index. |
| sap_finalize_settlement_v2C | Finalize a V2 pending settlement. |
| sap_file_dispute_v2C | File a dispute for a V2 pending settlement. |
| sap_withdraw_escrow_v2B | Withdraw funds from a V2 escrow. |
| sap_close_escrow_v2B | Close a V2 escrow. |
| sap_give_feedbackC | Create on-chain feedback for an agent wallet. |
| sap_update_feedbackC | Update existing on-chain feedback for an agent wallet. |
| sap_revoke_feedbackB | Revoke feedback for an agent wallet. |
| sap_create_attestationB | Create an on-chain attestation for an agent wallet. |
| sap_revoke_attestationB | Revoke attestation for an agent wallet. |
| sap_fairscale_scoreD | Score an agent with SDK FairScaleRegistry.score. |
| sap_fairscale_trust_gateC | Evaluate an agent with SDK FairScaleRegistry.trustGate. |
| sap_init_vaultC | Initialize a memory vault for the connected agent. |
| sap_open_vault_sessionC | Open a vault session by 32-byte session hash. |
| sap_inscribe_memoryC | Inscribe encrypted memory using SDK VaultModule.inscribe. |
| sap_compact_inscribe_memoryC | Compact memory inscription with explicit vault/session PDAs. |
| sap_session_startC | Start a high-level SDK session by session ID. |
| sap_session_read_latestB | Read latest entries from a high-level SDK session ID. |
| sap_session_statusC | Fetch high-level SDK session status by session ID. |
| sap_publish_tool_by_nameC | Publish a tool descriptor using SDK ToolsModule.publishByName. |
| sap_update_toolC | Update tool descriptor hashes using SDK ToolsModule.update. |
| sap_deactivate_toolB | Deactivate a SAP tool descriptor by name. |
| sap_reactivate_toolC | Reactivate a SAP tool descriptor by name. |
| sap_report_tool_invocationsC | Report invocation count for a SAP tool descriptor. |
| sap_init_stakeC | Initialize stake for an agent wallet. |
| sap_deposit_stakeC | Deposit additional stake for an agent wallet. |
| sap_request_unstakeB | Request unstake for an agent wallet. |
| sap_complete_unstakeC | Complete unstake for an agent wallet. |
| sap_create_subscriptionC | Create a recurring subscription for an agent wallet. |
| sap_fund_subscriptionC | Fund a recurring subscription. |
| sap_cancel_subscriptionC | Cancel a recurring subscription. |
| sap_sns_check_domainB | Check whether a .sol domain is available for registration using the SAP SDK SnsModule. |
| sap_sns_batch_check_domainsB | Check availability for multiple .sol domains (up to 25) using the SAP SDK SnsModule. |
| sap_sns_resolve_domainA | Resolve a .sol domain to SAP agent identity, wallet, metadata, and SNS records using the SAP SDK SnsModule. |
| sap_sns_validate_recordsA | Validate SNS records for SAP agent compatibility (checks SOL, Pic, TXT records on-chain). |
| sap_sns_get_domain_pdaC | Derive the SNS domain PDA for a .sol domain using the SAP SDK SnsModule. |
| sap_sns_get_record_pdaC | Derive the SNS record PDA for a domain and record type using the SAP SDK SnsModule. |
| sap_sns_register_agent_domainA | Register a .sol domain for the configured local SAP agent wallet using the SAP SDK SnsModule. Builds, signs, and submits the full registration transaction with USDC payment in one call. Domain registration fees are paid in USDC plus SOL for rent and transaction fees. The SOL record is NOT set during registration (it requires a separate Ed25519 signature) — set it after using sap_sns_build_manage_record_transaction. |
| sap_sns_get_domain_recordsA | Fetch all configured SNS records for a .sol domain using the Bonfida SDK. Returns a key-value map of all records. |
| sap_sns_get_recordB | Fetch a single SNS record value for a .sol domain using the Bonfida SDK. |
| sap_sns_resolve_walletB | Resolve a .sol domain to its owner wallet public key using the Bonfida SDK. |
| sap_sns_check_ownershipB | Check whether a wallet owns a .sol domain using the Bonfida SDK. |
| sap_sns_build_manage_record_transactionA | Build an unsigned SNS record create/update/delete transaction using the Bonfida SDK. The returned transaction must be signed with sap_sign_transaction before submission. Use null value to delete a record. Note: SOL record is not supported — it requires a separate Ed25519 signature flow. |
| sap_sns_build_set_primary_domain_transactionA | Build an unsigned transaction to set a .sol domain as primary for the owner using the Bonfida SDK. The returned transaction must be signed with sap_sign_transaction before submission. |
| sap_network_statsA | Fetch real SAP network statistics using synapse-sap-sdk DiscoveryRegistry and GlobalRegistry. |
| sol_get_balanceB | Fetch the SOL balance for a wallet or account using the configured Solana RPC endpoint. |
| spl-token_deployTokenB | Deploy a new SPL token with Metaplex metadata. Returns the mint address and an unsigned transaction. |
| spl-token_transferB | Transfer SPL tokens between wallets. Optionally creates the recipient ATA. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| register-sap-agent | Step-by-step guide to register as SAP agent on Solana blockchain |
| analyze-sap-agent | Analyze SAP agent registration, capabilities, reputation, and on-chain activity |
| generate-sap-integration | Generate code snippets and configuration for integrating SAP SDK into a TypeScript project |
| debug-sap-error | Systematic debugging workflow for SAP SDK errors, transaction failures, and on-chain issues |
| explain-x402-settlement | Explain x402 payment protocol, settlement flows, and escrow mechanics for AI agent payments |
| create-paid-api | Create paid API endpoint with x402 payment protection for AI agent services |
| explain-proof-of-execution | Explain proof-of-execution cryptography, hash chains, and audit trail verification for AI agent calls |
| verify-execution-proof | Verify execution proofs, validate hash chains, and audit AI agent call histories on-chain |
| sap-agent-context | Get complete context about the current SAP MCP configuration, active profile, redacted signer status, and available capabilities. Use this before any SAP operations. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/OOBE-PROTOCOL/sap-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server