Team MCP for the AI agent

Standard remote MCP contract Ticketping expects from your server — transport, auth, read-only tools, and how to connect.

Ticketping’s support AI can call your tools over the Model Context Protocol. We act as an MCP client. You host a normal remote MCP server; there is no Ticketping-specific RPC, SDK, or required tool names.

Teams that skip MCP can still use the agent with static knowledge in Settings → AI agent.

What to expose

PieceExpectation
TransportStreamable HTTP (preferred) or SSE-compatible responses on one HTTPS endpoint
ProtocolJSON-RPC 2.0: initialize, notifications/initialized, tools/list, tools/call
AuthAuthorization: Bearer <token> (optional custom headers also supported)
Customer-facing toolsRead-only lookups only (docs search, account status, order status, …)
Response shapePrefer JSON with title + url (and a short snippet) so we can show citations

Writable actions (refunds, cancels, deletes) are blocked for the customer-facing agent today, even if the tool appears in tools/list.

Recommended tools (conventions)

Names are yours to choose. These shapes work well:

Docs search

json
{
  "name": "search_docs",
  "description": "Search the public help center and product docs",
  "inputSchema": {
    "type": "object",
    "properties": {
      "query": { "type": "string" }
    },
    "required": ["query"]
  }
}

Return something like:

json
{
  "results": [
    {
      "title": "How refunds work",
      "url": "https://docs.example.com/refunds",
      "snippet": "Refunds are available within 14 days…"
    }
  ]
}

Account / order lookup (read-only)

json
{
  "name": "get_account_status",
  "description": "Look up subscription status for a customer id or email",
  "inputSchema": {
    "type": "object",
    "properties": {
      "customer_id": { "type": "string" },
      "email": { "type": "string" }
    }
  },
  "annotations": { "readOnlyHint": true }
}

Mark read-only tools with annotations.readOnlyHint: true when you can. Tools whose names look mutating (refund, delete, cancel, …) are treated as writable and stay off the allowlist.

Connect in Ticketping

  1. Open Settings → AI agent → MCP.
  2. Paste your MCP URL and optional bearer token.
  3. Turn Enabled on and click Test & sync tools.
  4. Allowlist only the tools the customer-facing agent may call.
  5. Optionally add Guidance (tone, when to escalate, which tool for which intent).
  6. Use Preview to try the same runtime as the widget.

Limits we enforce: about 15s per tool call, a small number of tool rounds per turn, and truncated tool results so chats stay responsive.

Without MCP

If you do not run an MCP server yet:

  1. Add articles under Settings → AI agent → Knowledge.
  2. Turn on AI answers for your widget.
  3. The agent answers only from that knowledge (or hands off to a human).

You can keep knowledge articles after you connect MCP — they act as short policy / tone context alongside live tools.

Migration and reuse

  • The same MCP server works with other MCP clients (Cursor, Claude, custom agents).
  • Later, Ticketping may offer first-party tools (help center search, public URL fetch). You can shrink or remove your server then; only the connection and allowlist change — not a new protocol.
  • No Ticketping SDK is required. A minimal Streamable HTTP MCP server in Node or Python is enough.

Minimal curl check

After initialize (and reading Mcp-Session-Id if the server returns one):

bash
curl -s -X POST 'https://mcp.example.com/mcp' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-03-26' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

You should get a JSON-RPC result with a tools array. If that works, Test & sync in the dashboard should too.

Start with one read-only `search_docs` tool. Allowlist it, preview a few questions, then add account lookups once answers look solid.