Skip to main content

MCP

MCP tools

The Nomic MCP server turns each Nomic HTTP API operation into one tool, named after the operation. It adds three helper tools that start an agent and wait for it, a set of prompts, and two resources.

A client sees only the tools its API key can call. A key with the developer scope sees the developer tools, and admin tools appear only for keys with admin scopes whose owner is an organization admin. Each call still checks the key owner's access, so a tool never returns a project or file its owner can't open.

To see exactly what a key can call, use get_current_api_key, or read the nomic://catalog resource.

Like the HTTP API, these tools are experimental. Names and arguments can change between releases. Because the tools are generated from the API, a new API operation becomes a tool on the next release with no client changes.

How tools work​

Arguments​

A tool takes one object that combines the operation's path parameters, query parameters, and JSON body fields. For example, get_artifact takes id and artifactId, and launch_agent takes prompt, projectId, fileIds, and the other body fields of POST /agents. Each tool's input schema lists its arguments, and the API reference describes them in full.

List tools take limit and cursor. When a result includes nextCursor, pass it as cursor to get the next page.

IDs are UUIDs. Get them from list and search tools: search_files for file IDs, list_projects for project IDs, list_workflows for workflow IDs.

Results and errors​

A successful call returns the API's JSON response as structured content, with the same JSON as text for clients that ignore structured content.

A failed call returns an error result with the API's status and error code:

{
"status": 429,
"code": "rate_limited",
"message": "Rate limit exceeded",
"retryAfterSec": 12
}
codeWhat to do
bad_requestFix the arguments. issues lists the fields that failed validation.
unauthorizedThe key is invalid, revoked, or expired. Use a different key.
forbiddenThe key lacks the scope, or its owner lacks access. Retrying will not help.
not_foundThe resource doesn't exist, or the key owner can't see it.
conflictThe resource is in the wrong state, for example an agent that is running.
payment_requiredA spend limit was reached.
rate_limitedWait retryAfterSec seconds, then retry. See Rate limits.

Tool types​

Each tool carries MCP annotations so clients can decide when to ask you for approval. The tables on this page use these types:

TypeMeaning
ReadReads data and changes nothing.
WriteCreates something or starts work. Calling it twice does it twice.
UpdateChanges existing data. Calling it twice has the same effect as calling it once.
DestructiveDeletes or removes access. Review before approving.

Scopes​

The Scope column names the scope a key needs. Broad scopes include the narrower ones under them: developer covers every developer:* scope, and admin covers every admin:* scope. Keys created in the Developer Console with the developer scope can call every developer tool.

Account​

ToolWhat it doesTypeScope
get_current_api_keyReturns the key's owner, its effective scopes, and every tool it can call.ReadNone

Any valid key can call get_current_api_key. Use it to check a key before starting work.

Agents​

Agents run in the background. Start one with run_agent (or launch_agent), then read its answer with get_conversation and its outputs with get_artifact.

ToolWhat it doesTypeScope
run_agentStarts an agent and waits until it finishes, fails, or is stopped. Takes the same arguments as launch_agent.Writedeveloper:agent
followup_and_waitSends a follow-up to an agent and waits for that turn to finish. Takes the same arguments as followup_agent.Writedeveloper:agent
wait_for_agentWaits for an agent that is already running.Readdeveloper:agent
launch_agentStarts an agent and returns right away, without waiting.Writedeveloper:agent
followup_agentSends a follow-up prompt to a finished, stopped, or failed agent and returns right away.Writedeveloper:agent
list_agentsLists your agents, optionally filtered by status or workflow.Readdeveloper:agent
get_agentReturns an agent's status, source files, and artifacts.Readdeveloper:agent
get_conversationReturns the conversation. Pass include: "steps" to add thinking and tool steps.Readdeveloper:agent
get_agent_usageReturns token usage and cost by model for a run, including its sub-agents.Readdeveloper:agent
get_artifactReturns the latest version of an artifact: a Markdown document or a table.Readdeveloper:agent
export_artifactExports a table as CSV or XLSX, or a drawing review as an annotated PDF. Returns a link valid for five minutes.Readdeveloper:agent
stop_agentAsks a running agent to stop.Updatedeveloper:agent
delete_agentDeletes an agent and its messages. Artifacts it created are kept.Destructivedeveloper:agent

get_agent, get_conversation, and get_agent_usage also accept admin:analytics:read, which lets an admin key read any agent in the organization.

Start an agent​

A simple agent takes a prompt, plus optional files, project, and capabilities:

run_agent arguments
{
"prompt": { "text": "Summarize the open items in the site visit report." },
"projectId": "0199a3f2-5b1c-7d40-9e2a-3c8f1a6b2d10",
"fileIds": ["0199a4c8-1f2e-7a33-8b5d-6e9c0d4f7a21"],
"capabilities": { "webSearch": true }
}

