Metadata-Version: 2.4
Name: distill-mcp
Version: 0.1.0
Summary: Privacy-first team memory MCP server — local LLM distillation before team sync
Project-URL: Homepage, https://github.com/5queezer/distill
Project-URL: Documentation, https://5queezer.github.io/distill/
Project-URL: Repository, https://github.com/5queezer/distill
Project-URL: Issues, https://github.com/5queezer/distill/issues
Author-email: Christian Pojoni <christian.pojoni@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: claude,llm,mcp,memory,ollama,privacy,team-knowledge
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.11
Requires-Dist: detect-secrets>=1.5.0
Requires-Dist: fastmcp>=1.0
Requires-Dist: httpx>=0.27
Requires-Dist: lancedb>=0.18
Requires-Dist: pydantic-settings>=2.0
Requires-Dist: pydantic>=2.0
Requires-Dist: structlog>=25.5.0
Provides-Extra: gcp
Requires-Dist: asyncpg>=0.29; extra == 'gcp'
Requires-Dist: google-auth>=2.0; extra == 'gcp'
Requires-Dist: pgvector>=0.3; extra == 'gcp'
Provides-Extra: postgres
Requires-Dist: asyncpg>=0.29; extra == 'postgres'
Requires-Dist: pgvector>=0.3; extra == 'postgres'
Description-Content-Type: text/markdown

# Distill

[![CI](https://github.com/5queezer/distill/actions/workflows/ci.yml/badge.svg)](https://github.com/5queezer/distill/actions/workflows/ci.yml)
![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue)
[![License: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE)

An MCP server that gives Claude Code a shared team knowledge base — a local LLM transforms your raw input into anonymous, factual knowledge *before* anything leaves your device.

No author. No frustration. No names. Just a clean, reusable fact.

![Distill demo — raw thought to clean team fact](docs/demo.gif)

```mermaid
flowchart LR
    A[You type freely] --> B[Ollama on your Mac]
    B --> C{Review}
    C -- approve --> D[Team DB]
    C -- reject --> E[Discarded]
```

## Quick Start

```bash
pip install distill-mcp
ollama pull gemma3:4b && ollama pull nomic-embed-text
claude mcp add distill -- python -m distill_mcp
```

Then in Claude Code:

```
You:    "No, we don't use REST here. We switched to gRPC last month."

Claude: [saves to distill]
        Got it. I've noted that the team uses gRPC, not REST.

        ... next session, different repo ...

You:    "Set up the API for this new service."

Claude: [searches distill → finds gRPC decision]
        Based on your team's knowledge, I'll set up a gRPC
        service since the team switched from REST last month.
```

Distill saves when you correct a mistake or make a decision, and searches before proposing architecture — no prompting needed.

## What makes this different

Every "memory MCP" stores your raw text in a database. Distill doesn't. The local LLM is a mandatory privacy gateway that transforms personal thoughts into impersonal team knowledge.

|  | Raw stays local | LLM distills | Team sync | Platform agnostic |
|--|----------------|-------------|-----------|-------------------|
| Claude-Mem | Partial (`<private>` opt-out) | Cloud API compresses | Single-user | Claude Code only |
| Cipher | No | No | Yes | No |
| Supermemory | No | No | Yes | No |
| Mem0 | Yes | No | No | Yes |
| Memctl | Yes | No | Yes | Yes |
| **Distill** | **Yes** | **Yes** | **Yes** | **Yes** |

Based on public documentation as of March 2026.

## Documentation

- [Getting Started](https://5queezer.github.io/distill/tutorials/getting-started/) — full tutorial
- [Installation](https://5queezer.github.io/distill/how-to/installation/) — all setup options
- [GCP Backend](https://5queezer.github.io/distill/how-to/gcp-backend/) — team-shared database
- [MCP Tools](https://5queezer.github.io/distill/reference/tools/) — all 8 tools
- [Configuration](https://5queezer.github.io/distill/reference/configuration/) — environment variables
- [Architecture](https://5queezer.github.io/distill/explanation/architecture/) — Clean Architecture design
- [Privacy Model](https://5queezer.github.io/distill/explanation/privacy-model/) — how your data stays private

## Development

```bash
git clone https://github.com/5queezer/distill.git
cd distill
uv sync
uv run pytest tests/ -x -v
```

## License

[MIT](LICENSE)
