Updated 2026-04-17

MCP Tools Reference

Parameter-level reference for the 19 public MCP tools across 6 categories: Capture, Extraction, Custom Skills, Discovery, Research, Annotate. Every tool returns cited results — each claim traces back to a source and character range in the original content.

Scope of this reference. These are the 19 starter MCP tools — the public surface for capture, extraction, search, research, and annotation. Multiplist also exposes workspace & operator tools (containers, studios, lanes, cards, routing) and advanced intelligence tools (refinement, deliverable production) that aren't documented here yet. Start with the 19 below — they cover the lifecycle most agents need.
Auth prereq: Tool calls go to https://multiplist.ai/mcp and require either an MCP Token (prefix mcp_live_, sent as the x-mcp-key header) or an OAuth 2.1 access token. See Authentication for setup. REST API Keys (prefix mp_live_) are a different system and will not work here.

# 1. Capture

Save conversations, documents, and notes to your vault. Updates are incremental — only new content is extracted on subsequent saves.

# create_source

Save a conversation, document, or note to the vault. Optionally triggers extraction immediately.

Scope: sources:write

ParameterTypeRequiredDescription
titlestring (1–500)yesSource title.
contentstring (1–512000)yesFull source content. Max 500KB.
sourceTypeenumnoSource type classification. Default: mcp.
platformstring (max 100)noPlatform or origin label.
tagsarray (max 20)noTags to attach to the source.
externalIdstring (max 500)noExternal system identifier for dedup.
skipDedupbooleannoSkip deduplication check.
autoExtractbooleannoTrigger extraction immediately. Default: true.
skillIdstring (uuid)noSpecific skill to use for extraction.
categoriesarray of extractionCategorynoLimit auto-extraction to specific categories.
abstractbooleannoGenerate an abstract. Default: true.

# update_source

Update a saved conversation with new content. Append mode (default) adds content to the end; replace mode overwrites fully. Only new content is re-extracted.

Scope: sources:write

ParameterTypeRequiredDescription
sourceIdstring (uuid)yesSource to update.
titlestring (max 500)noNew title.
contentstring (max 512000)noContent to add or replace. Max 500KB.
modeenum ["append","replace"]noappend (default) adds to end of existing source. replace overwrites the full content.
reExtractbooleannoExtract meaning from new content after update. Incremental — only processes content added since last extraction. Default: true.

# delete_source

Remove a source and all seeds extracted from it.

Scope: sources:write

ParameterTypeRequiredDescription
sourceIdstring (uuid)yesSource to delete.

# 2. Extraction

Run the semantic extraction engine on sources to produce cited seeds across eight meaning categories. Single-source or batch.

# trigger_extraction

Run extraction on a single source. Produces seeds categorized across decisions, frameworks, golden passages, definitions, actions, questions, offers, and emergence.

Scope: extract:run

ParameterTypeRequiredDescription
sourceIdstring (uuid)yesThe source to extract from.
skillIdstring (uuid)noSpecific skill to apply. System matches automatically if omitted.
categoriesarray of extractionCategorynoLimit extraction to specific categories.

# batch_extract

Start extraction across multiple sources. Runs asynchronously; poll with batch_status.

Scope: sources:write

ParameterTypeRequiredDescription
sourceIdsarray (1–50)yesSource IDs to extract from.
containerIdstring (uuid)noContainer context for skill matching.
categoriesarray of extractionCategorynoLimit extraction to specific categories.

# batch_status

Poll the status of a batch extraction job — sources processed, seeds created, errors.

Scope: seeds:read

ParameterTypeRequiredDescription
jobIdstring (uuid)yesThe batch job ID returned by batch_extract.

# 3. Custom Skills

Skills tell Multiplist what to look for in your content. A coach creates "Client Breakthroughs." A developer creates "Architecture Signals." Skills make extraction domain-aware.

# create_skill

Create a custom extraction skill with its own schema, instructions, and trigger conditions.

Scope: skills:write

ParameterTypeRequiredDescription
namestring (1–200)yesSkill name.
descriptionstring (max 2000)noHuman-readable description.
domainstring (max 100)noDomain label (e.g. research, engineering, design).
instructionsstring (1–50000)yesFull extraction instructions for the model.
schemaarray of { field, type, description, enumValues? } (max 20)noStructured output schema.
triggerConditionsobjectnoConditions for automatic skill matching.
parentSkillIdstring (uuid)noParent skill for inheritance.

# list_skills

List all extraction skills in your vault.

Scope: skills:read

ParameterTypeRequiredDescription
domainstring (max 100)noFilter by domain.
containerIdstring (uuid)noFilter by container.
searchstring (max 200)noSearch skills by name or description.

# get_skill

Fetch a single skill's full instructions and schema.

Scope: skills:read

ParameterTypeRequiredDescription
skillIdstring (uuid)yesThe skill to retrieve.

# match_skills

Find which skills apply to a given source based on content and trigger conditions.

Scope: skills:read

ParameterTypeRequiredDescription
sourceIdstring (uuid)yesThe source to match against.
containerIdstring (uuid)noLimit matching to skills in this container.

# 4. Discovery

Search and retrieve across your vault. Every result cites its source with exact character positions in the original content. Use search_vault to query meaning across all sources; search_sources to browse by metadata; get_source to pull a specific source back with its full Seed Doc.

# get_source

Retrieve a full source with its abstract, seeds grouped by category, and assets. The Seed Doc. Returns all seeds: the 8 canonical categories (decisions, frameworks, golden passages, definitions, actions, questions, offers, emergence) plus any custom skill categories (e.g. "Product Moves", "Architecture Signals") from skill extractions. Use this tool to browse skill extraction results — custom skill seeds are grouped under their skill field names alongside the canonical sections.

