{
  "name": "TSN Relay",
  "protocolVersion": "2025-06-18",
  "serverUrl": "https://mcp.thesoulnetwork.eu/mcp",
  "transport": "streamable-http",
  "tools": [
    {
      "name": "create_encrypted_inbox",
      "description": "Use when you need to provision an encrypted inbox and get a submit URL and owner token.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "type": "string",
            "example": "interactive"
          }
        },
        "required": [
          "mode"
        ]
      }
    },
    {
      "name": "create_live_channel",
      "description": "Use when you need to open a temporary live channel with a configurable lifetime.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lifetime_seconds": {
            "type": "integer",
            "example": 300
          }
        },
        "required": [
          "lifetime_seconds"
        ]
      }
    },
    {
      "name": "submit_encrypted_message",
      "description": "Use when you need to deliver an encrypted message to a relay inbox.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "namespace": {
            "type": "string",
            "example": "a1b2c3d4"
          },
          "payload": {
            "type": "string",
            "example": "encrypted-base64url-blob"
          }
        },
        "required": [
          "namespace",
          "payload"
        ]
      }
    },
    {
      "name": "read_inbox_history",
      "description": "Use when you need to read the non-expired encrypted messages in a relay inbox.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "namespace": {
            "type": "string",
            "example": "a1b2c3d4"
          },
          "token": {
            "type": "string",
            "example": "secret-owner-token"
          }
        },
        "required": [
          "namespace",
          "token"
        ]
      }
    },
    {
      "name": "post_to_live_channel",
      "description": "Use when you need to post a message to a live channel.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "channel": {
            "type": "string",
            "example": "abcd1234"
          },
          "text": {
            "type": "string",
            "example": "hello"
          }
        },
        "required": [
          "channel",
          "text"
        ]
      }
    },
    {
      "name": "build_form",
      "description": "Use when you need to create a shareable encrypted form and get a link and embed snippet.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Contact"
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                }
              }
            },
            "example": [
              {
                "name": "email",
                "label": "Email",
                "type": "email"
              }
            ]
          }
        },
        "required": [
          "name",
          "fields"
        ]
      }
    }
  ]
}
