Skip to main content
Glama
README.md
# Keshro MCP

The intelligent execution layer for coding agents, exposed as an MCP server for high-stakes engineering projects.

```bash
pip install keshro-mcp
```

## When to use this vs the CLI

**Use the [CLI](https://github.com/jlewitt1/keshro-cli)** (`pip install keshro`) for the full experience: interactive clarifying questions, migration detection, parallel execution in isolated worktrees, git checkpoints, cross-task context routing, and cost tracking.

**Use MCP** if your agent platform speaks MCP and you want direct tool-call access to Keshro plans and tasks.

The CLI gives you more control. MCP is more flexible for custom integrations.

## Setup

Set your API token:

```bash
export KESHRO_API_TOKEN="ksh_pat_..."
```

Get one from [keshro.com/account](https://keshro.com/account?tab=api).

### Connect to your agent

MCP works with any agent that supports the protocol — Claude Code, Cline, Continue, Zed, and others.

**Claude Code** — add to `~/.claude.json`:

```json
{
  "mcpServers": {
    "keshro": {
      "command": "keshro-mcp",
      "env": { "KESHRO_API_TOKEN": "ksh_pat_..." }
    }
  }
}
```

**Other MCP clients** — point your client at the `keshro-mcp` binary with `KESHRO_API_TOKEN` set in the environment. The server uses stdio transport.

## Available tools

| Tool | What it does |
|------|-------------|
| `preview_plan` | Run Keshro's pre-plan intake and clarifying-question preview |
| `generate_plan` | Generate a plan from a description using AI |
| `list_plans` | List all plans |
| `get_plan` | Get a plan with all tasks |
| `plan_status` | Progress summary (task counts, enrichment sources) |
| `next_task` | Get the next actionable task |
| `create_plan` | Create a plan manually |
| `start_task` | Mark a task as in progress |
| `complete_task` | Mark a task as done |
| `block_task` | Mark a task as blocked |
| `unblock_task` | Clear a blocker |
| `append_task_note` | Add a note to a task |
| `add_task_artifact` | Attach an artifact link |
| `record_decision` | Log a decision with context, choice, and reasoning |
| `edit_task` | Edit task title or description |
| `push_to_tracker` | Push tasks to Linear, Jira, or GitHub as issues |
| `sync_pull` | Pull status updates from connected issue tracker |
| `export_project` | Export project data |

## Current parity notes

MCP now supports the newer task controls exposed in the web product:

- explicit `depends_on` task dependencies
- `parallelizable` task scheduling hints
- per-task `executor` selection
- generic issue linking via `issue_id`, plus external issue fields
- pre-plan intake via `preview_plan`

It still remains thinner than the CLI for actual execution orchestration. The CLI owns parallel local worktrees, git checkpoints, richer execution transcripts, and the direct `keshro continue` runtime loop.

## License

MIT
# Releases

Publish the MCP package with one GitHub Actions run after you bump `pyproject.toml`:

```bash
gh workflow run "Publish MCP"
```

That workflow reads the package version from `pyproject.toml`, publishes the package to PyPI, then creates the matching `vX.Y.Z` GitHub release automatically.

TDQS

D1.8/5.0

Scored across 25 tools

Disambiguation4/5

Tools are mostly distinct, with clear verbs like add, block, complete, start, unblock. However, 'create_plan' and 'generate_plan' may cause confusion, as well as 'plan_status' vs 'get_plan', though context may differentiate them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., add_task, get_plan, list_projects). No mixing of conventions.

Tool Count3/5

25 tools is on the high side, exceeding the typical well-scoped range of 3-15. While the domain is broad, the count feels slightly heavy and may include some redundancy.

Completeness3/5

The tool set covers task, plan, and project lifecycles well, but lacks delete operations for any resource, which is a notable gap. Update is present only for plans, not projects.

Maintenance

ActivityInactive
ResponsivenessNo issues