Doclea MCP
@doclea/mcp
Local MCP server for Doclea - persistent memory for AI coding assistants.
Installation
Prerequisites
Step 1: Clone and Build
git clone https://github.com/your-org/doclea.git
cd doclea/packages/doclea-mcp
# Install dependencies
bun install
# Download embedding model (first time only, ~130MB)
./scripts/setup-models.sh
# Build
bun run buildStep 2: Start Services
# Start Qdrant + Embeddings
bun run docker:up
# Verify services
curl http://localhost:6333/readyz # Should return "ok"
curl http://localhost:8080/health # Should return "ok"Step 3: Add to Claude Code
Option A: Claude Code CLI (~/.claude.json or project .claude.json):
{
"mcpServers": {
"doclea": {
"command": "bun",
"args": ["run", "/absolute/path/to/doclea/packages/doclea-mcp/dist/index.js"]
}
}
}Option B: Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"doclea": {
"command": "bun",
"args": ["run", "/absolute/path/to/doclea/packages/doclea-mcp/dist/index.js"]
}
}
}Option C: For development (uses source directly):
{
"mcpServers": {
"doclea": {
"command": "bun",
"args": ["run", "/absolute/path/to/doclea/packages/doclea-mcp/src/index.ts"]
}
}
}Step 4: Restart Claude Code
After updating config, restart Claude Code to load the MCP server.
Step 5: Initialize Your Project
In Claude Code, navigate to your project and ask:
Initialize doclea for this projectThis scans your codebase, git history, and documentation to bootstrap memories.
Usage
Once installed, Claude Code automatically has access to these tools:
Store a Decision
Store this as a decision: We're using PostgreSQL because we need ACID
compliance for financial transactions. Tag it with "database" and "infrastructure".Search for Context
Search memories for authentication patternsGenerate Commit Message
Generate a commit message for my staged changesGenerate PR Description
Create a PR description for this branchFind Code Experts
Who should review changes to src/auth/?Generate Changelog
Generate a changelog from v1.0.0 to HEAD for usersConfiguration
Create .doclea/config.json in your project root (optional - uses defaults):
{
"embedding": {
"provider": "local",
"endpoint": "http://localhost:8080"
},
"qdrant": {
"url": "http://localhost:6333",
"collectionName": "doclea_memories"
},
"storage": {
"dbPath": ".doclea/local.db"
}
}Embedding Providers
Provider | Config |
local (default) |
|
openai |
|
nomic |
|
voyage |
|
ollama |
|
MCP Tools Reference
Memory Tools
Tool | Description |
| Store a memory (decision, solution, pattern, architecture, note) |
| Semantic search across memories |
| Get memory by ID |
| Update existing memory |
| Delete memory |
Git Tools
Tool | Description |
| Generate conventional commit from staged changes |
| Generate PR description with context |
| Generate changelog between refs (markdown/json, developers/users) |
Expertise Tools
Tool | Description |
| Map codebase expertise, identify bus factor risks |
| Suggest PR reviewers based on file ownership |
Bootstrap Tools
Tool | Description |
| Initialize project, scan git history, docs, and code |
| Import from markdown files or ADRs |
Memory Types
decision - Architectural decisions, technology choices
solution - Bug fixes, problem resolutions
pattern - Code patterns, conventions
architecture - System design notes
note - General documentation
Troubleshooting
Docker services not starting
# Check logs
docker compose -f docker-compose.test.yml logs
# Restart
bun run docker:down
bun run docker:upFirst startup is slow
The embeddings service downloads the model (~130MB) on first run. After that, it's cached.
Port conflicts
Default ports: Qdrant (6333), Embeddings (8080). Edit docker-compose.test.yml to change.
MCP server not appearing in Claude
Verify the path in config is absolute
Check that
bun run buildcompleted successfullyRestart Claude Code completely
Development
# Run in development mode (hot reload)
bun run dev
# Run all tests
bun test
# Run unit tests only
bun run test:unit
# Run integration tests (requires Docker services)
bun run test:integration
# Type check
bun run typecheck
# Build for production
bun run buildArchitecture
┌─────────────────────────────────────────────────────────┐
│ Claude Code │
│ ↓ MCP │
├─────────────────────────────────────────────────────────┤
│ Doclea MCP Server │
│ ┌─────────┐ ┌─────────┐ ┌──────────┐ ┌───────────┐ │
│ │ Memory │ │ Git │ │Expertise │ │ Bootstrap │ │
│ │ Tools │ │ Tools │ │ Tools │ │ Tools │ │
│ └────┬────┘ └────┬────┘ └────┬─────┘ └─────┬─────┘ │
│ └───────────┴───────────┴─────────────┘ │
│ ↓ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ SQLite │ │ Qdrant │ │ Embeddings │ │
│ │ (metadata) │ │ (vectors) │ │ (local/API) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────┘License
MIT