What is MCP, in plain English?

MCP (Model Context Protocol) is like a universal plug that lets an AI assistant -- such as Claude -- reach into an outside app and use it directly, instead of you copy-pasting information back and forth. Turn it on for DoclyChat, and any MCP-compatible AI tool can ask your chatbot questions, pull up financial statements, and check your credit balance -- using nothing but the same API key you already have.

1

1. Copy your API key

Every DoclyChat account already has one, waiting in Settings → API. No extra signup, no new password.

2

2. Paste one address into your AI tool

Add the DoclyChat MCP address and your key to your AI app's settings -- Settings → API shows a ready-to-paste snippet for Claude Desktop, Claude Code, and other MCP-compatible tools. No coding involved.

3

3. Just ask

From then on, your AI assistant can ask your chatbot questions, look up financial statements, and check usage -- right inside the tool you already use every day.

Example configuration
{
  "mcpServers": {
    "doclychat": {
      "url": "https://doclychat.com/mcp",
      "headers": { "X-Api-Key": "<your API key>" }
    }
  }
}

Set it up anywhere you already work

DoclyChat's MCP server speaks the standard MCP protocol, so it works the same way in every one of these -- copy your API key from Settings, paste the matching snippet below, and start asking.

Claude Desktop / Claude Web

Open Settings → Connectors → Add custom connector and paste in the URL and API key, or add this block to your claude_desktop_config.json.

{
  "mcpServers": {
    "doclychat": {
      "url": "https://doclychat.com/mcp",
      "headers": { "X-Api-Key": "<your API key>" }
    }
  }
}

Claude Code (CLI)

Run this once from any project directory to register DoclyChat as an MCP server for Claude Code.

claude mcp add --transport http doclychat \
  https://doclychat.com/mcp \
  --header "X-Api-Key: <your API key>"

Cursor, Windsurf, Cline & other editors

