{
  "asyncapi": "3.0.0",
  "info": {
    "title": "Fynqo MCP Server",
    "version": "1.0.0",
    "description": "Model Context Protocol server for The Cracks Index. SSE transport.",
    "contact": {
      "url": "https://fynqo.app/contact",
      "email": "agents@fynqo.app"
    },
    "license": {
      "name": "CC-BY-4.0",
      "url": "https://creativecommons.org/licenses/by/4.0/"
    }
  },
  "servers": {
    "production": {
      "host": "api.fynqo.app",
      "protocol": "https",
      "pathname": "/mcp/cracks/sse",
      "description": "Production MCP SSE endpoint for The Cracks Index."
    }
  },
  "channels": {
    "tool_call": {
      "address": "/mcp/cracks",
      "description": "MCP tool-call channel. Clients POST JSON-RPC requests; server streams responses + progress events over SSE.",
      "messages": {
        "toolCallRequest": {
          "name": "toolCallRequest",
          "title": "MCP tool-call request",
          "summary": "JSON-RPC 2.0 envelope invoking an MCP tool (cracks.index, cracks.region, cracks.methodology, ...).",
          "contentType": "application/json",
          "payload": {
            "type": "object",
            "properties": {
              "jsonrpc": {
                "type": "string",
                "const": "2.0"
              },
              "id": {
                "type": [
                  "string",
                  "number"
                ]
              },
              "method": {
                "type": "string"
              },
              "params": {
                "type": "object"
              }
            },
            "required": [
              "jsonrpc",
              "method"
            ]
          }
        },
        "toolCallResponse": {
          "name": "toolCallResponse",
          "title": "MCP tool-call response",
          "summary": "JSON-RPC 2.0 result event streamed back via SSE.",
          "contentType": "application/json",
          "payload": {
            "type": "object",
            "properties": {
              "jsonrpc": {
                "type": "string",
                "const": "2.0"
              },
              "id": {
                "type": [
                  "string",
                  "number"
                ]
              },
              "result": {},
              "error": {
                "type": "object"
              }
            },
            "required": [
              "jsonrpc"
            ]
          }
        }
      }
    }
  },
  "operations": {
    "subscribe_to_tools": {
      "action": "receive",
      "channel": {
        "$ref": "#/channels/tool_call"
      },
      "summary": "Stream MCP tool-call responses",
      "description": "Client subscribes to the SSE channel and receives JSON-RPC responses (plus interim progress notifications) for in-flight tool invocations.",
      "messages": [
        {
          "$ref": "#/channels/tool_call/messages/toolCallResponse"
        }
      ]
    },
    "invoke_tool": {
      "action": "send",
      "channel": {
        "$ref": "#/channels/tool_call"
      },
      "summary": "Invoke an MCP tool",
      "description": "Client sends a JSON-RPC tool-call request. Standard MCP tools: cracks.index, cracks.region, cracks.methodology.",
      "messages": [
        {
          "$ref": "#/channels/tool_call/messages/toolCallRequest"
        }
      ]
    }
  }
}