Tools reference
Headless Context MCP has 21 tools. Each one makes a single
MCP Studio API request (two for get_account), so the endpoint linked
beside it documents the full response. Anywhere a tool takes server, you can
pass the server's id or its slug.
Read-only tools are marked as such to your client, and tools that delete something are marked destructive, so clients that ask before running a tool can treat them differently.
Servers
| Tool | Arguments | API endpoint |
|---|---|---|
list_servers | none | GET /api/mcp/list |
get_server | server | GET /api/mcp/{id} |
create_server | name, sources, optional description, tools, visibility | POST /api/mcp/create |
delete_server | server, confirm | DELETE /api/mcp/{id} |
set_server_visibility | server, visibility (public or private) | PATCH /api/mcp/{id}/visibility |
create_server takes sources as a list of { "url": "...", "label": "..." }.
A URL can be a docs site, a GitHub repository, a website, an API reference, or
another MCP server's endpoint. tools takes 3 to 10 tool names; when you leave
it out, the server gets search_docs, ask_question, get_code_examples,
find_api_reference, and get_quickstart.
A private server's access token is returned once, in accessToken from
create_server or in issuedToken.plaintext from set_server_visibility. Your
assistant is told to show it to you; store it then, because it cannot be shown
again.
delete_server stops the endpoint immediately. You can restore the server from
the dashboard for 7 days.
Indexing and sources
| Tool | Arguments | API endpoint |
|---|---|---|
reindex_server | server, optional source_id | POST /api/mcp/{id}/crawl |
get_indexing_progress | server | POST /api/mcp/{id}/crawl-next |
add_source | server, url, optional label | POST /api/mcp/{id}/sources |
remove_source | server, source_id or url, confirm | DELETE /api/mcp/{id}/sources |
Indexing runs in the background. get_indexing_progress reports crawling or
indexing while work remains and active when the server is ready.
remove_source deletes everything indexed from that source.
On the free plan each server includes 2 sources. Past that, add_source returns
a link to buy another source slot instead of adding it.
Server tools
| Tool | Arguments | API endpoint |
|---|---|---|
get_server_tools | server | GET /api/mcp/{id}/tools |
update_server_tools | server, and tools, or add and/or remove | PATCH /api/mcp/{id}/tools |
Pass tools to replace the whole selection, or add and remove to change
part of it. Built-in names are search_docs, query_source,
get_code_examples, summarize_content, find_api_reference, get_changelog,
search_issues, get_quickstart, extract_schema, and ask_question. A custom
tool is named custom:<id>. A server keeps between 3 and 10 tools.
Custom tools
| Tool | Arguments | API endpoint |
|---|---|---|
list_custom_tools | none | GET /api/custom-tools |
build_custom_tool | prompt (20 to 1,000 characters), optional sources | POST /api/custom-tools |
delete_custom_tool | tool_id, confirm | DELETE /api/custom-tools/{id} |
build_custom_tool takes up to a minute and returns the finished tool. Attach it
to a server with update_server_tools. An account holds up to 5 custom tools.
Deleting one detaches it from every server, so it needs a key that is not limited
to specific servers.
Retrieval rules
| Tool | Arguments | API endpoint |
|---|---|---|
list_retrieval_rules | server | GET /api/retrieval-rules |
create_retrieval_rule | server, rule (20 to 600 characters), optional source_id | POST /api/retrieval-rules |
update_retrieval_rule | rule_id, enabled and/or priority (-100 to 100) | PATCH /api/retrieval-rules/{id} |
delete_retrieval_rule | rule_id, confirm | DELETE /api/retrieval-rules/{id} |
A rule is a plain-language instruction such as "This is our brand kit; use it for
anything customer-facing." create_retrieval_rule returns what the rule compiled
to, so you can check it means what you intended. To change a rule's wording,
delete it and create a new one. Up to 10 rules per server.
Analytics and account
| Tool | Arguments | API endpoint |
|---|---|---|
get_server_analytics | server | GET /api/analytics/{id} |
get_request_log | server, optional range, tool, client, status, page | GET /api/analytics/{id}/calls |
get_account | none | GET /api/billing/usage and GET /api/account/entitlements |
get_request_log returns 20 requests per page, newest first, and needs Core
Analytics or the free trial. range is one of 7d, 30d, 90d, 1y, or
all; status is ok or error.
Errors
When the API refuses a request, the tool result is marked as an error and
contains the API's status and response body, for example
MCP Studio API returned HTTP 403 followed by the reason. Your assistant can
read it and tell you why. The codes are listed in
Errors and limits.