Marten Docs MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Marten Docs MCP Server Search Marten docs for aggregate projections"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Marten Docs MCP Server
Local MCP server for focused Marten documentation retrieval.
It caches https://martendb.io/llms-full.txt, builds a local index, and exposes a narrow retrieval surface so agents search first, then progressively narrow to specific sections.
Quick install
macOS / Linux
# Install latest release
curl -fsSL https://raw.githubusercontent.com/stijnVanHorenbeek/marten_mcp/master/scripts/quickinstall.sh | sh
# Print a Copilot-compatible config snippet
curl -fsSL https://raw.githubusercontent.com/stijnVanHorenbeek/marten_mcp/master/scripts/quickinstall.sh | sh -s -- --client copilotWindows PowerShell
# Install latest release
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/stijnVanHorenbeek/marten_mcp/master/scripts/quickinstall.ps1)))
# Print a Copilot-compatible config snippet
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/stijnVanHorenbeek/marten_mcp/master/scripts/quickinstall.ps1))) -Client copilotRelated MCP server: Atlas
Example SKILL.md
Example SKILL.md is included
MCP config examples
OpenCode
{
"mcp": {
"marten-docs": {
"type": "local",
"command": ["marten-docs-mcp"],
"environment": {
"MARTEN_MCP_CACHE_DIR": "~/.cache/marten-docs-mcp",
"MARTEN_MCP_STORAGE_MODE": "auto",
"MARTEN_MCP_SQLITE_PATH": "~/.cache/marten-docs-mcp/cache.db"
}
}
}
}GitHub Copilot Chat
{
"mcpServers": {
"marten-docs": {
"type": "local",
"command": "marten-docs-mcp",
"args": [],
"env": {
"MARTEN_MCP_CACHE_DIR": "~/.cache/marten-docs-mcp",
"MARTEN_MCP_STORAGE_MODE": "auto",
"MARTEN_MCP_SQLITE_PATH": "~/.cache/marten-docs-mcp/cache.db"
},
"tools": ["*"]
}
}
}MCP tools
search_docs(query, limit?, offset?)search_within_page(path, query, limit?, offset?)list_headings(path)read_section(id, segmentIndex?, offset?, maxChars?)(returns one local segment plus compactneighbors.before/afterrefs)read_context(id, before?, after?)(nearby refs only)list_pages(prefix?, limit?)(discovery only when search is insufficient)get_status()refresh_docs(force?)
Recommended retrieval flow
search_docs(...)Narrow with
list_headings(...)and/orsearch_within_page(...)Read one chunk with
read_section(...)Use
read_context(...)only for nearby references
Broad page dumps are intentionally unsupported.
1. search_docs(query="aggregate projections", limit=3)
2. search_within_page(path="/events/projections/aggregate-projections.md", query="lifecycle", limit=3)
3. read_section(id="<id>", offset=0, maxChars=1200)
4. read_context(id="<id>", before=1, after=1)
5. repeat read_section(..., offset=<nextOffset>) while hasMore=trueCompanion docs
Available Tools
8 toolsget_statusBRead-onlyIdempotent
Get cache and index status.
Inputs: no named parameters. Returns: index, hasCache, cachePath, freshness, +2 more
list_headingsCRead-onlyIdempotent
Inspect sections within a known page before reading a chunk.
Inputs: path (required). Returns: path, count, headings
list_pagesCRead-onlyIdempotent
Discovery only when search does not identify a relevant page.
Inputs: limit, prefix. Returns: count, limit, pages, prefix
read_contextARead-onlyIdempotent
Expand nearby refs around one chunk when immediate neighbor refs are not enough.
Inputs: id (required), after, before. Returns: id, after, count, before, +1 more
read_sectionARead-onlyIdempotent
Read one chunk with pagination. Prefer neighbors.before/after for the next local read before running another global search.
Inputs: id (required), offset, maxChars, segmentIndex. Returns: id, path, error, kinds, +8 more
refresh_docsC
Refresh source docs and rebuild the index.
Inputs: force. Returns: force, status, metadata, refreshed, +1 more
search_docsARead-onlyIdempotent
Start here: global docs search. Once a relevant page is found, prefer local navigation over another global search.
Inputs: query (required), limit, offset. Returns: count, limit, query, offset, +1 more
search_within_pageARead-onlyIdempotent
Narrow within a known page after global search. Prefer this over another global search.
Inputs: path (required), query (required), limit, offset. Returns: path, count, limit, query, +2 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Each tool has a distinct purpose that is clearly described. Tools like search_docs, search_within_page, and read_section guide the agent through a clear search-to-read workflow without ambiguity.
All tool names follow a consistent verb_noun pattern: list_headings, search_docs, search_within_page, read_section, read_context, list_pages, get_status, refresh_docs. The naming is predictable and uniform.
With 8 tools, the count is well-scoped for a documentation server. Each tool supports a specific step in the exploration process, from search to reading to cache management.
The tool surface covers the full workflow: global search, local search, reading with pagination, context expansion, page listing, and cache status/refresh. A minor gap is the lack of a tool to directly fetch a page by ID or URL, but the workflow is otherwise complete.
Maintenance
Related MCP Connectors
MCP server for querying Forkast documentation
MCP server for accessing curated awesome list documentation
Read-only MCP server over the developer docs for the portfolio's JSON API, MCP, A2A and NLWeb.
MCP server for opencode documentation, generated by doc2mcp.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceGeneric MCP server that exposes Markdown documentation to LLMs, enabling them to search and answer questions about any software documentation.MIT
- AlicenseNot gradedqualityCmaintenanceLocal-first MCP server for querying multi-repo engineering documentation artifacts from a SQLite corpus.7 npmAGPL 3.0
- FlicenseNot gradedqualityDmaintenanceAn MCP server that provides intelligent access to CRC/OpenShift Local documentation by fetching, caching, and searching official docs.-
- AlicenseAqualityBmaintenanceA local MCP server that fetches official library documentation (llms.txt-first), caches it to disk, and serves relevant sections to coding agents offline with deterministic retrieval.310 npmMIT