BRAMPP → MCP

AI & MCP

Let your assistant drive the stack

Flip one switch and BRAMPP becomes a Model Context Protocol server. Your assistant can create a domain, start the services it needs and read the logs — while you watch the window update live.

The idea

Not a wrapper around your shell

The obvious way to give an assistant access to a development environment is to hand it a terminal. It works, and it is the wrong shape: a shell has no notion of what you meant to allow, so every request is either fully trusted or blocked, and the assistant has to reverse-engineer your setup from config files before it can do anything useful.

BRAMPP exposes the managers the app itself uses. Each tool has a narrow job with validated arguments, and the app already knows where your domains live, which PHP version each one uses and which services are up. The assistant asks for an outcome — "create a Node domain called shop and start what it needs" — instead of assembling six commands and hoping.

Everything goes through the live app. There is no separate state file and no second source of truth. A change made through MCP appears in the BRAMPP window immediately, because it is the same code path as clicking the button.

Surface

23 tools, five areas

Each area has its own permission setting, so you decide how far the assistant reaches.

8Domain tools
4Service tools
5Database tools
2Log tools
AreaToolsWhat they do
Domains list_domains, create_domain, update_domain, set_domain_enabled, health_check, start_app, stop_app, app_status Create and edit domains across every platform, enable or disable them, run a health check, and control the supervised app server behind a domain.
Services service_status, start_service, stop_service, restart_service Apache, Nginx, PHP-FPM, MariaDB, PostgreSQL and Redis — with the same port-ownership checks the UI uses.
Databases db_list, db_create, db_query, db_export, db_import List and create databases, run a single SQL statement, dump to .sql and restore from one.
Logs read_log, read_domain_log Service logs and per-domain access and error logs, so the assistant can diagnose instead of guessing. read_log filters by level, text and time, and can read the daily file on disk rather than the live buffer.
Sharing list_shares, start_share, stop_share Opens a Cloudflare Quick Tunnel so a local site gets a temporary public address. Defaults to No access — unlike every other area, because these tools put the site on the open internet.
Permissions

What you disallow never appears

Each of the five areas is set independently to No access, Read, or Read + write.

Per-area: No access Read Read + write Disallowed tools never appear to the client

The filtering happens twice, on purpose. A tool you have not permitted is left out of the tools/list response, so the assistant never learns it exists and cannot decide to try it. And if a call arrives for it anyway, it is refused at the boundary. Hiding alone would be a UI convenience; refusing alone would leak the shape of your setup. Doing both is what makes it a boundary rather than a suggestion.

SQL is read-only until you say otherwise

db_query accepts SELECT, SHOW, DESCRIBE, EXPLAIN and WITH by default. Anything that modifies data requires an explicit allow_write — and even then, statements whose body hides a write behind a CTE, or that call functions reaching the filesystem (LOAD_FILE, pg_read_file, lo_import), are rejected outright. Dump and restore paths must be absolute, end in .sql, and contain no shell metacharacters.

Read the full tool reference in the MCP for local development guide, which goes into why scoped permissions matter more than tool count.

Setup

Turning it on

  1. Open Settings → MCP in BRAMPP and turn the server on. It binds to 127.0.0.1 only and is off until you do this.
  2. Set the four permissions to whatever you are comfortable with. Read-only across the board is a reasonable place to start.
  3. Connect your client. Claude Code takes a single CLI command; Claude Desktop and ChatGPT Codex have a one-click config button in the same panel.
  4. Enable "Launch BRAMPP at login" if you use this daily — the server only answers while the app is running, and this removes the "why is my assistant not seeing the tools" moment.

Endpoint: http://127.0.0.1:8765/mcp — JSON-RPC 2.0 over POST, loopback only, off by default.

Claude Codeone CLI command
Claude Desktopone-click config
ChatGPT Codexone-click config
GuideMCP for local development → AlsoAll features →