What Twelve Permissions does
The Twelve Permissions MCP server provides an agent-accessible interface to twelve NFTs on XRP Ledger mainnet. It supports collection browsing, individual piece lookup, purchase-related transaction information, x402 payment details, seal verification, and access to the issuer’s refusal records.
The collection’s issuer is rHEiuaYLNQ4UdLqeUrnE9AwEHqsDMr9g9R, with taxon 12 and a stated 5% royalty. The repository also publishes canonical authorization records, per-piece metadata, generated SVG seals, and mainnet mint, burn, and offer records. These files provide supporting material for independent checks, although the MCP endpoint is the agent-facing access point.
How it works
Connect an MCP client to the stateless Streamable HTTP URL:
POST https://twelve-permissions.tsharpe.workers.dev/mcp
The server exposes the collection as MCP tools rather than requiring an agent to read the repository directly. A client can request catalog data, inspect a specific NFT, obtain information needed for a purchase, or ask for verification of a seal.
Seal verification is based on the canonical record for a piece. The record is hashed with SHA-256, and the resulting value is used to deterministically generate the canonical SVG seal. The repository’s generate.js script can regenerate all seals without dependencies beyond Node.js. A local verification workflow compares regenerated files with the committed pieces and checks the corresponding mint transaction in records/minted.mainnet.json or an XRPL explorer.
The display PNG is separate from the canonical SVG. The PNG includes decorative field artwork and is not the hash-derived proof; the SVG is the artifact used for verification.
Tools and capabilities
The Twelve Permissions MCP server lists these tools:
list_pieces — browse the available collection pieces.
get_piece — retrieve information for an individual piece.
get_buy_transaction — obtain buying transaction information.
get_x402_info — retrieve x402 payment information.
verify_seal — check a piece’s hash-derived seal.
get_refusals — read the issuer’s published constraints and refusal records.
These tools cover discovery, inspection, verification, and purchase-related information. The supplied material does not state that the server signs transactions, holds wallets, completes purchases, or executes payments on behalf of a client.
Setup and configuration
No environment variables, API keys, or local dependencies are specified for using the hosted MCP endpoint. Configure an MCP-compatible client with the Streamable HTTP URL and call the available tools through that connection.
For repository-level verification, use Node.js to run node generate.js, then check whether git status reports changes. The generator writes into pieces/; an unchanged working tree indicates that the committed seals were reproduced byte for byte. The repository also includes events.json, piece metadata, ledger-derived offer records, and mint records for inspection.
Limitations and notes
The server is stateless and hosted at the published Cloudflare Worker URL. The README does not document client-specific setup instructions, authentication, rate limits, or transaction-signing behavior.
The collection’s first seven seals were withdrawn and reissued on 16 August 2026. Their original mint and burn transactions remain recorded, while the live offers are derived from ledger data. The repository states that operational tooling for minting, listing, sale watching, and wallet handling is not published.
The project is marked all rights reserved, with no license granted for reuse. The separate x402 Doctor service and the seller implementation are documented in the repository, but they are distinct from the collection’s MCP tools.