A connection that failed before PostgreSQL answered was reported as "connection failed (Error)", which said nothing: a timeout from a firewall dropping the port looked like any other fault. It now says which it was - the host does not resolve, the connection was refused, timed out, was closed before an answer, or the TLS handshake failed - in words that point at where to look, still without the address or the credentials. The internal mode's own connection, as the catalog's user, says the same. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| browser-mcp | ||
| coding-agent-mcp | ||
| dev-server-mcp | ||
| minio-mcp | ||
| postgres-mcp | ||
| .gitignore | ||
| README.md | ||
| publish-images.sh | ||
README.md
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.