@codewright/mcp
A Model Context Protocol server that exposes Codewright's public, read-only API v1 to any MCP-compatible agent host (Claude Desktop, Claude Code, etc). It never talks to the database directly and never executes any command locally.
Configuration
| Env var | Default | Purpose |
|---|---|---|
| CODEWRIGHT_API_BASE_URL | https://codewright.tools/api/v1 | Base URL of the Codewright public API v1. |
Running
Run it directly with npx:
npx @codewright/mcpOr add it to a Claude Desktop / Claude Code MCP configuration:
{
"mcpServers": {
"codewright": {
"command": "npx",
"args": ["-y", "@codewright/mcp"],
"env": {
"CODEWRIGHT_API_BASE_URL": "https://codewright.tools/api/v1"
}
}
}
}
Tools
search_recipes
{ query: string, limit?: number }
Full-text search over the recipe library (GET /api/v1/recipes/search). Returns recipe summaries (id, title, risk, platforms, tags, etc).
get_recipe
{ id: string }
The full recipe document (GET /api/v1/recipes/{id}), including parameters, per-platform steps, verification, and undo.
render_recipe
{ id: string, platform: "macos" | "linux" | "windows", params?: Record<string, string | number | boolean> }
Concrete, parameter-substituted commands for the given platform (POST /api/v1/recipes/{id}/render).
search_workflows
{ query: string, category?: string }
Full-text search over the workflow library (GET /api/v1/workflows/search). Returns workflow summaries.
get_workflow
{ id: string }
The full workflow document (GET /api/v1/workflows/{id}), including the entry node id and the entire nodes map.
Safety
render_recipe (and this package as a whole) never executes any command. It only relays the JSON returned by the Codewright API verbatim — including risk and requires_confirmation — so the calling agent/host is responsible for deciding whether and how to run the returned commands. There is no child_process/exec usage anywhere in this package.