https://mcp.modem.dev/mcp. For client setup and an overview of when to use each tool, see the Modem MCP Server page.
The server exposes up to 14 tools, grouped by what they do:
Your client only sees the tools covered by the scopes you approved during authorization. A token with
data:read alone sees search_modem and nothing else.
How authorization works
The Modem MCP Server uses standard MCP OAuth. Your client discovers and completes the flow on its own; there is no API key.1
Discovery
An unauthenticated request to
https://mcp.modem.dev/mcp returns 401 with a WWW-Authenticate challenge pointing at the server’s
protected-resource metadata (/.well-known/oauth-protected-resource/mcp, also served at the root well-known location). The metadata
names Modem’s authorization server.2
Client registration
Clients that support OAuth dynamic client registration register themselves automatically. No manual client ID setup is needed.
3
Browser consent
The client opens a browser window using the OAuth 2.0 authorization code flow with PKCE. On the Modem consent screen you sign in,
pick the Modem organization if your account belongs to more than one, and approve the requested permissions (
agent:invoke and/or
data:read).4
Token issue
The client receives an access token bound to your user, the selected organization, and the approved scopes. Clients that request
offline_access also receive a refresh token, so you do not re-authorize every session.search_modem
Answer a natural-language question about your Modem data and get matching rows back. Read-only. Does not run the full Modem Agent and does not consume agent credits. Requires thedata:read scope.
Parameters
Each entry in
columns is an object:
Example
Result
The result carries a short natural-languageanswer plus the structured fields below:
Topic
priority values in returned rows are named levels encoded as integers: very_low (-100), low (-50), default (0), high (50), very_high (100).
Agent run tools
The fourmodem_agent_* tools run the full Modem Agent asynchronously. Starting a run returns immediately with IDs; the run continues in Modem even if your client disconnects. Agent runs consume credits. All four require the agent:invoke scope.
modem_agent_invoke
Start a new durable agent conversation.conversation_id, run_id, and status: "working".
modem_agent_get_run
Get the current status and, once complete, the result of a run.
Returns:
Poll this tool until the status is terminal. The tool is read-only and safe to call repeatedly.
modem_agent_send_message
Start a follow-up turn in an existing MCP conversation. Wait for the current run to finish first; only one turn can run in a conversation at a time.
Returns
conversation_id, run_id, and status: "working" for the new turn.
modem_agent_cancel_run
Cooperatively cancel one exact run. Actions the agent already completed are not reversed.
Returns
status: "cancelled", or status: "already_terminal" if the run had already finished.
Write tools
Write tools apply changes directly, without going through the agent. They run as you: each call is authorized against your own role in the organization you approved during consent, exactly like the Modem dashboard. All write tools require theagent:invoke scope and are annotated as destructive, so most clients ask you to confirm each call.
ID formats: topic IDs are UUIDs; company and person IDs are numeric strings. Use search_modem to find IDs before calling a write tool.
update_topic
Update a single topic. At least one optional field must be provided.bulk_update_topics
Update up to 100 topics at once. At least one optional field must be provided; it applies to every topic in the list.
Returns
updatedCount and updatedTopicIds.
merge_topics
Merge up to 50 source topics into a target topic. Source topics are archived and marked as merged; their group and event associations move to the target. Rejects if any source topic is already archived.
Returns
mergedCount and targetTopicId.
create_companies
Create up to 50 companies. Batch-first with partial success: each company is created independently and the result reports success or an error per item.results array with { name, domain, success, data?, error? } per item.
update_companies
Update up to 50 existing companies. Partial success per item.
Each item:
merge_companies
Merge one or more source companies into a target company. All domains, person associations, and Slack workspaces move to the target.
Returns
mergedCount. Sources are merged one at a time; if a later source fails after earlier ones succeeded, the call still returns success with a mergedCount lower than the number of sourceCompanyIds requested. Check mergedCount against the input length to detect partial completion.
add_people_to_company
Associate one or more people with a company.
Returns
addedCount and skippedCount (people already associated are skipped).
update_people
Update up to 50 existing people. Partial success per item.
Each item:
merge_people
Merge one or more source people into a target person. All identities, emails, and company associations move to the target.
Returns
mergedCount. Sources are merged one at a time; if a later source fails after earlier ones succeeded, the call still returns success with a mergedCount lower than the number of sourcePersonIds requested. Check mergedCount against the input length to detect partial completion.
Common workflows
Triage topics
- Call
search_modemto find the topics to act on, for example “topics about the old billing page”. - Take the topic IDs from the returned rows.
- Call
bulk_update_topicsto archive or re-prioritize them, orupdate_topicfor a single change.
Deduplicate companies or people
- Call
search_modemfor the duplicates, for example “companies whose name contains Acme”. - Pick the record to keep as the target.
- Call
merge_companiesormerge_peoplewith the target and the source IDs. Merges are not reversible, so confirm the target first.
Cross-tool work through the agent
The MCP write tools only change Modem records. For work that reaches your connected tools, such as creating a Linear issue from a topic or posting to Slack, use an agent run:- Call
search_modemto gather the context, for example the highest-priority bug reports this week. - Call
modem_agent_invokewith a prompt that includes that context and the action, for example “Create a Linear issue summarizing this feedback”. - Poll
modem_agent_get_rununtil the run completes.
Errors
Tool calls fail with standard MCP tool errors carrying one of these codes:Limits
Related
Modem MCP Server
Client setup, authorization, and troubleshooting.
The Modem Agent
What the Modem Agent can query and do.