When you connect for the first time, your MCP client opens a browser window. Sign in with your Doris login. The client then gets a token for your user in your workspace.
Connect a client
Menu names in other apps can change. Any client that supports Streamable HTTP and OAuth can use the endpoint.- Claude Code
- Claude Desktop
- ChatGPT
- Codex CLI
- Cursor
- VS Code (Copilot)
Tools
The server has 12 tools. Eight tools read. Four tools write.
The same data is available through the Ontology API. The API and the MCP server apply the same tenant scope.
ontology_types
Without
type_name, the tool returns a directory: each type name and its expand keys. With type_name, it returns the full schema. The schema includes properties, expand keys, writable fields, actions with their params_schema, measures and dataset capabilities.
ontology_resolve
Some expand keys on
deal are stakeholders, commitments, meetings, risks, next_step and similar_deals. Call ontology_types with type_name="deal" for the full list.
For type_name="teammate", the ID me returns your own user.
ontology_list
A
limit above 100 returns validation_error.
ontology_search
ontology_batch
The result has
results and errors, both keyed by type:id. One failed reference does not stop the others.
ontology_traverse
ontology_aggregate
ontology_types lists the measures and dimensions of each type.
search_transcripts
The result has
transcript_turns and meetings_matched. Each turn has its meeting ID, start time in milliseconds, speaker and snippet. If a search with mine=true finds nothing, the server searches the whole workspace. It then sets widened_beyond_mine to true.
Writes
MCP tokens have only theontology:read scope. There is no write scope. The server authorizes each write by its type and action.
Every MCP call counts as an agent call, not a person’s call. Some actions accept only a person’s call. From MCP, these actions return an error and change nothing.
ontology_types shows the current actions of each type and their params_schema. It does not list update. Use ontology_update for field writes, not ontology_action.
ontology_update
A field that is not in
writable_fields returns invalid_request. Nothing is written.
ontology_action
The
commitment actions take two optional parameters: operation_id (a UUID) and reason (1 to 4,000 characters). reject_evidence needs occurrence_id and reason. Send the same operation_id again to repeat a call safely.
An action that can reach a buyer returns forbidden from MCP. Only a person can start it.
create_composition
The document belongs to you. The result has
composition_id and a link to the document in Doris.
edit_composition
Send
title, body or both. The body must keep the same sections, in the same order, with the same keys. You can change prose, callout and key-point blocks. The server keeps all other blocks, such as tables and charts. To get the current body, call ontology_resolve with type_name="composition" and expand=["body"].
Privacy
The MCP server always uses themasked privacy level. You cannot change it.
At
masked, owner_name and owner_email stay visible on deals only. On other types, the server masks them.
Internal calls follow the same rule as in the app. A member sees an internal meeting only if they were on it. An admin sees all meetings.
Rate limits
- 10,000 calls a day for each workspace. The MCP server and the Ontology API share this quota.
- MCP has no per-minute limit. The per-minute limits in the API reference apply to REST routes only.
- 10 client registrations an hour for each IP address.
rate_limited.
Example prompts
- “Show me the Acme deal with its stakeholders and open commitments.”
- “How many deals are in each stage, and what is the pipeline amount of each?”
- “Every time security came up in the Acme calls this quarter, what was said?”
- “Push the due date of this commitment to next Friday.”