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
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。