Hosted MCP server

Connect your agent to Xyntherium

Before your agent quotes a policy, sends an email or makes a purchase, it checks the claim against the source. Paste one URL into Grok, Claude, Cursor or any agent that speaks MCP. The same hosted server works everywhere; you set it up once.

The server

URL     https://www.xyntherium.com/mcp
Auth    Authorization: Bearer <your Xyntherium API key>   (a header, never in the URL)
Tools   verify_answer, verify_against_document            (read-only; they take no action)

Streamable HTTP, stateless. Discovery and tools/list need no key; every tool call needs one and counts as one check against the key’s Verify plan, exactly like POST /v1/verify (50 a month free). Verdicts describe what the supplied text supports, not whether a statement is true in the world. Nothing is billed for a call that fails on our side.

Grok Bot

In chat, tell the bot to add a custom server with the URL. It confirms the name and URL; click Add it. Then give it the key as a header. It saves the server account-wide (Settings → Plugins → Yours) and you attach it to a task with @.

Add a custom MCP server called xyntherium at https://www.xyntherium.com/mcp
It needs an API key: set the header Authorization to "Bearer xyn_live_…"

Then: type @, attach xyntherium, and ask Grok to draft a reply and verify it before showing it to you. The key is stored as a request header, never in the URL.

xAI API (Responses)

A tools entry of type mcp on POST https://api.x.ai/v1/responses. authorization is the token xAI sets in the Authorization header on requests to the server; allowed_tools limits which tools the model may call.

{
  "model": "grok-4.7",
  "input": [{ "role": "user", "content": "Our terms say early cancellation costs $180. Draft a reply to a customer who asks, then verify it." }],
  "tools": [
    {
      "type": "mcp",
      "server_url": "https://www.xyntherium.com/mcp",
      "server_label": "xyntherium",
      "server_description": "Checks a drafted answer against the source text it relies on.",
      "authorization": "xyn_live_…",
      "allowed_tools": ["verify_answer"]
    }
  ]
}

With the xAI Python SDK the field names are allowed_tool_names and extra_headers:

from xai_sdk import Client
from xai_sdk.tools import mcp

client = Client()
chat = client.chat.create(
    model="grok-4.7",
    tools=[mcp(server_url="https://www.xyntherium.com/mcp", server_label="xyntherium", authorization="xyn_live_…", allowed_tool_names=["verify_answer"])],
)

Source: docs.x.ai, Remote MCP tools. The xAI API sends the token as a plain Authorization header; the server also accepts the usual Bearer prefix.

Claude

Claude.ai (web and desktop): Customize → Connectors → + Add → Add custom connector. Name it Xyntherium, paste https://www.xyntherium.com/mcp, Continue. Under Authentication choose No sign in and add a request header Authorization: Bearer xyn_live_…, which Claude sends on every request; or leave authentication on to sign in with your Xyntherium account instead (OAuth). Available on Free (one custom connector), Pro, Max, Team and Enterprise; on Team and Enterprise an Owner adds it under Organization settings → Connectors.

Claude Code:

claude mcp add --transport http xyntherium https://www.xyntherium.com/mcp \
  --header "Authorization: Bearer $XYN_API_KEY"

Source: Claude Help Center, custom connectors.

Cursor

In ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{
  "mcpServers": {
    "xyntherium": {
      "url": "https://www.xyntherium.com/mcp",
      "headers": { "Authorization": "Bearer xyn_live_…" }
    }
  }
}

OpenAI API (Responses)

A tools entry of type mcp on POST https://api.openai.com/v1/responses. OpenAI does not store authorization, so send it with every request; require_approval defaults to always.

{
  "model": "gpt-5",
  "input": "Our terms say early cancellation costs $180. Draft a reply to a customer who asks, then verify it.",
  "tools": [
    {
      "type": "mcp",
      "server_label": "xyntherium",
      "server_description": "Checks a drafted answer against the source text it relies on.",
      "server_url": "https://www.xyntherium.com/mcp",
      "authorization": "xyn_live_…",
      "allowed_tools": ["verify_answer"],
      "require_approval": "never"
    }
  ]
}

Source: OpenAI docs, connectors and MCP.

ChatGPT

OpenAI’s current developer documentation covers remote MCP servers for the API (above) and does not document adding an arbitrary remote MCP server to the ChatGPT app, so no ChatGPT setup is given here. When that changes, the same URL and key will apply.

What the agent gets back

verify_answer takes the drafted answer and the passages it relies on and returns every statement marked supported, unsupported or contradicted with the passage that decides it, the conditions the answer dropped, one verdict (send, cite sources, revise, ask a person) and the evidence-ledger id. On the $120 example (the terms say the fee is $180) it returns contradicted with the $180 line quoted; on an answer that drops “for unopened items with proof of purchase” it returns unsupported and names the dropped condition.

Both tools are read-only: they never send, book, buy or change anything. A third tool, cross_check (one question to six independent models, with a consensus score), is listed only when it is switched on for the server and is for paid plans.

The Verify API → · Everything Xyntherium does →