{
  "agentsJson": "0.1.0",
  "info": {
    "title": "Quillon Metrics",
    "description": "A product-analytics software demo showing a website assistant grounded in the product's own published documentation and pricing, starting a support conversation as a structured record through an in-chat form card rather than asking for one detail at a time, serving the capability list and the conversation book over its own MCP server, registering its page actions over WebMCP, and reading back a signed-in customer's own conversations through the identity hand-off.",
    "version": "1.0.0"
  },
  "sources": [
    {
      "id": "mcp",
      "path": "https://intercom.demo.busymate.ai/openapi.json"
    }
  ],
  "flows": [
    {
      "id": "list_services",
      "title": "list services",
      "description": "The full Quillon Metrics catalogue — every service on offer, with its code, what it covers, which plan it belongs to and how long it takes.",
      "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": "list_plans",
      "title": "list plans",
      "description": "Quillon Metrics's plans and what each one costs, including which services each tier covers and who it suits.",
      "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": "search_knowledge",
      "title": "search knowledge",
      "description": "Search everything Quillon Metrics publishes — the services, the plan detail and the answers on its FAQ — by keyword. Use this before answering from memory.",
      "actions": [
        {
          "id": "call",
          "sourceId": "mcp",
          "operationId": "mcpJsonRpcCall"
        }
      ],
      "fields": {
        "parameters": [
          {
            "name": "query",
            "description": "A keyword or short phrase, e.g. a service name, a price question or a policy.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "success": {
            "type": "object",
            "description": "The JSON-RPC 2.0 tools/call result for this tool."
          }
        }
      }
    },
    {
      "id": "get_conversation",
      "title": "get conversation",
      "description": "Look up one conversation at Quillon Metrics by its conversation id together with the email it was raised under. Both are needed — a conversation id alone never returns anything.",
      "actions": [
        {
          "id": "call",
          "sourceId": "mcp",
          "operationId": "mcpJsonRpcCall"
        }
      ],
      "fields": {
        "parameters": [
          {
            "name": "reference",
            "description": "The conversation id.",
            "required": true,
            "type": "string"
          },
          {
            "name": "email",
            "description": "The email address it belongs to.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "success": {
            "type": "object",
            "description": "The JSON-RPC 2.0 tools/call result for this tool."
          }
        }
      }
    },
    {
      "id": "my_conversations",
      "title": "my conversations",
      "description": "Every conversation belonging to the SIGNED-IN visitor at Quillon Metrics, with its current state and what happens next. Only ever call this for the person actually signed in — never for an address somebody types.",
      "actions": [
        {
          "id": "call",
          "sourceId": "mcp",
          "operationId": "mcpJsonRpcCall"
        }
      ],
      "fields": {
        "parameters": [
          {
            "name": "email",
            "description": "The signed-in visitor's own email address, taken from their identity — never asked for in the chat.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "success": {
            "type": "object",
            "description": "The JSON-RPC 2.0 tools/call result for this tool."
          }
        }
      }
    },
    {
      "id": "start_conversation",
      "title": "start conversation",
      "description": "Do NOT ask the person for these fields one at a time — calling this with whatever is already known IS how the form opens. Start a conversation at Quillon Metrics, and report back what was recorded.",
      "actions": [
        {
          "id": "call",
          "sourceId": "mcp",
          "operationId": "mcpJsonRpcCall"
        }
      ],
      "fields": {
        "parameters": [
          {
            "name": "subject",
            "description": "Which service it concerns — a code from list_services. Leave blank if unknown; the form lets the person pick.",
            "required": false,
            "type": "string"
          },
          {
            "name": "summary",
            "description": "One line of detail in the person's own words.",
            "required": false,
            "type": "string"
          },
          {
            "name": "urgency",
            "description": "How soon it matters, or the slot they want.",
            "required": false,
            "type": "string"
          },
          {
            "name": "name",
            "description": "Who it is for.",
            "required": false,
            "type": "string"
          },
          {
            "name": "email",
            "description": "The email the confirmation goes to.",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "success": {
            "type": "object",
            "description": "The JSON-RPC 2.0 tools/call result for this tool."
          }
        }
      }
    }
  ],
  "version": "1.0",
  "content": {
    "llms": "https://intercom.demo.busymate.ai/llms.txt",
    "llmsFull": "https://intercom.demo.busymate.ai/llms-full.txt",
    "sitemap": "https://intercom.demo.busymate.ai/sitemap.xml",
    "markdown": {
      "contentNegotiation": true,
      "fallbackSuffix": ".md"
    }
  },
  "interfaces": [
    {
      "type": "mcp",
      "url": "https://intercom.demo.busymate.ai/mcp",
      "transport": "streamable-http"
    },
    {
      "type": "webmcp",
      "url": "https://intercom.demo.busymate.ai/webmcp-catalog.json",
      "transport": "in-page"
    }
  ],
  "authentication": {
    "oauth": null
  },
  "contact": {
    "human": "mailto:support@quillonmetrics.example"
  },
  "name": "Quillon Metrics",
  "url": "https://intercom.demo.busymate.ai",
  "description": "A product-analytics software demo showing a website assistant grounded in the product's own published documentation and pricing, starting a support conversation as a structured record through an in-chat form card rather than asking for one detail at a time, serving the capability list and the conversation book over its own MCP server, registering its page actions over WebMCP, and reading back a signed-in customer's own conversations through the identity hand-off.",
  "mcp": {
    "url": "https://intercom.demo.busymate.ai/mcp",
    "transport": "http",
    "auth": "none"
  },
  "webmcp": {
    "transport": "in-page",
    "registers": "document.modelContext"
  },
  "tools": [
    {
      "name": "list_services",
      "description": "The full Quillon Metrics catalogue — every service on offer, with its code, what it covers, which plan it belongs to and how long it takes.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "readOnlyHint": true,
      "access": "public",
      "transport": "mcp+webmcp"
    },
    {
      "name": "list_plans",
      "description": "Quillon Metrics's plans and what each one costs, including which services each tier covers and who it suits.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "readOnlyHint": true,
      "access": "public",
      "transport": "mcp+webmcp"
    },
    {
      "name": "search_knowledge",
      "description": "Search everything Quillon Metrics publishes — the services, the plan detail and the answers on its FAQ — by keyword. Use this before answering from memory.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "A keyword or short phrase, e.g. a service name, a price question or a policy."
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      },
      "readOnlyHint": true,
      "access": "public",
      "transport": "mcp+webmcp"
    },
    {
      "name": "get_conversation",
      "description": "Look up one conversation at Quillon Metrics by its conversation id together with the email it was raised under. Both are needed — a conversation id alone never returns anything.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "reference": {
            "type": "string",
            "description": "The conversation id."
          },
          "email": {
            "type": "string",
            "description": "The email address it belongs to."
          }
        },
        "required": [
          "reference",
          "email"
        ],
        "additionalProperties": false
      },
      "readOnlyHint": true,
      "access": "public",
      "transport": "mcp+webmcp"
    },
    {
      "name": "my_conversations",
      "description": "Every conversation belonging to the SIGNED-IN visitor at Quillon Metrics, with its current state and what happens next. Only ever call this for the person actually signed in — never for an address somebody types.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "The signed-in visitor's own email address, taken from their identity — never asked for in the chat."
          }
        },
        "required": [
          "email"
        ],
        "additionalProperties": false
      },
      "readOnlyHint": true,
      "access": "identified",
      "transport": "mcp+webmcp"
    },
    {
      "name": "start_conversation",
      "description": "Do NOT ask the person for these fields one at a time — calling this with whatever is already known IS how the form opens. Start a conversation at Quillon Metrics, and report back what was recorded.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "subject": {
            "type": "string",
            "description": "Which service it concerns — a code from list_services. Leave blank if unknown; the form lets the person pick."
          },
          "summary": {
            "type": "string",
            "description": "One line of detail in the person's own words."
          },
          "urgency": {
            "type": "string",
            "description": "How soon it matters, or the slot they want."
          },
          "name": {
            "type": "string",
            "description": "Who it is for."
          },
          "email": {
            "type": "string",
            "description": "The email the confirmation goes to."
          }
        },
        "additionalProperties": false
      },
      "readOnlyHint": false,
      "access": "public",
      "transport": "mcp",
      "confirmationRequired": true
    },
    {
      "name": "highlight_service",
      "description": "Scroll Quillon Metrics's catalogue to one entry and highlight it on the page the visitor is reading. Runs in the page; it changes what is on screen, not any record.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "The catalogue code to bring into view, from list_services."
          }
        },
        "required": [
          "code"
        ],
        "additionalProperties": false
      },
      "readOnlyHint": true,
      "access": "public",
      "transport": "webmcp"
    },
    {
      "name": "open_desk_form",
      "description": "Open Quillon Metrics's start a conversation form already on this page, with any known details filled in. Runs in the page — it opens a form, it does not submit one.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "subject": {
            "type": "string",
            "description": "The catalogue code to preselect."
          },
          "summary": {
            "type": "string",
            "description": "Text to put in the detail field."
          }
        },
        "additionalProperties": false
      },
      "readOnlyHint": true,
      "access": "public",
      "transport": "webmcp"
    }
  ],
  "identity": {
    "supported": true,
    "docs": "https://busymate.ai/docs/guides/identified-visitors"
  },
  "humanHandoff": true
}