To run a workflow, find it with list_workflows (its query matches names and descriptions), then pass workflowId. If the workflow has file inputs, pass workflowInputs instead of prompt, mapping each input name from the workflow's requestedFiles to a file ID, a list of file IDs, or null for an optional input you leave empty. Editors can pass workflowVersionId to run a version other than the released one.

Follow-ups can't attach new files. To work with new files, start a new agent.

What the wait tools return​

run_agent, followup_and_wait, and wait_for_agent return:

{
"agentId": "0199b1e0-6c2d-7f18-a4e3-2b7d9c5e8f01",
"timedOut": false,
"agent": { "id": "0199b1e0-…", "status": "finished", "artifacts": [] }
}

agent is the same object get_agent returns. An agent is active while its status is waiting, running, or awaiting_tool, and done once it is finished, failed, or stopped.

A call waits up to 14 minutes. Pass timeoutMs to wait less. If the time runs out, the result has timedOut: true and the latest status, and the agent keeps running. Call wait_for_agent with agentId to keep waiting. Don't call run_agent again, which would start a second agent.

You can open any agent in Nomic at https://<your-domain>.nomic.ai/assistant/<agentId>.

Files​

ToolWhat it doesTypeScope
search_filesFinds files you can read by name. Returns IDs to use in fileIds and workflowInputs.Readdeveloper:files
upload_fileUploads a file of up to 15 MB, sent inline as base64. Optional path or parentId sets where it goes.Writedeveloper:files
get_file_statusReports whether an uploaded file is processing, ready, or failed.Readdeveloper:files

PDFs and legacy Office files are processed after upload. Wait until get_file_status reports ready before you pass the file to a workflow.

upload_file takes the file as an object:

upload_file arguments
{
"file": {
"filename": "site-visit.pdf",
"contentBase64": "JVBERi0xLjcK...",
"mimeType": "application/pdf"
},
"path": "Field/Site visits/site-visit.pdf"
}

path includes the file name and creates any missing folders. Pass parentId instead to upload into an existing folder.

The client's model writes the base64 content into the call, so upload_file suits small files such as notes or short reports. For drawing sets and other large files, upload in the Nomic app or with POST /api/v0/files/upload, which accepts files up to 500 MB.

Workflows​

ToolWhat it doesTypeScope
list_workflowsLists workflows you can run. query matches names and descriptions. Each result lists its requestedFiles.Readdeveloper:agent
get_workflowReturns a workflow and one version in full: instructions, input slots, linked artifacts. Latest by default.Readdeveloper:agent
list_workflow_versionsLists a workflow's versions with run counts and cost, newest first.Readdeveloper:agent
create_workflowCreates a private workflow with an unreleased first version.Writedeveloper:workflows
update_workflowWrites a new candidate version. Fields you leave out are copied from baseVersionId, or the latest version.Writedeveloper:workflows
release_workflow_versionMakes a version the one launch_agent runs by default. Release an earlier version to roll back.Updatedeveloper:workflows

get_workflow and list_workflow_versions need edit access to the workflow, like opening it in the builder.

Author and improve a workflow​

create_workflow and update_workflow never release. Each returns a versionId; pass it to run_agent as workflowVersionId to test that version while everyone else keeps running the released one. Only editors can run a version other than the released one.

update_workflow edits the latest version in place only while it is unreleased and no agent has run it. After a run, the version is frozen and the next update writes a new version, so each run stays tied to the instructions it ran. To drop a candidate, pass an earlier version as baseVersionId.

When get_workflow returns isShared: true, releasing changes what other people run. Context files, tags, MCPs, and sharing are set in the builder, at the builderPath each response returns.

Projects​

ToolWhat it doesTypeScope
list_projectsLists projects you can access. Pass search to filter by name, or membership: "mine" to list only projects you belong to.Readdeveloper:projects:read
get_projectReturns one project.Readdeveloper:projects:read
list_project_membersLists a project's members and their roles.Readdeveloper:projects:read
create_projectCreates a project, with you as its first admin.Writedeveloper:projects:create
update_projectChanges a project's name, description, or project number.Updatedeveloper:projects:admin
update_project_membersAdds, changes, or removes member roles in one batch. A role of null removes the member.Destructivedeveloper:projects:admin

Roles map to the app's names: admin is Admin, editor is Member, and viewer is Read-only. Changing a project or its members also requires admin access to that project. Organization admins can update any project.

Parse​

ToolWhat it doesTypeScope
submit_parseStarts a parse job for an uploaded file version. Returns a taskId.Writedeveloper:parse
get_parse_statusReturns pending, failed, or completed with a link to the parsed JSON, valid for one hour.Readdeveloper:parse

