Distillery — Claude Code MCP server: what it does, how to install
Claude skills over a local knowledge base: capture what a session settled on, look it up by meaning later, get answers with sources attached.
claude mcp add distillery-mcp -e JINA_API_KEY=<JINA_API_KEY> -e OPENAI_API_KEY=<OPENAI_API_KEY> -- uvx distillery-mcpWhat Distillery does
Distillery keeps work notes, meeting records and links in a DuckDB store and indexes them as vector embeddings. You query it in plain language; it matches by meaning and returns fragments with their provenance. Run it locally over stdio or point at a hosted HTTP service gated by GitHub OAuth.
The MCP server ships with a plugin of 15 slash commands. /distill files knowledge from a session, /recall searches, /pour merges several entries into one cited answer. Feed handling lives in /radar and /watch, GitHub issues and pull requests come in through /gh-sync, and /briefing with /digest cover team summaries. A /setup wizard handles first-time configuration.
Local runs need Python 3.11+ and uv. The default fastembed provider computes embeddings on your own machine and asks for no API key. Switching to a hosted provider means setting DISTILLERY_EMBEDDING_PROVIDER plus the matching secret — JINA_API_KEY for Jina, OPENAI_API_KEY for OpenAI. The plugin does not wire up an MCP server on its own, so /setup is a required step after installing. The hosted demo at distillery-mcp.fly.dev exists for evaluation; keep confidential material off it.
What it helps with
- capture a decision from a working session into the knowledge base
- find a past discussion by meaning instead of exact wording
- assemble one answer carrying citations from several entries
- pull GitHub issues and pull requests into the shared knowledge base
- produce a weekly summary of team activity
Example prompts for the agent
- Store this decision: local storage goes on DuckDB
- Find what we discussed about distributed caching strategies
- Put together how our auth system works, with sources
How to install Distillery
Platform CLI
claude mcp add distillery-mcp -e JINA_API_KEY=<JINA_API_KEY> -e OPENAI_API_KEY=<OPENAI_API_KEY> -- uvx distillery-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from distillery-mcp <command>
Platform CLI
codex mcp add distillery --env JINA_API_KEY=<JINA_API_KEY> --env OPENAI_API_KEY=<OPENAI_API_KEY> -- uvx distillery-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from distillery-mcp <command>
Config file
{
"mcpServers": {
"distillery": {
"command": "uvx",
"args": [
"distillery-mcp"
],
"env": {
"JINA_API_KEY": "<JINA_API_KEY>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from distillery-mcp <command>
Config file
{
"servers": {
"distillery": {
"type": "stdio",
"command": "uvx",
"args": [
"distillery-mcp"
],
"env": {
"JINA_API_KEY": "<JINA_API_KEY>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from distillery-mcp <command>
Platform CLI
gemini mcp add -e JINA_API_KEY=<JINA_API_KEY> -e OPENAI_API_KEY=<OPENAI_API_KEY> distillery uvx distillery-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from distillery-mcp <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Distillery
How do I install Distillery in Claude Code?
Add the marketplace and install the plugin: claude plugin marketplace add norrietaylor/distillery, then claude plugin install distillery. Run /setup afterwards to add the MCP server.
What does Distillery do?
It holds team knowledge and retrieves it semantically. The plugin's slash commands write entries, search them, and build summaries that point back to the source entries.
Does local use require an API key?
No. fastembed computes embeddings on-device by default. You need a key only if you switch to Jina or OpenAI via DISTILLERY_EMBEDDING_PROVIDER.