Skip to main content

MCP Server for GNU Make

Project description

mcp-server-make

MCP Server for GNU Make - providing controlled and secure access to Make systems from LLMs.

Features

Resources

  • make://current/makefile - Access current Makefile content securely
  • make://targets - List available Make targets with documentation

Tools

  • list-targets: List available Make targets
    • Returns target names and documentation
    • Optional pattern filtering for searching targets
  • run-target: Execute Make targets safely
    • Required: target name
    • Optional: timeout (1-3600 seconds, default 300)

Quick Start

Prerequisites

  • Python 3.12+
  • GNU Make
  • pip or uv package manager

Installation

Using uv (recommended):

uvx mcp-server-make

Using pip:

pip install mcp-server-make

Claude Desktop Integration

Add to your Claude Desktop configuration:

MacOS:

nano ~/Library/Application\ Support/Claude/claude_desktop_config.json

Windows:

notepad %APPDATA%\Claude\claude_desktop_config.json

Add configuration:

{
  "mcpServers": {
    "mcp-server-make": {
      "command": "uv",
      "args": [
        "--directory", 
        "/path/to/server",
        "run",
        "mcp-server-make", 
        "--makefile-dir", "/path/to/project"
      ]
    }
  }
}
  • --directory: Path to the installed mcp-server-make package
  • --makefile-dir: Directory containing the Makefile to manage

Restart Claude Desktop to activate the Make server.

Usage Examples

List Available Targets

I see you have a Makefile. Can you list the available targets?

View Target Documentation

What does the 'build' target do?

Run Tests

Please run the test target with a 2 minute timeout.

View Makefile

Show me the current Makefile content.

Development

Local Development Setup

# Clone repository
git clone https://github.com/modelcontextprotocol/mcp-server-make
cd mcp-server-make

# Create virtual environment
uv venv
source .venv/bin/activate  # Unix/MacOS
.venv\Scripts\activate     # Windows

# Install dependencies
make dev-setup

# Run tests and checks
make check

Testing with MCP Inspector

Test the server using the MCP Inspector:

npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-server-make run mcp-server-make --makefile-dir /path/to/project

Security Features

Version 0.1.0 implements several security controls:

  • Path validation and directory boundary enforcement
  • Target name sanitization and command validation
  • Resource and timeout limits for command execution
  • Restricted environment access and cleanup
  • Error isolation and safe propagation

Behavior Details

Resource Access

  • Makefile content is read-only and validated
  • Target listing includes names and documentation
  • Full path validation prevents traversal attacks
  • Resources require proper make:// URIs

Tool Execution

  • Targets are sanitized and validated
  • Execution occurs in controlled environment
  • Timeouts prevent infinite execution
  • Clear error messages for failures
  • Resource cleanup after execution

Error Handling

  • Type-safe error propagation
  • Context-aware error messages
  • Clean error isolation
  • No error leakage

Known Limitations

Version 0.1.0 has the following scope limitations:

  • Read-only Makefile access
  • Single Makefile per working directory
  • No support for include directives
  • Basic target pattern matching only
  • No variable expansion in documentation

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new features
  4. Ensure all checks pass (make check)
  5. Submit a pull request

License

MIT - See LICENSE file for details.

Support

  • GitHub Issues: Bug reports and feature requests
  • GitHub Discussions: Questions and community help

Version History

0.1.0

  • Initial stable release
  • Basic Makefile access and target execution
  • Core security controls
  • Claude Desktop integration
  • Configurable Makefile directory

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_server_make-0.1.0.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_server_make-0.1.0-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file mcp_server_make-0.1.0.tar.gz.

File metadata

  • Download URL: mcp_server_make-0.1.0.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.4

File hashes

Hashes for mcp_server_make-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3dd0f72a2178c1fd91f51f00967595288ed6efa25d46072f4f581d2bd2d4ae68
MD5 ee9b8b9d19f4e47cdffeacab96cf5c51
BLAKE2b-256 2fb15aff86154c6859cea6eed6429a88eda761b18ec455921a5b317aec367e7f

See more details on using hashes here.

File details

Details for the file mcp_server_make-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_server_make-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8294d0782381c43d77782c757c187a4f6894b05925d5eb3a6f95ab468f24b471
MD5 8259c25e143247d31bac70a119605f46
BLAKE2b-256 ddb719dd24dffaeed55d3d5a75026eaec7e0f5127ea3caf93854c9dccbd18fc4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page