Claude State MCP Server
SQLite-backed MCP server for Claude Code session persistence and multi-agent coordination. Provides tools for session management, event logging, decision tracking, file locking, agent registry, and plan tracking.
README
Claude State MCP Server
SQLite-backed MCP server for Claude Code session persistence and multi-agent coordination.
Features
- Session Persistence — Save/restore session state across Claude Code restarts
- Event Logging — Track what you worked on, when
- Decision Tracking — Record architectural decisions with rationale
- File Locking — Prevent conflicts between parallel agents
- Agent Registry — See who's working on what
- Plan Tracking — Monitor GSD plan execution progress
Installation
# Clone or copy this directory
cd claude-state-mcp
# Install dependencies
npm install
# Build
npm run build
# Test it works
node dist/index.js
# Should see: "Claude State MCP initialized: ~/.claude/state.db"
# Ctrl+C to exit
Claude Code Configuration
Add to your ~/.claude/claude_desktop_config.json (or create it):
{
"mcpServers": {
"claude-state": {
"command": "node",
"args": ["/absolute/path/to/claude-state-mcp/dist/index.js"]
}
}
}
Or if you prefer npx (after publishing to npm):
{
"mcpServers": {
"claude-state": {
"command": "npx",
"args": ["claude-state-mcp"]
}
}
}
Database Location
Default: ~/.claude/state.db
Override with environment variable:
CLAUDE_STATE_DB=/custom/path/state.db node dist/index.js
Available Tools
Session Management
| Tool | Description |
|---|---|
session_start |
Start a new session (call at beginning) |
session_end |
End session with notes (call at end) |
session_get |
Get last session for a branch |
session_list_active |
List all active sessions |
session_update_progress |
Update phase/plan/task progress |
session_history |
"What did I work on last week?" |
Event Logging
| Tool | Description |
|---|---|
event_log |
Log an event (task completion, etc.) |
event_list |
Get recent events |
Decision Tracking
| Tool | Description |
|---|---|
decision_record |
Record an architectural decision |
decision_list |
Get all active decisions |
decision_supersede |
Replace a decision with a new one |
File Coordination
| Tool | Description |
|---|---|
files_lock |
Lock files to prevent conflicts |
files_unlock |
Release file locks |
files_check_conflicts |
Check if files are locked |
files_list_locks |
List all locks |
Agent Registry
| Tool | Description |
|---|---|
agent_register |
Register this Claude instance |
agent_heartbeat |
Update heartbeat |
agent_list_active |
List active agents |
agent_deregister |
Mark agent as terminated |
Plan Tracking
| Tool | Description |
|---|---|
plan_start |
Record start of GSD plan |
plan_update_progress |
Update task completion |
plan_complete |
Record plan completion |
plan_status |
Get status of plans in a phase |
Utility
| Tool | Description |
|---|---|
query |
Run custom SELECT query |
Usage Examples
Start of Session
Claude, start a session for branch feature/calendar in /Users/me/project
Claude calls:
{
"tool": "session_start",
"args": {
"branch": "feature/calendar",
"worktree_path": "/Users/me/project"
}
}
End of Session
Claude, save my session - we're stopping for the day
Claude calls:
{
"tool": "session_end",
"args": {
"branch": "feature/calendar",
"worktree_path": "/Users/me/project",
"context_notes": ["Working on WeekView component", "Using react-big-calendar"],
"next_steps": ["Finish time slot click handlers", "Add drag-and-drop"],
"blockers": [],
"uncommitted_files": ["src/components/WeekView.tsx"]
}
}
Check What's Running
What other Claude sessions are active?
Claude calls:
{
"tool": "session_list_active"
}
Query History
What did I work on last week?
Claude calls:
{
"tool": "session_history",
"args": { "days": 7 }
}
Coordinate Files
Before editing a shared file:
{
"tool": "files_check_conflicts",
"args": {
"files": ["src/lib/api.ts"],
"project_path": "/Users/me/project",
"worktree_path": "/Users/me/worktrees/feature-1"
}
}
Integration with GSD Workflow
The /worktree-context command should call:
session_get(branch, worktree_path, include_events: true)
session_list_active()
files_list_locks(project_path)
agent_list_active()
The /persist-session command should call:
session_end(branch, worktree_path, context_notes, next_steps, blockers, uncommitted_files)
Schema
sessions -- One active per branch/worktree
events -- Activity log
decisions -- Architectural decisions
file_locks -- Coordination between agents
agents -- Registry of Claude instances
plan_executions -- GSD plan tracking
Querying Directly
Use the query tool for custom queries:
{
"tool": "query",
"args": {
"sql": "SELECT * FROM events WHERE event_type = 'task_completed' AND timestamp > datetime('now', '-1 day')"
}
}
Or open the database directly:
sqlite3 ~/.claude/state.db
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.