Parse works on uploaded files only, not files synced from an integration such as SharePoint or Google Drive. See Parse for the output format.

Codes​

ToolWhat it doesTypeScope
search_codesSearches building, fire, and other codes by jurisdiction, code type, and query. Returns adoption status.Readdeveloper:agent

See Code search for jurisdictions, code types, and the result format.

Budgets​

ToolWhat it doesTypeScope
list_budgetsLists the budgets you administer. Filter with scope or projectId.Readdeveloper:budgets:read
get_budgetReturns one budget. Pass organization as the ID for the organization budget.Readdeveloper:budgets:read
list_budget_membersLists each member's own limit, the limit that applies to them, and their spend this window.Readdeveloper:budgets:read
set_budget_member_limitsSets or clears per-user limits in one batch. A limitCents of null restores the budget default.Updatedeveloper:budgets:write

Budget tools need admin access to the budget. Organization admins can reach the organization budget and every project budget, and a project admin can reach that project's budget. Member limits must be turned on for a budget before set_budget_member_limits can change them.

Admin tools​

These tools appear only for keys with admin scopes, and only while the key's owner is an organization admin.

Users​

ToolWhat it doesTypeScope
list_usersLists users in the organization. email filters by address.Readadmin:users:read
get_userReturns one user, with counts of active API keys and sessions.Readadmin:users:read
disable_userDisables a user and revokes all of their API keys. Takes an optional reason.Destructiveadmin:users:write
enable_userRe-enables a disabled user. Their revoked keys stay revoked.Updateadmin:users:write

API keys​

ToolWhat it doesTypeScope
list_api_keysLists API keys in the organization, with owner, scopes, and last use.Readadmin:api-keys:read
revoke_api_keyRevokes a key immediately and permanently. Takes an optional reason.Destructiveadmin:api-keys:write

Audit logs​

ToolWhat it doesTypeScope
list_audit_logsLists audit events. Filter with action and since (ISO 8601).Readadmin:audit:read

Integrations​

ToolWhat it doesTypeScope
list_sharepoint_drivesLists the drives under a SharePoint site, and whether Nomic syncs each one.Readadmin:integrations:read
connect_sharepoint_siteStarts syncing a SharePoint site's drives: all of them, or the driveIds given.Updateadmin:integrations:write

Analytics​

ToolWhat it doesTypeScope
list_daily_spendSpend per UTC day, optionally split by user, project, workflow, or model.Readadmin:analytics:read
list_user_analyticsUsage, spend, spend cap, role, and last activity for each member.Readadmin:analytics:read
list_workflow_analyticsRuns, last run, and average spend for each workflow.Readadmin:analytics:read
list_project_analyticsMembers, files, sessions, and spend for each project.Readadmin:analytics:read
list_usage_eventsIndividual spend events with token counts, for reconciling totals.Readadmin:analytics:read
list_org_agentsAgents run by every member of the organization.Readadmin:analytics:read

Analytics tools default to the last 30 days. See Analytics for the fields each one returns.

Prompts​

Prompts are ready-made instructions that walk the client through a task. Most clients list them as slash commands. A prompt appears only when the key can call every tool it uses.

PromptWhat it doesArguments
orchestrate-agentFinds or uploads the files, runs an agent or workflow, then summarizes the answer and artifacts.goal, optional workflowName
inspect-agentSummarizes an agent's status, last request, final answer, spend, and artifacts.agentId
author-workflowDesigns a workflow with you, creates it as a draft, and tests it on sample files. Asks before releasing.task
improve-workflowMeasures a workflow on test cases, changes one thing per version, compares versions, and asks before releasing the winner.workflowId, optional problem
search-codesAnswers a code-compliance question with search_codes and cites the returned sections.question, optional jurisdiction, codeType
review-org-usageReviews daily spend, top users, workflows, and failed or stopped agents. Admin keys only.Optional window, such as 7d (default) or 30d
manage-org-userLooks up a user and, only if you ask and confirm, disables or enables them. Admin keys only.email, optional action
review-audit-logsSummarizes recent audit events, calling out key revocations, disabled users, and authentication failures. Admin keys only.Optional action, since

Resources​

ResourceContents
nomic://catalogEvery tool the key can call, with its HTTP method and path, type, and required scopes, plus the helper tools.
nomic://instanceThe connected key's owner, effective scopes, and callable tools. The same data as get_current_api_key.

Limits​

LimitValue
Longest wait in one call14 minutes. Pass timeoutMs to wait less.
Largest file for upload_file15 MB
Rate limitsSame as the HTTP API, per user. See Rate limits.