unlob for Claude Code
Claude Code speaks the Model Context Protocol natively, so the whole search surface — including the six coverage-graph tools — becomes available without writing any HTTP code.
Config lives in .mcp.json in your project root, or ~/.claude.json for every project
{
"mcpServers": {
"unlob": {
"command": "npx",
"args": ["-y", "@unlob/mcp"],
"env": { "UNLOB_API_KEY": "ulb_your_key_here" }
}
}
}Setup
Get an API key
One magic link creates your account and issues a key. The free tier is 10,000 requests a month.
Add the server
Create .mcp.json in your project root with the config block above, or add it to ~/.claude.json to make it available everywhere.
Restart and verify
Run /mcp inside Claude Code to confirm the unlob server connected and all eleven tools are listed.
Use it
Ask a question that needs the web. Claude will pick web_search for retrieval, and assemble_context when it needs a packed, corroborated set rather than a link list.
Worth knowing
- Project-scoped .mcp.json can be committed so the whole team gets the same tools — put the key in an environment variable rather than the file.
- For agent work, assemble_context is usually the tool to reach for: one call replaces the retrieve-dedupe-rank-truncate loop.
- why_not is worth mentioning in your prompt. It stops the agent inferring that an empty result means the page does not exist.
What Claude Code gets
All 11 tools, from one config block.
web_searchSearches the agent-first web index and returns metadata-only hits — url, host, snippet, score — never the page body.
get_documentFetches the full cleaned text of one passage by id — the lazy read path.
similarMore-like-this: given a passage id, returns its semantic neighbours.
browseBrowses without a query: the most recent, or highest-ranked, passages — optionally within one vertical.
why_notExplains why a URL is or is not in the index: present, removed with a reason, or never admitted.
relatedReturns the connected neighbourhood of a passage from the coverage graph — the edges are what to read next.
corroborateReports how many distinct hosts independently carry a story — the anti-hallucination check.
authoritiesReturns the top passages on a topic ranked by graph centrality — trust-triage a field without reading junk into context.
dossierBuilds a one-hop brief on an entity: mentions, the hosts covering it, and the entities co-mentioned with it.
pathFinds the shortest chain of edges linking two passages — reasoning-path retrieval, or connect-the-dots.
assemble_contextGraphRAG as a service: returns a ready-to-read context pack — corroborated, story-deduplicated, trust-ranked and packed to a token budget, each passage carrying the reason it was included.
Frequently asked questions
Does this work with Claude Code on the CLI and in the IDE?
Yes. MCP configuration is shared across Claude Code surfaces — CLI, desktop app and IDE extensions all read the same config.
How do I keep the API key out of version control?
Reference an environment variable in the env block rather than the literal key, and export it from your shell profile or a local .env that is gitignored.
Get a key and connect it
10,000 requests a month, no card. The config above works unchanged once you have a key.