Mitosis Labs

MCP server

MCP tool reference

Every tool the Mitosis MCP server exposes, with arguments and required scope.

The live list is always tools/list, mirrored byte-for-byte at /.well-known/mcp/server-card.json. This page is the human-readable version of the same surface.

Memory tools

All of these touch a user's private memory and require an OAuth grant.

cortex_ask

Searches the memory, fusing vector, full-text and graph retrieval, and answers with provenance. Scope: memory:read.

ArgumentTypeRequired
questionstring✓
limitnumberDefaults to 10
source_tablestringRestrict to one source table
since / untilstringRFC 3339 bounds on item time

It returns evidence, not prose. Every response carries results[] (each with a universal_id, a score and a preview), freshness[], cited_graph_url, and memory naming which office answered:

{
  "results": [
    {
      "universal_id": "gmail_messages:18f2c9a...",
      "score": 0.412,
      "title": "Re: tier pricing",
      "preview": "Agreed: Solo goes to $19.99/seat from July.",
      "source_table": "gmail_messages"
    }
  ],
  "freshness": [{ "source_id": "google-workspace", "last_success_at": "2026-08-26T18:02:00Z" }],
  "cited_graph_url": "https://mitosislabs.ai/graph?office=4d38b034-...&cite=gmail_messages%3A18f2c9a...",
  "memory": { "office_id": "4d38b034-...", "office_name": "Mitosis Labs" }
}

It may also carry memory_state, source_gap or possible_source_gap, which say why an answer is thin. Read them before composing a reply: see reading the response and handling a gap.

cortex_recall

Semantic-only vector search returning source excerpts. Prefer cortex_ask unless you specifically want nearest-neighbour matches on meaning. Scope: memory:read.

ArgumentTypeRequired
querystring✓
limitnumberDefaults to 10

cortex_manifest

An index of the memory: counts and source names, never content. Takes no arguments. Scope: memory:read.

cortex_status

Ingestion and feed status, including backlog. Use it to explain why a freshly-connected source is not answering yet. Scope: memory:read.

cortex_connectable_sources

Lists sources the user has not connected, and what each would answer. No arguments. Scope: memory:read.

Returns the connect link for one source. Scope: memory:read.

ArgumentTypeRequired
source_idstring✓. For example google-workspace, github, notion
link_textstringLink text in the user's own words

cortex_remember

Saves one durable fact into the graph. Scope: memory:write.

ArgumentTypeRequired
textstring✓
kindstringe.g. decision, observation, task-outcome
confidencenumber0..1
source_universal_idsstring[]Ids from a prior cortex_ask

cortex_ingest

Pushes a document into the memory so its text is searchable. Scope: memory:write.

This is how an agent adds a file the user handed it (a CSV, a note, an export). Pass the text; this HTTP server cannot read a local filesystem path. The stdio server (mi-cortex-mcp) also accepts path / paths and reads those files from disk.

ArgumentTypeRequired
filenamestringWith content. The document's name
contentstringWith filename. The document text
files{ name: string, content: string }[]Several documents in one call
feedstringFeed id (ext_<feed>). Letters, digits, underscore. Defaults to local_files
titlestringOverride title when ingesting a single file
{
  "filename": "investors.csv",
  "content": "name,email\nAda,[email protected]\n"
}

A new source waits for Standard or a described goal. The response carries choice; when choice.choice_required is true, record the user's answer with cortex_choose_enrichment.

cortex_ingest_conversation

Ingests a whole conversation so the exchange itself becomes retrievable. Scope: memory:write.

ArgumentTypeRequired
turns{ role: "user" | "assistant", text: string }[]✓. In order, verbatim
session_idstringStable id for the conversation. Re-ingesting the same one upserts rather than duplicating
titlestringShort human title
{
  "turns": [
    { "role": "user", "text": "What did we decide about pricing?" },
    { "role": "assistant", "text": "Solo moved to $19.99/seat in July 2026." }
  ],
  "session_id": "chat_01H9X...",
  "title": "Pricing decision"
}

Exclude tool output, hidden reasoning, connect links, exchanges where you could not answer, and anything resembling a credential. Split a very long conversation across calls, reusing the same session_id.

cortex_choose_enrichment

Records what the user wants pulled out of a source: Standard, or one or more saved goals. A new source waits until this is answered. Scope: memory:write.

ArgumentTypeRequired
feed_keystring✓
choicestringstandard or describe_goal. Omit to read the current state
goalstringNew goal, in the user's words. Needed with describe_goal unless goal_ids is set
goal_idsstring[]Saved goals from cortex_list_goals to run on this source
idempotency_keystringSame key never records twice

cortex_list_goals

Lists saved goals this office already asked Mitosis to pull out. Last-used first. Pass chosen ids as goal_ids to cortex_choose_enrichment. No arguments. Scope: memory:read.

cortex_create_goal

Designs a goal from the user's own words and returns a read-back of what Mitosis understood, with a real example from their data. When the goal leaves something Mitosis cannot decide, the reply carries answer_required: true and one round of questions, each with the options it can act on.

Designing a goal extracts nothing. Designing, saving, and running are three separate operations. Scope: memory:write.

ArgumentTypeRequired
goalstring✓ What the user wants out of their data, in their words
feed_keysstring[]Sources to draw the read-back example from. A goal belongs to the memory, not to one source

cortex_answer_goal

Records the answer to the questions from cortex_create_goal, keyed by question id. {"*":"skip"} is the answer for a user who says to go ahead with whatever Mitosis thinks best.

This is the last round. The reply carries answer_required: false and no further questions: Mitosis asks about a goal once. Scope: memory:write.

ArgumentTypeRequired
draft_idstring✓ From cortex_create_goal
answersobject✓ Question id to the chosen option, or the user's own words

cortex_accept_goal

Saves a settled goal into the memory's goal library with the recipe it was designed with, and returns its goal id. Still extracts nothing: cortex_choose_enrichment with choice=describe_goal and that id in goal_ids is what runs it on a source. Scope: memory:write.

ArgumentTypeRequired
draft_idstring✓ From cortex_create_goal or cortex_answer_goal

Search and fetch

Present for clients that expect the search / fetch pair. ChatGPT in particular refuses a server whose search and fetch it cannot see.

ToolRequired argumentWhat it does
searchquerySearches the user's memory
fetchidRetrieves one item in full by its universal id

Public tools

No credential. Safe to call before any sign-in, and useful as a connectivity check.

ToolRequired argumentWhat it returns
get_pricingnoneCurrent plans, prices, credit allowances, how usage is charged, add-ons
get_platform_statusnoneOperational status of the website, API and MCP server
search_docsqueryRanked documentation and product-page results with URLs
list_skillsnonePublished agent skills, with links

Resources

ResourceContents
llms-txtService summary for language models
llms-full-txtThe complete documentation corpus
pricing-mdMachine-readable pricing
auth-mdAgent registration and authentication instructions
openapiFull spec for the public REST API
read_docOne reference document in full, by doc id