These editors read the same JSON shape from their own MCP settings file (Cursor's .cursor/mcp.json, Windsurf's mcp_config.json, or Cline's MCP Servers panel) -- paste this in.

{
  "mcpServers": {
    "doclychat": {
      "url": "https://doclychat.com/mcp",
      "headers": { "X-Api-Key": "<your API key>" }
    }
  }
}

Anything else that speaks MCP

Point any MCP-compatible client at https://doclychat.com/mcp over HTTP with an X-Api-Key header carrying your key -- no special integration needed, it's the same open standard every client above uses.

Every MCP tool, at a glance

All tools are called the same way -- an X-Api-Key header carrying your tenant's key -- and every one that hits a snag returns a plain { error } instead of a cryptic status code. Click any tool below for its parameters, things you can ask, and a real example call and response.

ask_chatbot Ask the chatbot a question exactly like the chat widget would -- includes guaranteed-JSON slash commands such as /toplist and /compare.
Parameters
  • question (string, required) -- plain-language text, or one of the slash commands below for a guaranteed JSON shape instead of free text.
Try asking
  • "What's our refund policy for damaged items?"
  • "How do I reset my password?"
  • "/toplist our best-selling products"
  • "/compare Starter Plan vs Pro Plan"
Example call
{ "question": "What is our return policy?" }
Example response
{
  "answer": "Items can be returned within 30 days...",
  "sources": [
    { "document": "Returns-Policy.pdf", "page": 1, "snippet": "..." }
  ]
}
search_knowledge_base Raw passage search over the tenant's knowledge base -- no composed answer, just the matching source text.
Parameters
  • query (string, required) -- natural language or keywords.
  • limit (integer, optional, default 10, max 50).
Try asking
  • "Find every mention of 'late payment fee' in our contracts"
  • "Search for 'warranty period' across all our documents"
Example call
{ "query": "late payment fee", "limit": 5 }
Example response
{
  "results": [
    { "document": "Terms.pdf", "page": 4, "text": "...", "score": 0.87, "sourceUrl": null }
  ]
}
get_financial_statements Lists ingested financial statements and their line items (Financial Data add-on).
Parameters
  • take (integer, optional, default 20, max 100) -- how many statements to return, most recent first.
Try asking
  • "Show me our last 5 financial statements"
  • "What line items were in our 2024 statement?"
Example call
{ "take": 5 }
Example response
[
  {
    "id": "3fa85f64-...",
    "document": "Q4-2024.pdf",
    "fiscalYear": 2024,
    "status": "Completed",
    "lineItemCount": 42,
    "lineItems": [
      { "account": "Revenue", "category": "Income", "amount": 128500.00 }
    ]
  }
]
get_usage_status Current AI credit standing for the billing period.
Parameters
  • No parameters.
Try asking
  • "How many AI credits have we used this month?"
  • "Are we close to our credit limit?"
Example call
{ }
Example response
{
  "monthlyLimit": 50000,
  "creditsUsedThisPeriod": 17,
  "bonusCredits": 0,
  "isNearLimit": false,
  "isExceeded": false
}
get_subscription_status Plan, credit usage, and auto-recharge settings -- read-only.
Parameters
  • No parameters.
Try asking
  • "What plan are we currently on?"
  • "Is auto-recharge turned on for our account?"
Example call
{ }
Example response
{
  "plan": { "key": "pro", "name": "Pro", "monthlyCredits": 50000 },
  "usage": { "monthlyLimit": 50000, "creditsUsedThisPeriod": 17 },
  "autoRecharge": { "enabled": false, "thresholdCredits": 1000 }
}
list_conversations / get_conversation List every user's chat conversations, or read one conversation's full message history by id.
Parameters
  • list_conversations: includeArchived (boolean, optional, default false), take (integer, optional, default 20, max 100).
  • get_conversation: conversationId (string, required) -- from list_conversations.
Try asking
  • "What questions did people ask the chatbot this week?"
  • "Show me the full transcript of conversation abc-123"
Example call
{ "take": 10 }
Example response
{
  "conversations": [
    { "id": "abc-123", "title": "Return policy question", "updatedAtUtc": "...", "isPinned": false }
  ]
}
get_ingestion_status Sync status of every connected content source -- Drive, SharePoint, Shopify, and more.
Parameters
  • No parameters.
Try asking
  • "Is our Google Drive sync working?"
  • "When did our Shopify connector last sync, and did it fail?"
Example call
{ }
Example response
{
  "sources": [
    { "connectorType": "GoogleDrive", "connectorName": "Client Docs", "enabled": true,
      "lastSyncedAtUtc": "...", "lastSyncStatus": "Succeeded", "lastSyncError": null }
  ]
}
list_enabled_agents Which optional add-ons (Financial Data, HR, Heizungsbauer, ...) are enabled for this tenant.
Parameters
  • No parameters.
Try asking
  • "Which add-ons do we currently have turned on?"
Example call
{ }
Example response
{
  "agents": [
    { "key": "financial-data", "name": "Financial Data", "description": "..." }
  ]
}
check_shop_live_data Live price/stock lookup straight from a connected Shopify or WooCommerce store.
Parameters
  • query (string, required) -- a product name, SKU, or stock/price question.
Try asking
  • "How many units of SKU-1042 do we have in stock right now?"
  • "What's the current live price of the Blue Widget?"
Example call
{ "query": "SKU-1042 stock" }
Example response
{
  "results": [
    { "shop": "My Shopify Store", "connectorType": "Shopify", "result": { "sku": "SKU-1042", "stock": 14 } }
  ]
}
estimate_project_cost Statistical HVAC job cost estimate from historical invoices (Heizungsbauer add-on).
Parameters
  • description (string, required) -- a concise description of the job.
  • maxComparableItems (integer, optional, default 200).
Try asking
  • "Estimate the cost of replacing a gas boiler in a single-family home"
Example call
{ "description": "Austausch einer Gastherme in einem Einfamilienhaus" }
Example response
{
  "hasEnoughData": true,
  "suggestedTotalEstimate": 3200.00,
  "groups": [
    { "matchedWork": "Gastherme Austausch", "count": 14, "averagePrice": 3200, "minPrice": 2500, "maxPrice": 4100 }
  ]
}
query_hr_information Search HR-tagged documents only -- handbooks, policies, contracts (HR add-on).
Parameters
  • query (string, required).
  • limit (integer, optional, default 10, max 50).
Try asking
  • "What's our parental leave policy?"
  • "How many vacation days do new hires get?"
Example call
{ "query": "parental leave policy" }
Example response
{
  "results": [
    { "document": "Employee-Handbook.pdf", "page": 12, "text": "...", "score": 0.91 }
  ]
}
create_sub_tenant Provisions a brand-new, fully independent tenant -- see "Build a platform on DoclyChat" below.
Parameters
  • tenantName (string, required) -- display name for the new tenant.
Try asking
  • Not a conversational tool -- called programmatically by a partner platform whenever it needs to provision a new client tenant. See "Build a platform on DoclyChat" below.
Example call
{ "tenantName": "Acme Corp" }
Example response
{
  "tenantId": "...",
  "tenantName": "Acme Corp",
  "apiKey": "... (shown once, store it now)"
}

Build a platform on DoclyChat

Running your own product on top of DoclyChat? create_sub_tenant lets your own API key provision an isolated tenant -- its own knowledge base, its own credits -- for each of your downstream clients, no DoclyChat admin involved.

1

1. Provision

Call create_sub_tenant with your own API key and a name for the client. You get back a tenantId and a brand-new apiKey -- store it immediately, it's shown once.

2

2. Ingest

Push each of that client's documents into their new tenant with POST /api/knowledge/documents/ingest, using the client's own apiKey.

3

3. Query

Ask questions or search that client's data over /mcp or REST, using the same apiKey -- fully isolated from every other tenant, including yours.

create_sub_tenant
// request
{ "tenantName": "Acme Corp" }

// response -- store apiKey now, it is never shown again
{ "tenantId": "...", "tenantName": "Acme Corp", "apiKey": "..." }

Each sub-tenant is headless (no email/password login) -- the apiKey returned once is the only way back in, so store it immediately.

Ready to connect?

Grab your API key from Settings → API and paste it into any MCP-compatible tool -- or start a free DoclyChat account first.

English German
English German
An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed. Retrying in 0s (attempt 1)

Failed to rejoin. Please retry or reload the page.

Your session was paused by the server.

Failed to resume the session. Please retry or reload the page.

Your session has expired. Reloading…