{
  "schemaVersion": "1.0",
  "name": "CryptoProto MCP Server",
  "description": "Model Context Protocol server for the CryptoProto decentralized content ownership protocol. Exposes seven composable tool calls covering the full content lifecycle.",
  "status": "planned",
  "version": "0.1.0-alpha",
  "homepage": "https://cryptoproto.com",
  "documentation": "https://cryptoproto.com/docs",
  "installGuide": "https://cryptoproto.com/tools",
  "transport": "stdio",
  "tools": [
    {
      "name": "encrypt",
      "description": "AES-256-GCM encrypt content with a key.",
      "inputSchema": {
        "type": "object",
        "required": ["file", "key"],
        "properties": {
          "file": { "type": "string", "description": "Base64-encoded content to encrypt." },
          "key": { "type": "string", "description": "Base64-encoded encryption key." }
        }
      }
    },
    {
      "name": "upload",
      "description": "Upload ciphertext to Arweave for permanent storage.",
      "inputSchema": {
        "type": "object",
        "required": ["ciphertext"],
        "properties": {
          "ciphertext": { "type": "string", "description": "Base64-encoded ciphertext." }
        }
      }
    },
    {
      "name": "mint",
      "description": "Mint an ownership NFT on Solana.",
      "inputSchema": {
        "type": "object",
        "required": ["nft", "metadata"],
        "properties": {
          "nft": { "type": "object" },
          "metadata": { "type": "object" }
        }
      }
    },
    {
      "name": "register",
      "description": "Register a decryption key with the escrow.",
      "inputSchema": {
        "type": "object",
        "required": ["key"],
        "properties": {
          "key": { "type": "string" }
        }
      }
    },
    {
      "name": "challenge",
      "description": "Issue an ownership-proof challenge to a wallet.",
      "inputSchema": {
        "type": "object",
        "required": ["wallet"],
        "properties": {
          "wallet": { "type": "string" }
        }
      }
    },
    {
      "name": "verify",
      "description": "Verify a signed challenge and confirm NFT ownership on-chain.",
      "inputSchema": {
        "type": "object",
        "required": ["signature", "nft"],
        "properties": {
          "signature": { "type": "string" },
          "nft": { "type": "string" }
        }
      }
    },
    {
      "name": "decrypt",
      "description": "Decrypt ciphertext with the released key.",
      "inputSchema": {
        "type": "object",
        "required": ["ciphertext", "key"],
        "properties": {
          "ciphertext": { "type": "string" },
          "key": { "type": "string" }
        }
      }
    }
  ],
  "auth": {
    "type": "wallet-signature",
    "notes": "Tool calls that touch real on-chain state require a Solana wallet signature. The MCP server itself does not issue API keys."
  },
  "links": {
    "agentCard": "https://cryptoproto.com/.well-known/agent-card.json",
    "openapi": "https://cryptoproto.com/openapi.json",
    "skill": "https://cryptoproto.com/skill.md",
    "skillsIndex": "https://cryptoproto.com/skills/index.json"
  }
}
