A native Model Context Protocol server. Plug your knowledge base into any AI agent.
No middleware. No SaaS bridge. No bespoke tool descriptions per agent. The MCP server ships in the same binary as the search engine.
{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "stratafs.search",
"arguments": {
"query": "where do we handle JWT refresh",
"sources": [
"code",
"docs"
],
"mode": "hybrid",
"limit": 3
}
}
} MCP tools/call over JSON-RPC 2.0 — exactly what Claude Desktop, ChatGPT plugins, and custom agents speak.
What MCP is, in two lines
The Model Context Protocol is an open spec (Anthropic, late 2024) for letting agents discover and call tools over JSON-RPC 2.0. It's the "USB-C" of agent integrations — every major client speaks it, every server can target it once.
The StrataFS tool catalog
Pointed at http://localhost:8081/mcp, an agent sees four
tools immediately:
-
stratafs.search— hybrid search across one or more sources. Returns LLM-friendly text blocks pre-trimmed for the model's context window. -
stratafs.get_chunk— fetch a single chunk by id. Used when the agent wants the full surrounding context after a search. -
stratafs.list_sources— enumerate configured sources, with last-sync time and file counts. -
stratafs.stat— health and queue depth, so the agent can tell the user "indexing is still catching up" rather than pretend a result is exhaustive.
Pre-shaped responses
A naive search server returns raw rows. StrataFS returns
{ type: "text", text: "<path>:<line> — <snippet>" } blocks,
already truncated to a sensible context budget. That means agents
consume search results without you writing a custom adapter, and tokens
don't get burned on JSON scaffolding.
Why this matters: agents are bottlenecked on context window, not bandwidth. A search server that doesn't pre-shape its output forces every agent to re-implement the same trimming logic — and to do it badly.
Connecting Claude Desktop
Add this to your Claude Desktop MCP config (see our setup walkthrough for the long version):
{
"mcpServers": {
"stratafs": {
"url": "http://localhost:8081/mcp"
}
}
}
Restart Claude. Ask "What does the auth/middleware/refresh.go file
do?" and Claude will call stratafs.search, fetch the
relevant chunks, and answer from your actual code — not from training
data.
Connecting custom agents
Any MCP client works. For Python:
from mcp import Client
async with Client("http://localhost:8081/mcp") as c:
tools = await c.list_tools()
result = await c.call_tool(
"stratafs.search",
{"query": "rate limit configuration", "limit": 5},
)
for block in result.content:
print(block.text) MCP-only mode
If you don't need the REST API, run stratafs serve --mcp-only
to skip the HTTP server entirely. The binary is small, the surface area
is smaller. Great for laptops where the only consumer is Claude
Desktop.
Privacy and access
- The MCP server binds to
127.0.0.1by default — no network exposure. - Per-source isolation means an agent calling
stratafs.searchonly sees sources you've configured. - Source-level RBAC is on the roadmap; today, mounting a source is opt-in by edit to
config.toml. - No telemetry. The agent and the index talk locally. Nothing leaves the box.
Wire up your agent in five minutes.
One config edit. The semantic filesystem becomes a tool your AI already knows how to call.