A Model Context Protocol server that provides make functionality. This server enables LLMs to execute make targets from a Makefile in a safe, controlled way.
The server exposes make functionality through the Model Context Protocol, allowing LLMs like Claude to:
- Run make targets safely with output capture
- Understand and navigate build processes
- Help with development tasks
- Handle errors appropriately
- Respect working directory context
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"
]
}
}
}
This server enables powerful development workflows by giving LLMs direct access to make functionality:
-
Automated Assistance
- Let Claude run and interpret test results
- Get build system suggestions and improvements
- Automate repetitive development tasks
- Get immediate feedback on changes
-
Project Management
- Let Claude handle dependency updates
- Automate release processes
- Maintain consistent code quality
- Track project status
-
Self-Validation Capabilities
- Run tests to verify changes:
make test
- Check code quality:
make lint
- Format code:
make format
- Full validation:
make check
- Run tests to verify changes:
-
Project Understanding
- View project structure:
make x
- Check recent changes:
make z
- Full context snapshot:
make r
- View project structure:
-
Independent Development
- Manage complete development cycles
- Self-contained testing and validation
- Build and prepare releases
- Generate informed commit messages
The server exposes a single tool:
make
- Run a make target from the Makefiletarget
(string, required): Target name to execute
The server handles common errors gracefully:
- Missing Makefile
- Invalid working directory
- Failed make commands
- Invalid targets
All errors are returned with descriptive messages through the MCP protocol.
- If
--working-dir
is specified, changes to that directory before executing make - If omitted, uses the directory containing the Makefile
- Always restores original working directory after execution
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.
Common issues:
- "Makefile not found": Verify the --make-path points to a valid Makefile
- "Working directory error": Ensure --working-dir exists and is accessible
- "Tool execution failed": Check make target exists and command succeeds
- "Permission denied": Verify file and directory permissions
We welcome contributions to improve mcp-server-make! Here's how:
- Fork the repository
- Create your feature branch
- Make your changes
- Run full validation:
make check
- Submit a pull request
MIT License - see LICENSE file for details