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-makeUsing pip:
pip install mcp-server-make# Run with default Makefile in current directory
mcp-server-make
# Run with specific Makefile and working directory
mcp-server-make --make-path /path/to/Makefile --working-dir /path/to/working/dirTo use with Claude Desktop, add to your Claude configuration (claude_desktop_config.json):
{
"mcpServers": {
"make": {
"command": "mcp-server-make",
"args": ["--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-diris 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