Skip to content

pandysp/claude-code-mcp

Repository files navigation

Claude Code MCP Server

npm CI

MCP server that runs Claude Code as a tool -- with session continuity.

Provides two tools via the Model Context Protocol:

  • claude_code -- Run Claude Code in one-shot mode with any prompt
  • claude_code_reply -- Continue a previous conversation by thread ID

Both tools parse structured JSON output from the CLI, returning session_id for threading and is_error for error detection. A 30-minute execution timeout prevents runaway processes.

Quick Start

npx @pandysp/claude-code-mcp@latest

Requires Node.js 20+ and the Claude CLI installed locally.

First-time setup

Accept the CLI permissions once before the MCP server can use them:

npm install -g @anthropic-ai/claude-code
claude --dangerously-skip-permissions

Configuration

Add to your MCP client config:

Claude Desktop / Cursor

{
  "mcpServers": {
    "claude-code-mcp": {
      "command": "npx",
      "args": ["-y", "@pandysp/claude-code-mcp@latest"]
    }
  }
}

Windsurf

{
  "mcpServers": {
    "claude-code-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@pandysp/claude-code-mcp@latest"]
    }
  }
}

OpenClaw (Docker)

When running inside a Docker container (e.g., as an OpenClaw MCP adapter server), use the container's node binary directly instead of npx:

{
  "command": "node",
  "args": ["/path/to/dist/server.js"]
}

Tools Reference

claude_code

Run Claude Code with a one-shot prompt.

Parameter Type Required Description
prompt string yes The prompt to send to Claude Code
workFolder string no Absolute path to the working directory

Returns the CLI result text. If the CLI outputs JSON with a session_id, the response includes structuredContent.threadId for use with claude_code_reply.

claude_code_reply

Continue a previous Claude Code conversation.

Parameter Type Required Description
threadId string yes Session ID from a previous call
prompt string yes Follow-up prompt
workFolder string no Should match the original call's working directory

Uses --resume <threadId> under the hood to maintain conversation context.

Environment Variables

Variable Default Description
CLAUDE_CLI_NAME claude Override the CLI binary name or absolute path
MCP_CLAUDE_DEBUG false Enable verbose debug logging to stderr

CLAUDE_CLI_NAME supports simple names (looked up in PATH) or absolute paths. Relative paths are rejected.

Development

npm install
npm run build
npm run test:unit    # 100 unit tests, fully mocked
npm run dev          # dev mode with tsx

Attribution

Originally forked from @steipete/claude-code-mcp.

License

MIT

About

MCP server that runs Claude Code as a tool with session continuity

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors