Skip to main content
Glama

Plan SAP Agent Identity

sap_agent_identity_plan

Free read-only planner for SAP agent registration, profile/image updates, Metaplex/MPL Core identity linking, SNS linking, x402 pricing metadata, and post-write verification. Use this before sap_payments_register_agent or sap_payments_update_agent so agents know the exact local-signer route, metadata contract, forbidden actions, and protocol fee verification checklist. It does not touch chain and never signs. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.

SAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoRequired public display name for the SAP agent. Keep it stable enough for explorers and humans.
agentIdNoOptional stable lowercase agent id, for example solking. This is separate from the on-chain agent PDA.
pricingNoOptional pricing tiers advertised by the agent. Use tokenType usdc + settlementMode x402 for pay.sh/x402 agent commerce.
agentUriNoOptional public HTTPS/IPFS/Arweave/Kommodo URI for the agent profile metadata or profile page. Never use local desktop file paths.
imageUrlNoOptional public image URL. This must be HTTPS, IPFS, Arweave, or another public URI; desktop file paths are not valid.
protocolsNoRequired protocol tags the agent supports, for example sap, mcp, jupiter, pyth, metaplex, sns, x402, payments.
snsDomainNoOptional .sol domain to link after ownership or registration is verified.
descriptionNoRequired public description of what the agent does, which protocols it can use, and its safety/trust boundaries.
metadataUriNoAlias for agentUri. Prefer a public JSON metadata document containing name, description, image, external_url, attributes, sap, metaplex, sns, and x402 fields.
ownerWalletNoOptional expected SAP owner wallet. Use this for verification planning only; signing still comes from the active local SAP profile.
capabilitiesNoRequired capability list. Prefer object form for production; strings are accepted as shorthand.
x402EndpointNoOptional public x402 discovery/payment endpoint, usually https://host/.well-known/x402 for external agent services.
metaplexAssetNoOptional Metaplex NFT or MPL Core asset/collection address to reference from public agent metadata.
intendedActionNoAgent identity lifecycle step to plan. Use register for a new SAP agent, update for profile/image/capability changes, link-metaplex for NFT/MPL Core identity, link-sns for .sol identity, or full-identity for the recommended end-to-end flow.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / description
      Added value: +"Plan SAP Agent Identity input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."
    • changedInput schema / properties / capabilities / items / description
      Previous value: -"Capabilities parameter for Plan SAP Agent Identity."New value: +"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."
    • changedInput schema / properties / capabilities / items / oneOf
      Previous value: -[
      -  {
      -    "description": "Capability id shorthand, for example jupiter:swap, pyth:price, metaplex:identity, sns:identity, or risk:management.",
      -    "type": "string"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "description": {
      -        "description": "Optional human-readable capability description for agents and explorers.",
      -        "type": "string"
      -      },
      -      "id": {
      -        "description": "Required stable capability id. Use protocol:action naming, for example jupiter:swap, pyth:price, metaplex:identity, sns:identity, x402:payments, or risk:management.",
      -        "type": "string"
      -      },
      -      "protocolId": {
      -        "description": "Optional protocol namespace backing this capability, for example sap, mcp, jupiter, pyth, metaplex, sns, x402, or custom.",
      -        "type": "string"
      -      },
      -      "version": {
      -        "description": "Optional capability version string. Use semver when the capability maps to an API contract.",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "id"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "description": "Capability id shorthand, for example jupiter:swap, pyth:price, metaplex:identity, sns:identity, or risk:management.",
      +    "type": "string"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes.",
      +    "properties": {
      +      "description": {
      +        "description": "Optional human-readable capability description for agents and explorers.",
      +        "type": "string"
      +      },
      +      "id": {
      +        "description": "Required stable capability id. Use protocol:action naming, for example jupiter:swap, pyth:price, metaplex:identity, sns:identity, x402:payments, or risk:management.",
      +        "type": "string"
      +      },
      +      "protocolId": {
      +        "description": "Optional protocol namespace backing this capability, for example sap, mcp, jupiter, pyth, metaplex, sns, x402, or custom.",
      +        "type": "string"
      +      },
      +      "version": {
      +        "description": "Optional capability version string. Use semver when the capability maps to an API contract.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / pricing / items / description
      Previous value: -"Pricing parameter for Plan SAP Agent Identity."New value: +"Pricing array of x402/pay.sh pricing tiers for the registered agent or tool. Amounts should be denominated explicitly in USDC smallest units when applicable."
    • changedInput schema / properties / protocols / items / description
      Previous value: -"Protocols parameter for Plan SAP Agent Identity."New value: +"Protocols array of protocol identifiers such as sap, mcp, jupiter, pyth, metaplex, sns, or x402."
  2. Added

TDQS

B3.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, implying the tool may write, but the description repeatedly states it is 'read-only,' 'does not touch chain,' and 'never signs.' This is a direct contradiction, rendering the description unreliable. Additionally, openWorldHint=true suggests possible side effects outside the system, which the description does not address.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and repetitive, containing multiple identical phrases like 'Intent: agent bootstrap, routing, skills, or repair guidance.' and 'SAP MCP context...' The first sentence is clear, but the rest could be significantly trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, usage order, and safety constraints. However, it omits what the output plan contains despite an output schema being present. The contradiction with annotations also reduces completeness. For a complex tool, it provides adequate but imperfect context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all 14 parameters with full descriptions. The description adds some value by explaining parameter aliases (e.g., 'Alias for agentUri') and use cases, but much of the description is boilerplate repetition. Schema coverage is 100%, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Free read-only planner for SAP agent registration, profile/image updates, Metaplex/MPL Core identity linking, SNS linking, x402 pricing metadata, and post-write verification.' This clearly states the verb (planner) and the resources it covers, distinguishing it from write siblings like sap_register_agent or sap_update_agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this before sap_payments_register_agent or sap_payments_update_agent' and 'It does not touch chain and never signs,' providing clear when-to-use context and an exclusion (no direct writes). It also gives pricing and routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.