Docs MCP functions
Three MCP functions — docs_list, docs_search, docs_read — for agents to browse and read the Aeontel documentation.
The Aeontel MCP server ships three read-only functions (exposed as MCP tools via
server.tool(...)) that let agents browse and read the docs at
docs.aeontel.com. They are part of the regular MCP surface at POST /mcp — no
separate server, no extra auth beyond the one you already use for Aeontel.
docs_list
Browse the docs table of contents. Call this first to discover what pages exist before reading.
Parameters
section?: "general" | "platform" | "api" | "cli" | "mcp" | "libraries"— restrict to one top-level area.
Response: { title, path, section, summary }[]. No IDs, no raw URLs — just
the data an agent needs to plan the next call.
{
"title": "Agents",
"path": "/concepts/agents",
"section": "General",
"summary": "AI agents with instructions, a model, and bound functions."
}docs_search
Keyword search across every page. Returns the top matches ranked by a simple term-frequency score. Title matches are weighted heavily.
Parameters
query: string— the keyword or phrase (minimum 2 chars).section?: DocSection— same values asdocs_list.response_format?: "concise" | "detailed"—concise(default) returns 5 hits with ≤300-char excerpts;detailedreturns 10 hits with ≤800-char excerpts.
Response: { title, path, section, excerpt }[].
The in-process search scores pages by term frequency over the bundled
llms-full.txt. It's intentionally simple — fast, cacheable on the edge, no
external index to keep in sync. Swap in embeddings later if usage warrants
it.
docs_read
Fetch the full markdown for a specific doc page.
Parameters
path: string— fromdocs_list. Trailing.mdis accepted.response_format?: "full" | "summary"—full(default) returns the entire markdown.summaryreturns only the frontmatter plus the first ~400 chars — handy for quick skim before committing to a read.
Errors: unknown paths return an actionable message —
Unknown doc path "xxx". Call docs_list to see available paths, or docs_search to find by keyword. — so agents know how to recover.
Design notes
These functions are designed per Anthropic's tool-writing guide (MCP calls them tools on the wire; Aeontel-side they're functions):
- Unambiguous parameters — typed enums, never free-form strings for known
domains (
DocSection,response_format). - Response shapes stripped of low-signal data — no raw URLs when a path suffices, no internal IDs.
- Actionable errors — every error message names the remediation function.
- Response-format enums — callers opt into verbosity instead of the server guessing.
- Namespaced names —
docs_*groups these functions together the way the guide endorses (asana_search,asana_projects_search).