The Claude Code MCP Server enables direct integration with LLMs via the Claude Code CLI, with streamlined permissions for powerful code and system interactions.
- Code Generation, Analysis & Refactoring: Generate, analyze, and refactor code
- File System Operations: Create, read, edit, move, copy, and delete files
- Version Control (Git): Manage repository operations like staging, committing, and pushing
- Terminal Commands: Execute commands directly
- Web Search & Summarization: Search and summarize web content
- Complex Multi-Step Workflows: Automate tasks like version bumps and releases
- Syntax Error Repair: Identify and fix errors in files
- GitHub Interactions: Create PRs, check CI status, and manage repositories
- File Editing: Edit files with free-text descriptions via the
claude_file_edit
tool - Custom Tools: Enable specific tools for tailored operations
Supports Linux systems with dedicated configuration paths for connecting to MCP clients
Provides integration with the macOS operating system through specific configuration paths for connecting to MCP clients
Offers integration with Node.js applications through the Claude Code tool and file editing capabilities
Enables editing and manipulation of TypeScript files through the Claude file edit tool
Claude Code MCP Server
An MCP (Model Context Protocol) server that allows running Claude Code in one-shot mode with permissions bypassed automatically.
Did you notice that Cursor sometimes struggles with complex, multi-step edits or operations? This server, with its powerful unified claude_code
tool, aims to make Claude a more direct and capable agent for your coding tasks.
Overview
This MCP server provides one tool that can be used by LLMs to interact with Claude Code. When integrated with Claude Desktop or other MCP clients, it allows LLMs to:
- Run Claude Code with all permissions bypassed (using
--dangerously-skip-permissions
) - Execute Claude Code with any prompt without permission interruptions
- Access file editing capabilities directly
- Enable specific tools by default
Benefits
- Claude/Windsurf often have trouble editing files. Claude Code is better and faster at it.
- Multiple commands can be queued instead of direct execution. This saves context space so more important stuff is retained longer, fewer compacts happen.
- File ops, git, or other operations don't need costy models. Claude Code is pretty cost effective if you sign up for Antropic Max. You can use Gemini or o3 in Max mode and save costs with offloading tasks to cheaper models.
- Claude has wider system access and can do things that Cursor/Windsurf can't do (or believe they can't), so whenever they are stuck just ask them "use claude code" and it will usually un-stuck them.
- Agents in Agents rules.
Prerequisites
- Node.js v20 or later (Use fnm or nvm to install)
- Claude CLI installed locally (run it and call /doctor) and
-dangerously-skip-permissions
accepted.
Configuration
Environment Variables
CLAUDE_CLI_NAME
: Override the Claude CLI binary name or provide an absolute path (default:claude
). This allows you to use a custom Claude CLI binary. This is useful for:- Using custom Claude CLI wrappers
- Testing with mocked binaries
- Running multiple Claude CLI versions side by side
Supported formats:
- Simple name:
CLAUDE_CLI_NAME=claude-custom
orCLAUDE_CLI_NAME=claude-v2
- Absolute path:
CLAUDE_CLI_NAME=/path/to/custom/claude
Relative paths (e.g.,
./claude
or../claude
) are not allowed and will throw an error.When set to a simple name, the server will look for the specified binary in:
- The system PATH (instead of the default
claude
command)
Note: The local user installation path (
~/.claude/local/claude
) will still be checked but only for the defaultclaude
binary.MCP_CLAUDE_DEBUG
: Enable debug logging (set totrue
for verbose output)
Installation & Usage
The recommended way to use this server is by installing it by using npx
.
To use a custom Claude CLI binary name, you can specify the environment variable:
Important First-Time Setup: Accepting Permissions
Before the MCP server can successfully use the claude_code
tool, you must first run the Claude CLI manually once with the --dangerously-skip-permissions
flag, login and accept the terms.
This is a one-time requirement by the Claude CLI.
Follow the prompts to accept. Once this is done, the MCP server will be able to use the flag non-interactively.
macOS might ask for all kind of folder permissions the first time the tool runs and the first run then fails. Subsequent runs will work.
Connecting to Your MCP Client
After setting up the server, you need to configure your MCP client (like Cursor or others that use mcp.json
or mcp_config.json
).
MCP Configuration File
The configuration is typically done in a JSON file. The name and location can vary depending on your client.
Cursor
Cursor uses mcp.json
.
- macOS:
~/.cursor/mcp.json
- Windows:
%APPDATA%\\Cursor\\mcp.json
- Linux:
~/.config/cursor/mcp.json
Windsurf
Windsurf users use mcp_config.json
- macOS:
~/.codeium/windsurf/mcp_config.json
- Windows:
%APPDATA%\\Codeium\\windsurf\\mcp_config.json
- Linux:
~/.config/.codeium/windsurf/mcp_config.json
(Note: In some mixed setups, if Cursor is also installed, these clients might fall back to using Cursor's ~/.cursor/mcp.json
path. Prioritize the Codeium-specific paths if using the Codeium extension.)
Create this file if it doesn't exist. Add or update the configuration for claude_code
:
Tools Provided
This server exposes one primary tool:
claude_code
Executes a prompt directly using the Claude Code CLI with --dangerously-skip-permissions
.
Arguments:
prompt
(string, required): The prompt to send to Claude Code.options
(object, optional):tools
(array of strings, optional): Specific Claude tools to enable (e.g.,Bash
,Read
,Write
). Common tools are enabled by default.
Example MCP Request:
Examples
Here are some visual examples of the server in action:
Fixing ESLint Setup
Here's an example of using the Claude Code MCP tool to interactively fix an ESLint setup by deleting old configuration files and creating a new one:
Listing Files Example
Here's an example of the Claude Code tool listing files in a directory:
Key Use Cases
This server, through its unified claude_code
tool, unlocks a wide range of powerful capabilities by giving your AI direct access to the Claude Code CLI. Here are some examples of what you can achieve:
- Code Generation, Analysis & Refactoring:
"Generate a Python script to parse CSV data and output JSON."
"Analyze my_script.py for potential bugs and suggest improvements."
- File System Operations (Create, Read, Edit, Manage):
- Creating Files:
"Your work folder is /Users/steipete/my_project\n\nCreate a new file named 'config.yml' in the 'app/settings' directory with the following content:\nport: 8080\ndatabase: main_db"
- Editing Files:
"Your work folder is /Users/steipete/my_project\n\nEdit file 'public/css/style.css': Add a new CSS rule at the end to make all 'h2' elements have a 'color: navy'."
- Moving/Copying/Deleting:
"Your work folder is /Users/steipete/my_project\n\nMove the file 'report.docx' from the 'drafts' folder to the 'final_reports' folder and rename it to 'Q1_Report_Final.docx'."
- Creating Files:
- Version Control (Git):
"Your work folder is /Users/steipete/my_project\n\n1. Stage the file 'src/main.java'.\n2. Commit the changes with the message 'feat: Implement user authentication'.\n3. Push the commit to the 'develop' branch on origin."
- Running Terminal Commands:
"Your work folder is /Users/steipete/my_project/frontend\n\nRun the command 'npm run build'."
"Open the URL https://developer.mozilla.org in my default web browser."
- Web Search & Summarization:
"Search the web for 'benefits of server-side rendering' and provide a concise summary."
- Complex Multi-Step Workflows:
- Automate version bumps, update changelogs, and tag releases:
"Your work folder is /Users/steipete/my_project\n\nFollow these steps: 1. Update the version in package.json to 2.5.0. 2. Add a new section to CHANGELOG.md for version 2.5.0 with the heading '### Added' and list 'New feature X'. 3. Stage package.json and CHANGELOG.md. 4. Commit with message 'release: version 2.5.0'. 5. Push the commit. 6. Create and push a git tag v2.5.0."
- Automate version bumps, update changelogs, and tag releases:
- Repairing Files with Syntax Errors:
"Your work folder is /path/to/project\n\nThe file 'src/utils/parser.js' has syntax errors after a recent complex edit that broke its structure. Please analyze it, identify the syntax errors, and correct the file to make it valid JavaScript again, ensuring the original logic is preserved as much as possible."
- Interacting with GitHub (e.g., Creating a Pull Request):
"Your work folder is /Users/steipete/my_project\n\nCreate a GitHub Pull Request in the repository 'owner/repo' from the 'feature-branch' to the 'main' branch. Title: 'feat: Implement new login flow'. Body: 'This PR adds a new and improved login experience for users.'"
- Interacting with GitHub (e.g., Checking PR CI Status):
"Your work folder is /Users/steipete/my_project\n\nCheck the status of CI checks for Pull Request #42 in the GitHub repository 'owner/repo'. Report if they have passed, failed, or are still running."
Correcting GitHub Actions Workflow
Complex Multi-Step Operations
This example illustrates claude_code
handling a more complex, multi-step task, such as preparing a release by creating a branch, updating multiple files (package.json
, CHANGELOG.md
), committing changes, and initiating a pull request, all within a single, coherent operation.
CRITICAL: Remember to provide Current Working Directory (CWD) context in your prompts for file system or git operations (e.g., "Your work folder is /path/to/project\n\n...your command..."
).
Troubleshooting
- "Command not found" (claude-code-mcp): If installed globally, ensure the npm global bin directory is in your system's PATH. If using
npx
, ensurenpx
itself is working. - "Command not found" (claude or ~/.claude/local/claude): Ensure the Claude CLI is installed correctly. Run
claude/doctor
or check its documentation. - Permissions Issues: Make sure you've run the "Important First-Time Setup" step.
- JSON Errors from Server: If
MCP_CLAUDE_DEBUG
istrue
, error messages or logs might interfere with MCP's JSON parsing. Set tofalse
for normal operation. - ESM/Import Errors: Ensure you are using Node.js v20 or later.
For Developers: Local Setup & Contribution
If you want to develop or contribute to this server, or run it from a cloned repository for testing, please see our Local Installation & Development Setup Guide.
Testing
The project includes comprehensive test suites:
For detailed testing documentation, see our E2E Testing Guide.
Configuration via Environment Variables
The server's behavior can be customized using these environment variables:
CLAUDE_CLI_PATH
: Absolute path to the Claude CLI executable.- Default: Checks
~/.claude/local/claude
, then falls back toclaude
(expecting it in PATH).
- Default: Checks
MCP_CLAUDE_DEBUG
: Set totrue
for verbose debug logging from this MCP server. Default:false
.
These can be set in your shell environment or within the env
block of your mcp.json
server configuration (though the env
block in mcp.json
examples was removed for simplicity, it's still a valid way to set them for the server process if needed).
Contributing
Contributions are welcome! Please refer to the Local Installation & Development Setup Guide for details on setting up your environment.
Submit issues and pull requests to the GitHub repository.
License
MIT
You must be authenticated.
local-only server
The server can only run on the client's local machine because it depends on local resources.
A server that allows LLMs to run Claude Code with all permissions bypassed automatically, enabling code execution and file editing without permission interruptions.
- Overview
- Benefits
- Prerequisites
- Configuration
- Installation & Usage
- Important First-Time Setup: Accepting Permissions
- Connecting to Your MCP Client
- Tools Provided
- Key Use Cases
- Troubleshooting
- Testing
- Configuration via Environment Variables
- Contributing
- License
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityAllows LLMs to execute Python code in a specified Conda environment, enabling access to necessary libraries and dependencies for efficient code execution.Last updated -1101JavaScriptMIT License
- -securityFlicense-qualityA secure server that allows LLM applications like Claude to execute whitelisted system commands with user confirmation and comprehensive security features.Last updated -Python
- AsecurityFlicenseAqualityProvides a secure, isolated JavaScript execution environment with configurable time and memory limits for safely running code from Claude.Last updated -15JavaScript
Fused MCP Agentsofficial
-securityAlicense-qualityA Python-based MCP server that allows Claude and other LLMs to execute arbitrary Python code directly through your desktop Claude app, enabling data scientists to connect LLMs to APIs and executable code.Last updated -23MIT License