Scope: seeds:read

ParameterTypeRequiredDescription
sourceIdstring (uuid)noSource ID. Provide sourceId or title.
titlestring (max 500)noSource title to look up.
includearray of enum ["abstract","seeds","assets","content"]noWhich sections to include.
categoriesarray of extractionCategorynoFilter returned seeds to specific canonical categories. Custom skill category seeds are always included when seeds is requested.
formatenum ["document","json"]noResponse format. Default: document.

# search_vault

Search across all saved sources for seeds matching a query. Returns cited results with exact provenance. Searches seed content across all seeds (canonical and skill). The category filter accepts the 8 canonical extraction categories AND any skill-defined category name — it matches both the stored form (e.g. product_moves) and the human-readable form (Product Moves).

Scope: recall:search

ParameterTypeRequiredDescription
querystring (1–1000)yesSearch query text.
categorystringnoFilter by extraction category. Accepts canonical categories (decision, framework, golden_passage, definition, action, question, offer, emergence) or any skill-defined category name.
temperatureenum ["hot","warm","cold","all"]noFilter by recency: hot (7d), warm (7–30d), cold (30d+).
limitnumber (1–50)noMax results. Default: 20.

# search_sources

Browse sources by title, date, type, or keyword. The card catalog of your vault.

Scope: recall:search

ParameterTypeRequiredDescription
querystring (max 1000)noKeyword search across source titles and content.
sourceTypestringnoFilter by source type.
dateRangeobject { after?, before? }noISO date range filter.
extractionStatusenum ["complete","partial","unmapped","extracting","error"]noFilter by extraction status.
sortByenum ["recent","seeds","relevance"]noSort order. Default: recent.
limitnumber (1–50)noMax results. Default: 10.

# get_vault_summary

High-level snapshot of the vault: source count, seed count, category distribution, recent activity, topic clusters.

Scope: seeds:read

ParameterTypeRequiredDescription
includeRecentnumber (0–20)noNumber of recent sources to include. Default: 5.
includeTopicsbooleannoInclude topic cluster analysis. Default: true.

# get_vault_gaps

Analyze vault coverage — sparse categories, unextracted sources, under-represented areas.

Scope: seeds:read

ParameterTypeRequiredDescription
studioIdstring (uuid)noNarrow analysis to a specific studio.

# 5. Research

Synthesize across your entire vault. Research briefs trace the evolution of your thinking on a topic, with citations to every source used.

# request_brief

Synthesize a research brief across vault sources on a topic. Two modes: full (default) runs async and saves the result as a vault source; retrieval_only returns synchronously with ranked seeds and no vault write.

Scope: recall:search

ParameterTypeRequiredDescription
topicstring (1–2000)yesThe research topic or question.
focusQuestionsarray of strings (max 10)noSpecific questions to address.
sourceScopeobject { dateRange?, sourceIds?, categories? }noNarrow the sources considered.
depthenum ["quick","standard","deep"]noResearch depth. Default: standard.
briefTypeenum ["research","evolution","constellation","status"]noType of brief. Default: research.
modeenum ["full","retrieval_only"]nofull (default): async LLM synthesis, saves as vault source, returns sourceId to poll. retrieval_only: synchronous, returns ranked seeds + constellation links, no LLM generation, no vault write.

# get_brief_status

Poll the status of a research brief. Accepts sourceId (preferred — returned by request_brief) or briefId (legacy). Status values: synthesizing, complete, error.

Scope: seeds:read

ParameterTypeRequiredDescription
sourceIdstring (uuid)noSource ID returned by request_brief (preferred).
briefIdstring (uuid)noBrief ID — legacy path for briefs pre-dating the brief-as-source collapse.

# 6. Annotate

Write corrections, evolution notes, and commentary back to your sources. Annotations preserve who made the mark and what kind of mark it is — a correction, a tension, an evolution narrative, or additive commentary.

# add_annotation

Attach an author annotation to a source. For the source's own author to mark decisions, insights, or notes while working on it.

Scope: sources:write

ParameterTypeRequiredDescription
sourceIdstring (uuid)yesThe source being annotated by its own author.
contentstring (1–50000)yesThe annotation content.
titlestring (1–500)yesBrief title for the annotation.
scribeobject { type, identifier }yesWho is making the mark. Must match the source's author.
intentextractionCategorynoUnderlying meaning category (decision, framework, etc.).
confidenceenum ["high","medium","low"]noConfidence level. Default: medium.
sessionContextstring (max 1000)noBrief description of the conversation context.

# add_marginalia

Add a later-mind mark to a source — correction, tension flag, evolution narrative, or commentary.

Scope: sources:write

ParameterTypeRequiredDescription
sourceIdstring (uuid)yesThe source being marked.
markTypeenum ["correction","tension","evolution","commentary"]yesSpeech act of the mark.
contentstring (1–50000)yesThe marginalia content.
titlestring (1–500)yesBrief title for the mark.
scribeobject { type, identifier }yesWho is making the mark — type is ai or human.
intentextractionCategorynoOptional underlying meaning category.
relatedSeedIdsarray (max 20)noOther seeds involved in the mark.
relatedSourceIdsarray (max 20)noOther sources involved (for evolution chains).
severityenum ["low","medium","high"]noFor tension marks — helps users triage.
supersededBystring (uuid)noFor correction marks — points to the newer canonical source or seed.
sessionContextstring (max 1000)noBrief description of the conversation context.