Makefile Executor
STDIOA Model Context Protocol server that provides make functionality for LLMs.
A Model Context Protocol server that provides make functionality for LLMs.
A Model Context Protocol server that provides make functionality. This server enables LLMs to execute make targets from any Makefile in a safe, controlled way.
The server exposes make functionality through the Model Context Protocol, allowing LLMs like Claude to:
MCP Server Make works with any valid Makefile - you can use the included opinionated Makefile or your own custom build scripts.
Using uv
(recommended):
uv pip install mcp-server-make
Using pip:
pip install mcp-server-make
# Run with default Makefile in current directory uvx mcp-server-make # Run with specific Makefile and working directory uvx mcp-server-make --make-path /path/to/Makefile --working-dir /path/to/working/dir
To use with Claude Desktop, add to your Claude configuration (claude_desktop_config.json
):
{ "mcpServers": { "make": { "command": "uvx", "args": [ "mcp-server-make", "--make-path", "/absolute/path/to/Makefile", "--working-dir", "/absolute/path/to/working/dir" ] } } }
For detailed information about using MCP Server Make, please see our documentation:
This server enables powerful development workflows by giving LLMs direct access to make functionality:
Automated Assistance
Project Management
MCP Server Make does not automatically discover available targets in your Makefile. To effectively use it with Claude:
Start with make help
: Most well-designed Makefiles include a help target
Human: Please run make help to see what commands are available.
Tell Claude about your targets: Explicitly mention available targets and their purpose
Human: Our project has these make targets: test, lint, format, build, and clean.
Use standard conventions: Common targets that many Makefiles include:
make test
- Run testsmake lint
- Check code qualitymake format
- Format codemake build
- Build the projectmake clean
- Clean build artifactsThe repository includes an opinionated Makefile with additional utility targets - see the User Guide for details on these extended capabilities or for creating your own custom targets.
Note: Claude doesn't remember available targets between conversations. You'll need to introduce them at the start of each conversation.
Here's how Claude can help with development tasks:
Human: Can you run our test suite and format any code that needs it?
Claude: I'll help run the tests and format the code:
1. First, let's format the code:
[Calling make tool with args {"target": "format"}]
2 files reformatted, 3 files left unchanged
2. Now let's run the tests:
[Calling make tool with args {"target": "test"}]
Running tests...
4 passed, 0 failed
All formatting and tests completed successfully. The code is now properly formatted and all tests are passing.
The server exposes a single tool:
make
- Run a make target from the Makefile
target
(string, required): Target name to executeWe welcome contributions to improve mcp-server-make! Please see CONTRIBUTING.md for detailed instructions on setting up your development environment, using the project tools, and submitting changes.
MIT License - see LICENSE file for details