MCP Server Make
by wrale
# MCP Server Make
[](https://github.com/wrale/mcp-server-make/actions/workflows/ci.yml)
[](https://github.com/wrale/mcp-server-make/actions/workflows/release.yml)
[](https://badge.fury.io/py/mcp-server-make)
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.
<a href="https://glama.ai/mcp/servers/g8rwy0077w">
<img width="380" height="200" src="https://glama.ai/mcp/servers/g8rwy0077w/badge" alt="Server Make MCP server" />
</a>
## Overview
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
MCP Server Make works with any valid Makefile - you can use the included opinionated Makefile or your own custom build scripts.
## Quick Start
### Installation
Using `uv` (recommended):
```bash
uv pip install mcp-server-make
```
Using pip:
```bash
pip install mcp-server-make
```
### Basic Usage
```bash
# 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
```
### MCP Client Configuration
To use with Claude Desktop, add to your Claude configuration (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"make": {
"command": "uvx",
"args": [
"mcp-server-make",
"--make-path", "/absolute/path/to/Makefile",
"--working-dir", "/absolute/path/to/working/dir"
]
}
}
}
```
## Documentation
For detailed information about using MCP Server Make, please see our documentation:
- [User Guide](docs/user_guide.md) - Complete guide to installation, configuration, and usage
- [Custom Makefiles](docs/custom_makefiles.md) - Creating effective Makefiles for use with MCP Server Make
## Enhancing Development Workflows
This server enables powerful development workflows by giving LLMs direct access to make functionality:
### For Developers
1. **Automated Assistance**
- Let Claude run and interpret test results
- Get build system suggestions and improvements
- Automate repetitive development tasks
2. **Project Management**
- Let Claude handle dependency updates
- Automate release processes
- Maintain consistent code quality
### Working with Make Targets
MCP Server Make does not automatically discover available targets in your Makefile. To effectively use it with Claude:
1. **Start with `make help`**: Most well-designed Makefiles include a help target
```
Human: Please run make help to see what commands are available.
```
2. **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.
```
3. **Use standard conventions**: Common targets that many Makefiles include:
- `make test` - Run tests
- `make lint` - Check code quality
- `make format` - Format code
- `make build` - Build the project
- `make clean` - Clean build artifacts
The repository includes an opinionated Makefile with additional utility targets - see the [User Guide](docs/user_guide.md) 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.
## Example Integration
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.
```
## Available Tools
The server exposes a single tool:
- `make` - Run a make target from the Makefile
- `target` (string, required): Target name to execute
## Contributing
We welcome contributions to improve mcp-server-make! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for detailed instructions on setting up your development environment, using the project tools, and submitting changes.
## License
MIT License - see LICENSE file for details