Skip to main content

MCP Server for GNU Make

Project description

mcp-server-make

CI Release PyPI version

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

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": "uvx",
      "args": [
        "mcp-server-make",
        "--makefile-dir", "/path/to/project"
      ]
    }
  }
}
  • --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/wrale/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

MCP Server for GNU Make 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.5 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.7

  • Update README.

0.1.6

  • Fixed an issue with pyproject.toml

0.1.5

  • Version bump
  • Added workflow status badges
  • Bug fixes and improvements

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.7.tar.gz (7.9 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.7-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcp_server_make-0.1.7.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for mcp_server_make-0.1.7.tar.gz
Algorithm Hash digest
SHA256 04259dfb2fb3df76381e2dd6a5c339035815d66acfc4f5d07b52eb3870b2ad98
MD5 8b0cc78cd8d24d05f8b691a7da9fcba6
BLAKE2b-256 673d262a1de9304a59f7e48ebad67fdd2fe0da6e287e3ce365127e3ca08b84db

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_server_make-0.1.7.tar.gz:

Publisher: release.yml on wrale/mcp-server-make

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for mcp_server_make-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 c4194397e53d6ba82b84ed5fcd7100b0bfcf04eb9ec7fe48c632b30aecdf7358
MD5 7feb06e7ec637ad184433a8088802d07
BLAKE2b-256 fdab3f88a632440bd2a472c12c8aab77c30fb633547eb88135d26289f58ca2e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_server_make-0.1.7-py3-none-any.whl:

Publisher: release.yml on wrale/mcp-server-make

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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