Skip to main content

Use Ask Sybill through the API and MCP

Submit questions to Sybill AI over REST, poll for results, and connect AI assistants like Claude Desktop to your Sybill data through the Sybill MCP server.

Written by Sybill Inc

Ask Sybill answers natural-language questions using your organization's Sybill data - calls, deals, people, companies, and emails.
You can reach it two ways: directly over REST from your own code, or through Sybill's MCP server from an AI assistant such as Claude Desktop.
​

Ask a question over REST

Requires the Ask Sybill permission (ask_sybill scope). Submit a one-shot question:
​

curl -X POST https://api.sybill.ai/v1/ask-sybill \   -H "Authorization: Bearer sk_live_YOUR_KEY" \   -H "Content-Type: application/json" \   -d '{"message": "What were the key action items from my last call with Acme Corp?"}'


The request waits up to 60 seconds. Two outcomes:

  • 200 OK - the run reached a terminal state and the response contains the result.

  • 202 Accepted - the run is still in progress. The response includes a Location header with the canonical polling URL and a Retry-After header telling you how many seconds to wait before polling.

Both return the same result object:

{   "threadId": "0c6f6b8e-...",   "runId": "7d3a2f10-...",   "status": "running",   "output": null,   "generatedAt": null,   "error": null }

Field

Meaning

status

running, completed, failed, or stopped

output

The answer - set only when status is completed

generatedAt

Unix milliseconds when the answer was produced - set only on completion

error

Optional error or instruction text, e.g. on failure

Treat any status value you don't recognize as a terminal failure - this keeps your integration safe if new states are added.
​

Poll for the result

When you get a 202, poll with the IDs from the response:
​

curl -H "Authorization: Bearer sk_live_YOUR_KEY" \   https://api.sybill.ai/v1/ask-sybill/{threadId}/{runId}

Polling has the same semantics: it waits up to 60 seconds, returns 200 for terminal runs and 202 with Location and Retry-After headers while the run is still active. Runs remain accessible to your organization for 30 days after submission.
​

The Sybill MCP server

Sybill also exposes an MCP (Model Context Protocol) server, which lets AI assistants work with your Sybill data conversationally:

https://mcp.sybill.ai/mcp

Property

Value

Transport

Streamable HTTP

Authentication

OAuth - your MCP client prompts you to sign in with your Sybill account

Note that MCP reads are scoped to what the signed-in user can access, and MCP usage limits are managed separately from REST API key rate limits and may depend on your Sybill plan.
​

Connect Claude Desktop

Add this to your Claude Desktop configuration file (claude_desktop_config.json):

{   "mcpServers": {     "sybill": {       "command": "npx",       "args": [         "-y",         "mcp-remote",         "https://mcp.sybill.ai/mcp"       ]     }   } }

The first time you use the Sybill server, Claude Desktop opens a browser window for you to sign in with your Sybill account.

Other MCP clients (such as Cursor or VS Code Copilot) can also connect to the same server URL; consult your client's documentation for how to add a remote MCP server.
​

Available tools

Tool

What it does

ask_sybill

Ask Sybill AI a question about your calls, deals, people, companies, and emails

get_ask_sybill_result

Fetch the status and answer of a previously submitted question

list_conversations

List meetings, filterable by date range, type, title, attendees, CRM name, and source

get_conversation

Full detail for one meeting - summary, transcript, recordings, participants, CRM info

list_deals

List CRM deals, filterable by name, stage, closed status, owner, dates, and amount

get_deal

Full detail for one deal - summary, contacts, owner, pipeline, stage

list_accounts

List CRM accounts, filterable by name, website, owner, and dates

get_account

Full detail for one account - contacts, synced CRM fields, latest deal

One behavior worth handling in ask_sybill: quick questions return the answer as plain text, while longer-running questions return a JSON envelope with threadId, runId, and status: "running". Try parsing the response as JSON - if it parses and says running, poll get_ask_sybill_result with those IDs; otherwise the response is the answer itself.
​

Error handling

Status

Cause

401 Unauthorized

REST: invalid or revoked key, or missing ask_sybill scope (403). MCP: authentication failed or session expired

429 Too Many Requests

Rate limit exceeded - see API pagination, rate limits, errors, and conventions

500 Internal Server Error

Internal processing error

Did this answer your question?