A Model Context Protocol server providing access to make functionality
Project description
MCP Server Make
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.
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
Installation
Using uv (recommended):
uv pip install mcp-server-make
Using pip:
pip install mcp-server-make
Configuration
Basic Usage
# 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):
{
"mcpServers": {
"make": {
"command": "uvx",
"args": [
"mcp-server-make",
"--make-path", "/absolute/path/to/Makefile",
"--working-dir", "/absolute/path/to/working/dir"
]
}
}
}
Enhancing Development Workflows
This server enables powerful development workflows by giving LLMs direct access to make functionality:
For Developers
-
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
For Claude
-
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
Available Tools
The server exposes a single tool:
make- Run a make target from the Makefiletarget(string, required): Target name to execute
Error Handling
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.
Working Directory Behavior
- 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
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.
Troubleshooting
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
Contributing
We 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.
License
MIT License - see LICENSE file for details
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_server_make-0.3.0.tar.gz.
File metadata
- Download URL: mcp_server_make-0.3.0.tar.gz
- Upload date:
- Size: 35.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f50cd21c28b6000ba1cd35b44d67cbed2bc0f664a6a97ad08079aede4b5d01d3
|
|
| MD5 |
41486667ba7a8600d5b33c790c3d69f0
|
|
| BLAKE2b-256 |
86deb21b76a8855ad133b115259723ef6175c902bbcc8bd04048f9cbaaec12ed
|
Provenance
The following attestation bundles were made for mcp_server_make-0.3.0.tar.gz:
Publisher:
release.yml on wrale/mcp-server-make
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_server_make-0.3.0.tar.gz -
Subject digest:
f50cd21c28b6000ba1cd35b44d67cbed2bc0f664a6a97ad08079aede4b5d01d3 - Sigstore transparency entry: 182923251
- Sigstore integration time:
-
Permalink:
wrale/mcp-server-make@546e3939ad33f7b05febc8dc77bda7dc29424dba -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/wrale
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@546e3939ad33f7b05febc8dc77bda7dc29424dba -
Trigger Event:
release
-
Statement type:
File details
Details for the file mcp_server_make-0.3.0-py3-none-any.whl.
File metadata
- Download URL: mcp_server_make-0.3.0-py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
059474719a4b639410ea0e7354e80658efb3cb9907c0c3aeddeb9139205eff99
|
|
| MD5 |
7c4bbf49c55a300b2b60d8bb3a12faf7
|
|
| BLAKE2b-256 |
6a5710cbc0383437586599297bec733dd96475f47e93f0a0cf473f7b3369ad62
|
Provenance
The following attestation bundles were made for mcp_server_make-0.3.0-py3-none-any.whl:
Publisher:
release.yml on wrale/mcp-server-make
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_server_make-0.3.0-py3-none-any.whl -
Subject digest:
059474719a4b639410ea0e7354e80658efb3cb9907c0c3aeddeb9139205eff99 - Sigstore transparency entry: 182923253
- Sigstore integration time:
-
Permalink:
wrale/mcp-server-make@546e3939ad33f7b05febc8dc77bda7dc29424dba -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/wrale
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@546e3939ad33f7b05febc8dc77bda7dc29424dba -
Trigger Event:
release
-
Statement type: