{
  "agentsJson": "0.1.0",
  "info": {
    "title": "The Meridian Line",
    "description": "A working demonstration Ghost publication: a live Busymate AI assistant grounded in the magazine's own articles, one of the page's own actions published over WebMCP, an MCP server over the magazine's real Content API, a provided demo member for testing the identified experience, and hand-off to a person.",
    "version": "1.0.0"
  },
  "sources": [
    {
      "id": "mcp",
      "path": "https://ghost.demo.busymate.ai/openapi.json"
    }
  ],
  "flows": [
    {
      "id": "list_articles",
      "title": "list articles",
      "description": "The most recent articles published on The Meridian Line, with title, excerpt and URL — reads the magazine's own live Content API.",
      "actions": [
        {
          "id": "call",
          "sourceId": "mcp",
          "operationId": "mcpJsonRpcCall"
        }
      ],
      "fields": {
        "parameters": [
          {
            "name": "limit",
            "description": "How many articles, default 5, max 10",
            "required": false,
            "type": "number"
          }
        ],
        "responses": {
          "success": {
            "type": "object",
            "description": "The JSON-RPC 2.0 tools/call result for this tool."
          }
        }
      }
    },
    {
      "id": "search_content",
      "title": "search content",
      "description": "Search The Meridian Line's own published articles and pages (title + excerpt + link) for a query — reads Ghost's own public Content API, so it can never drift from what the site actually shows.",
      "actions": [
        {
          "id": "call",
          "sourceId": "mcp",
          "operationId": "mcpJsonRpcCall"
        }
      ],
      "fields": {
        "parameters": [
          {
            "name": "query",
            "description": "What to search for, e.g. 'sheet metal' or 'apprenticeship'",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "success": {
            "type": "object",
            "description": "The JSON-RPC 2.0 tools/call result for this tool."
          }
        }
      }
    },
    {
      "id": "get_contact_info",
      "title": "get contact info",
      "description": "The Meridian Line's (fictional) editorial address, email and publishing schedule.",
      "actions": [
        {
          "id": "call",
          "sourceId": "mcp",
          "operationId": "mcpJsonRpcCall"
        }
      ],
      "fields": {
        "parameters": [],
        "responses": {
          "success": {
            "type": "object",
            "description": "The JSON-RPC 2.0 tools/call result for this tool."
          }
        }
      }
    },
    {
      "id": "subscribe_newsletter",
      "title": "subscribe newsletter",
      "description": "Subscribe a visitor to The Meridian Line's free weekly newsletter. Call this as soon as the visitor says they want to subscribe or sign up, even before every detail is confirmed.",
      "actions": [
        {
          "id": "call",
          "sourceId": "mcp",
          "operationId": "mcpJsonRpcCall"
        }
      ],
      "fields": {
        "parameters": [
          {
            "name": "name",
            "description": "The visitor's name",
            "required": false,
            "type": "string"
          },
          {
            "name": "email",
            "description": "Where to send the newsletter",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "success": {
            "type": "object",
            "description": "The JSON-RPC 2.0 tools/call result for this tool."
          }
        }
      }
    },
    {
      "id": "who_is_signed_in",
      "title": "who is signed in",
      "description": "Who is signed in as a Meridian Line member in this browser, if anyone.",
      "actions": [
        {
          "id": "call",
          "sourceId": "mcp",
          "operationId": "mcpJsonRpcCall"
        }
      ],
      "fields": {
        "parameters": [],
        "responses": {
          "success": {
            "type": "object",
            "description": "The JSON-RPC 2.0 tools/call result for this tool."
          }
        }
      }
    }
  ],
  "version": "1.0",
  "content": {
    "llms": "https://ghost.demo.busymate.ai/llms.txt",
    "llmsFull": "https://ghost.demo.busymate.ai/llms-full.txt",
    "sitemap": "https://ghost.demo.busymate.ai/sitemap.xml",
    "markdown": {
      "contentNegotiation": true,
      "fallbackSuffix": ".md"
    }
  },
  "interfaces": [
    {
      "type": "mcp",
      "url": "https://ghost.demo.busymate.ai/mcp",
      "transport": "streamable-http"
    },
    {
      "type": "webmcp",
      "url": "https://ghost.demo.busymate.ai/webmcp-catalog.json",
      "transport": "in-page"
    }
  ],
  "authentication": {
    "oauth": null
  },
  "contact": {
    "human": "mailto:editors@ghost.demo.busymate.ai"
  },
  "name": "The Meridian Line",
  "url": "https://ghost.demo.busymate.ai",
  "description": "A working demonstration Ghost publication: a live Busymate AI assistant grounded in the magazine's own articles, one of the page's own actions published over WebMCP, an MCP server over the magazine's real Content API, a provided demo member for testing the identified experience, and hand-off to a person.",
  "mcp": {
    "url": "https://ghost.demo.busymate.ai/mcp",
    "transport": "http",
    "auth": "none"
  },
  "webmcp": {
    "transport": "in-page",
    "registers": "document.modelContext"
  },
  "tools": [
    {
      "name": "list_articles",
      "description": "The most recent articles published on The Meridian Line, with title, excerpt and URL — reads the magazine's own live Content API.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "number",
            "description": "How many articles, default 5, max 10"
          }
        },
        "additionalProperties": false
      },
      "readOnlyHint": true,
      "access": "public",
      "transport": "mcp+webmcp"
    },
    {
      "name": "search_content",
      "description": "Search The Meridian Line's own published articles and pages (title + excerpt + link) for a query — reads Ghost's own public Content API, so it can never drift from what the site actually shows.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "What to search for, e.g. 'sheet metal' or 'apprenticeship'"
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      },
      "readOnlyHint": true,
      "access": "public",
      "transport": "mcp"
    },
    {
      "name": "get_contact_info",
      "description": "The Meridian Line's (fictional) editorial address, email and publishing schedule.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "readOnlyHint": true,
      "access": "public",
      "transport": "mcp"
    },
    {
      "name": "subscribe_newsletter",
      "description": "Subscribe a visitor to The Meridian Line's free weekly newsletter. Call this as soon as the visitor says they want to subscribe or sign up, even before every detail is confirmed.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The visitor's name"
          },
          "email": {
            "type": "string",
            "description": "Where to send the newsletter"
          }
        },
        "required": [
          "email"
        ],
        "additionalProperties": false
      },
      "readOnlyHint": false,
      "access": "public",
      "transport": "mcp"
    },
    {
      "name": "who_is_signed_in",
      "description": "Who is signed in as a Meridian Line member in this browser, if anyone.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "readOnlyHint": true,
      "access": "identified",
      "transport": "mcp"
    }
  ],
  "identity": {
    "supported": true,
    "docs": "https://busymate.ai/docs/guides/identified-visitors"
  },
  "humanHandoff": true
}
