Claude Project History MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| cph_session_initA | CALL THIS FIRST at the start of every Claude Code session. Returns the minimum context needed to orient yourself: active tasks, open blockers, and decisions relevant to the files you're currently working on. This is the ONLY tool you need to call proactively. Everything else is on-demand. Args:
Returns: SessionContext with workflow state, active work, open blockers, relevant decisions, and a hint. After calling this, DO NOT call workflow_summary, task_list, or decision_list unless the user explicitly asks. Pull individual records on demand with their ID. |
| cph_detect_workflowA | Detect which workflow matches the current git branch. Call this if you don't have a workflow_id in CLAUDE.md yet, or if you're on an unfamiliar branch and want to know if a workflow already exists for it. Returns either a matched workflow or a suggestion to create one. |
| cph_set_depthA | Set your personal retrieval depth preference for session init. This is saved by your git email and applied automatically on every future session. minimal = active tasks + open blockers only (fastest, smallest context cost) standard = + relevant decisions (default, recommended) deep = + teammate activity + historical patterns (use when debugging complex issues) |
| cph_statusA | Get overall Claude Project History status: storage summary and active workflow count. Use this to check that the plugin is working, not to get project context. For project context, use cph_session_init. |
| cph_context_syncA | Synchronize project context with the database. Call this at the start of every session and after completing each task. First call (or full_refresh=true): returns full context snapshot like session_init. Subsequent calls: returns only changes (deltas) since last sync, within token budget. If a tool returns a conflict error, call this to get current state before retrying. Args:
Returns: { context, deltas, synced_at } |
| cph_workflow_createA | Create a new workflow (project container for tasks, blockers, decisions). Create one per feature branch, sprint, or meaningful engineering effort. Args:
Returns: Created workflow with ID. PUT THIS ID IN YOUR CLAUDE.md. |
| cph_workflow_listA | List workflows filtered by status. Returns: Array of workflows with ID, name, status. No task counts (use cph_workflow_summary for that). |
| cph_workflow_summaryA | Get a full status summary of a workflow. Returns task counts by status, open blocker count, decision count, and estimation accuracy ratio. Use this when a user explicitly asks for project status. Don't call proactively. |
| cph_workflow_updateB | Update a workflow's name, description, status, or git branch pattern. |
| cph_task_createA | Create a task within a workflow. Call this when beginning any discrete piece of work that will take more than ~5 minutes. Create BEFORE starting work, not after. Args:
Returns: Created task. Call cph_task_start immediately after. |
| cph_task_startA | Mark a task as in_progress and record start time. CALL THIS BEFORE writing any code or making any changes for this task. The hook system uses the existence of an in_progress task to allow file writes. State machine: pending → in_progress (only valid transition from this tool) |
| cph_task_completeA | Mark a task as completed. State machine: in_progress → completed (rejects if not in_progress) Args:
|
| cph_task_listA | List tasks filtered by workflow and/or status. Returns ID and title only for efficiency. Use cph_task_get for full details on a specific task. Call this only when explicitly asked — session_init already provides active tasks. |
| cph_task_getA | Get full details of a single task including subtasks and open blockers. |
| cph_task_updateA | Update task fields. For starting/completing, prefer task_start and task_complete. |
| cph_task_cancelA | Cancel a task that is no longer needed. State machine: pending | in_progress | blocked → cancelled Args:
|
| cph_blocker_createA | Log a blocker that is preventing progress. CALL THIS IMMEDIATELY when blocked — before asking the user, before trying workarounds. The timestamp of when you were blocked is important data. Don't record it retroactively. Blocker types: dependency → waiting on another task, PR, or service to be ready waiting_on_human → needs human decision, approval, or response technical → technical problem with no clear solution yet external → blocked by something outside the team unclear_requirements → requirements are ambiguous other → doesn't fit above Auto-behavior: if task_id is provided, the task status is automatically set to 'blocked'. |
| cph_blocker_resolveA | Mark a blocker as resolved. Always provide a resolution note — this is training data for predicting future blockers and is the most valuable signal in the system after actual_minutes on tasks. Auto-behavior: if blocker has a task_id and unblock_task=true, task is set back to in_progress. |
| cph_blocker_escalateA | Mark a blocker as escalated — open but needs urgent attention. Use when a blocker has been open too long and needs to be surfaced to stakeholders. |
| cph_blocker_listA | List blockers by workflow and/or status. Call this when user asks about blockers. session_init already surfaces open blockers — don't duplicate. |
| cph_decision_recordA | Record an architectural, design, or process decision. This is the institutional memory of the project. Future sessions — and future engineers — will use this to understand why things are built the way they are. Record a decision when:
The post-commit hook will automatically attach the commit hash to recent decisions — you don't need to provide it manually. Args:
|
| cph_decision_searchA | Search decisions by keyword across title, decision, context, and rationale. CALL THIS before making any significant architectural choice to check if it was already decided. This is the primary anti-repetition tool. Returns summary view (id + title + decision only) to preserve context budget. Use cph_decision_get for full details on a specific result. |
| cph_decision_getA | Get full details of a single decision including rationale and alternatives. Use after cph_decision_search returns relevant IDs. |
| cph_decision_listA | List decisions for a workflow. Returns summary view only. Call this when user explicitly asks to see decisions. session_init surfaces relevant ones automatically. |
| cph_decision_attach_commitA | Internal: Called by the post-commit git hook to link recent decisions to a commit. Do NOT call this manually. The hook calls it automatically after every commit. Attaches commit_hash and diff_stat to decisions recorded in the last 30 minutes that don't already have a commit attached. |
| cph_thinking_summaryA | Get inferred thinking-time breakdown for recent turns. Claude Code's extended thinking is not directly observable. This tool infers thinking time from the gaps between tool calls:
Returns per-turn breakdowns, aggregate stats, tool baselines, and a caveat explaining inference limitations. Args:
|
| cph_who_is_workingA | Show active agents/developers and what they're working on. Returns annotated list of active sessions with:
Use this to understand team state before starting work. |
| cph_activity_streamA | Get recent activity events for team awareness. Shows what's been happening: tasks started/completed, decisions recorded, blockers created/resolved, sessions started. Filter by workflow, time range, and event types. |
| cph_workflow_reconstructA | Reconstruct the full history of a workflow for handoff or review. Aggregates tasks, decisions, blockers, sessions, and activity into a comprehensive reconstruction object. Identifies dead ends (cancelled tasks and resolved blockers) to show the journey, not just the destination. Use this when:
|
| cph_codebase_indexA | Register or update file area ownership for a workflow. Use this during plan mode to declare which parts of the codebase are relevant to the current workflow, what their responsibilities are, and their dependencies. Each area is a path pattern (e.g. "src/auth/**") with an optional responsibility description and dependency list. Upserts by workflow_id + path_pattern — safe to call multiple times. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MatthewDegtyar/claude-project-history'
If you have feedback or need assistance with the MCP directory API, please join our Discord server