Labsco
MCP SERVER

Make

by wrale

Let an assistant run make targets from any Makefile, with output captured and the working directory pinned at launch.

Build Systems & CI/CD
Summary
One tool, and your Makefile is the API.

The scope is exactly right for what it is: rather than a broad shell tool, the assistant can run only the targets you already decided are safe to run. The one rough edge is stated plainly in the README — there is no target discovery, so start each session by having it run `make help` or by naming the targets yourself.

What it is

A deliberately minimal MCP server: one tool that runs a make target and returns what it printed. Because your Makefile already encodes how to test, lint, format and build the project, this gives an assistant those capabilities without inventing shell commands. The Makefile path and working directory are fixed when the server starts, not chosen per call.

What you get
  • A named make target executed with its output captured and returned — `make`, taking a required `target` string
  • Any valid Makefile, yours or the opinionated one the repository includes
  • The working directory respected, so relative paths inside your targets behave as they do in your terminal
  • Errors surfaced rather than swallowed, which is what lets the assistant read a failing test run and react to it
Requirements

No account and no key. Install with `uv pip install mcp-server-make` or pip, then run `uvx mcp-server-make --make-path /absolute/path/to/Makefile --working-dir /absolute/path/to/working/dir`. One behaviour to plan around: the server does not discover the targets in your Makefile. Ask it to run `make help` first, or tell the assistant which targets exist — and expect to do that again in each new conversation, since it does not carry over.

Setup effort

One command — uv pip install mcp-server-make