1.8 KiB
MCP servers
Four independent Streamable HTTP MCP servers, each in its own directory with its own README and tests:
coding-agent-mcp- scoped workspace editing.dev-server-mcp- authenticated facade for an allowlisted development-server worker (the same image runs the facade and the worker).browser-mcp- Playwright automation restricted to exact allowed origins.minio-mcp- bounded list/read/stat/write access to object storage.postgres-mcp- SQL access to PostgreSQL, with a database and a user of its own for each execution.
This repository holds their code. Deploying them is a
separate repository, mcps-docker-compose:
the compose files, the gateway’s Caddyfiles, the example
.env and the documentation of every environment variable.
It pulls the images published from here, so a server needs no sources
and no build toolchain.
Publishing the images
docker login -u luciolelii # once; use an access token with read and write permission
./publish-images.sh # all five
./publish-images.sh minio-mcp # or just someEach image is built for linux/amd64 and
linux/arm64 and pushed to
luciolelii/<name> tagged with this repository’s
commit hash and latest. The script refuses to run on a
dirty working tree, because the tag names a commit. Afterwards, deploy
by setting MCP_IMAGE_TAG in the deployment repository (or
the default in its mcp-stack.compose.yml) to the printed
hash.
The dev-server image fixes its user at 10001:10001 when
it is built, because the two volumes its worker mounts take their owner
from the image. See the deployment repository for what that means at run
time.
Tests: npm test inside each server’s directory.