LabscoMCP early access ↗
mparker3MCP SERVER

Makefile MCP Server

Turn every target in your Makefile into a callable tool, with the comment above each target as its description.

by mparker3 ↗Build Systems & CI/CDCommunity

LABSCO SUMMARY

Your Makefile is the permission boundary — there isn't another one.

Whatever a target does, a connected client can trigger, so the practical control is which Makefile you point it at rather than any setting in the server. The author is unusually candid about the limits: argument parsing is heuristic, sanitisation is best-effort, and it may not work with your Makefile at all. Read as a way to expose a curated set of project commands, it is a neat idea; read as a general runner, the caveats are the point.

What it is

A Node server that reads a project's Makefile at startup and registers one tool per target, named make_<target>. The comment directly above a target becomes that tool's description, so a Makefile you already document is a tool surface you already documented. It parses arguments on a best-effort basis from the target's commands and comments.

What you get

  • One tool per Make target, named make_<target> — a Makefile with build, test and deploy yields make_build, make_test and make_deploy
  • Comments above each target become the tool descriptions the client reads
  • A second launch argument points at the directory holding the Makefile; omit it and the current directory is used
  • Optional arguments, parsed heuristically from the target's documentation and commands
  • Some input sanitisation, which the author describes as best-effort rather than a guarantee

Requirements

Node.js 16 or higher, make on your PATH, and a Makefile in the project directory. Clone, npm install, npm run build, then point your client at node with build/index.js and the project path. Package makefilemcpserver, version 0.1.0. Everything in the Makefile becomes reachable by any connected client, and the commands run with your permissions — the README labels it alpha and local-use-only for exactly that reason.

Setup effort

Build from source — git clone https://github.com/mparker3/makefilemcp.git