Skip to content

Commit f5e0a62

Browse files
devopamclaude
andauthored
docs: Docker MCP Registry PR submitted (roadmap 21.2) (#311)
Fork + PR sent: docker/mcp-registry#4689. Updates: - server.yaml: about.title changed MCPg -> PostgreSQL. Their validator (go run ./cmd/validate) rejects any title containing the literal substring "MCP" (case-sensitive) -- not documented anywhere, only caught by actually running their validator. Description still says "MCPg" freely; only the title field is checked. - server.yaml: source.commit re-pinned to main's tip at submission time (0ed672b, post-#309/#310) rather than the commit drafted alongside 21.1's tools.json generator. - feature-shortlist.md / CHANGELOG.md: mark 21.1/21.2 shipped, link the open PR, note 21.3 (254-tool surface size) as the next active work item. Advances roadmap row: 21.2 Claude-Session: https://claude.ai/code/session_01PdN8kDW5Yc8rFb6scthKef Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
1 parent 0ed672b commit f5e0a62

3 files changed

Lines changed: 21 additions & 12 deletions

File tree

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,15 @@ adheres to [Semantic Versioning](https://semver.org/).
5858
Confirmed via a local build that `run.env: MCPG_TRANSPORT: stdio`
5959
cleanly overrides the image's baked-in `streamable-http` default with a
6060
real `initialize` + `tools/list` smoke test — no `Dockerfile` change
61-
needed. Submission (fork + PR into `docker/mcp-registry`) not yet sent.
61+
needed.
62+
- **Docker MCP Registry submission sent** (roadmap 21.2):
63+
[docker/mcp-registry#4689](https://github.com/docker/mcp-registry/pull/4689).
64+
Their own validator caught a real, docs-invisible issue: `about.title`
65+
can't contain the literal substring `MCP` (case-sensitive), so
66+
`about.title: MCPg` failed — retitled to `PostgreSQL` for that field only
67+
(the description still says "MCPg" freely). `source.commit` re-pinned to
68+
`main`'s tip at submission time rather than the stale commit drafted
69+
alongside 21.1.
6270

6371
### Fixed
6472

docs/feature-shortlist.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -334,9 +334,9 @@ no `Dockerfile` change needed).
334334

335335
| # | Item | Effort | Value | Notes |
336336
|---|---|---|---|---|
337-
| 21.1 | **In progress.** **`tools.json` bypass generator.** MCPg requires a live, reachable `MCPG_DATABASE_URL` to start (`load_settings` raises otherwise), so Docker's build sandbox can't run the container to auto-discover tools the way it does for DB-less servers. `packaging/docker-mcp-registry/generate_tools_json.py` derives the registry's bypass-file shape (`{name, description, arguments: [{name, type, desc}]}` — confirmed against real registry entries, NOT MCP-native `inputSchema`) from `tests/contract/tool_surface.snapshot.json`, guarded by `tests/contract/test_docker_mcp_registry_tools_json.py` so it can't drift as the tool surface grows. | S | Medium | Generated beats hand-maintained, per this file's own rule — 254 entries, no hand-authoring. |
338-
| 21.2 | **Open.** **Submit the fork + PR.** `packaging/docker-mcp-registry/server.yaml` drafted (category `database`, `MCPG_DATABASE_URL` as the sole required secret, `MCPG_ACCESS_MODE` exposed read-only-default). Needs: `task validate` / `task build --tools mcpg` run against a real fork of `docker/mcp-registry` (requires the `Task` CLI, not yet installed anywhere this was drafted), then a PR per their `add_mcp_server.md` flow. | S-M | Medium-High | Outward-facing (third-party public repo) — needs explicit go-ahead before the fork/PR, not just the eligibility research. |
339-
| 21.3 | **Open, known gap.** **254-tool surface size.** Unusually large for a single catalog entry relative to other registry servers; MCPg has no bucket/tool-filter env var today to ship a slimmer default surface (checked `config.py` — doesn't exist). Address proactively in the PR description rather than waiting for reviewer pushback; a follow-up `MCPG_ENABLED_BUCKETS`-style filter is a candidate if Docker's reviewers push back in practice. ||| Surfaced during 21.1; not blocking submission, just flagged. |
337+
| 21.1 | **Shipped (#310).** **`tools.json` bypass generator.** MCPg requires a live, reachable `MCPG_DATABASE_URL` to start (`load_settings` raises otherwise), so Docker's build sandbox can't run the container to auto-discover tools the way it does for DB-less servers. `packaging/docker-mcp-registry/generate_tools_json.py` derives the registry's bypass-file shape (`{name, description, arguments: [{name, type, desc}]}` — confirmed against real registry entries, NOT MCP-native `inputSchema`) from `tests/contract/tool_surface.snapshot.json`, guarded by `tests/contract/test_docker_mcp_registry_tools_json.py` so it can't drift as the tool surface grows. | S | Medium | Generated beats hand-maintained, per this file's own rule — 254 entries, no hand-authoring. |
338+
| 21.2 | ✅ **Shipped — PR open.** **Fork + PR submitted:** [docker/mcp-registry#4689](https://github.com/docker/mcp-registry/pull/4689). Forked `docker/mcp-registry`, ran `go run ./cmd/validate --name mcpg` and `go run ./cmd/build --tools mcpg` against the real toolchain (Task CLI not needed — its tasks just wrap `go run ./cmd/*`). Validation caught one real issue not visible from docs alone: their linter rejects any `about.title` containing the literal substring `MCP` (case-sensitive) — `about.title: MCPg` failed as `strings.Contains(title, "MCP")`. Retitled to `PostgreSQL` (the description still says "MCPg" freely; only `title` is checked) and reformatted via `npx prettier --write` per the validator's own formatting gate. `source.commit` re-pinned to `main`'s tip at submission time (`0ed672b`, post-#309/#310) rather than the stale commit drafted in 21.1. Build confirmed "254 tools found" against the checked-in `tools.json`. Test-credential sharing (their Google Form) skipped — flagged as unnecessary in the PR body since `MCPG_DATABASE_URL` is a standard Postgres DSN, not a third-party API key. | S-M | Medium-High | Outward-facing PR — third-party review process, timeline not controlled by this repo. |
339+
| 21.3 | **Open, known gap.** **254-tool surface size.** Unusually large for a single catalog entry relative to other registry servers; MCPg has no bucket/tool-filter env var today to ship a slimmer default surface (checked `config.py` — doesn't exist). Flagged proactively in the PR body (docker/mcp-registry#4689) rather than waiting for reviewer pushback. Now the active work item: a `MCPG_ENABLED_BUCKETS`-style filter to shrink the default-exposed tool surface. ||| Surfaced during 21.1; not blocking submission, just flagged — now being addressed directly. |
340340

341341
---
342342

packaging/docker-mcp-registry/server.yaml

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,19 @@ meta:
1010
- sql
1111
- devops
1212
about:
13-
title: MCPg
13+
title: PostgreSQL
1414
description: >-
15-
A production-grade PostgreSQL MCP server — 254 tools spanning schema
16-
introspection, query execution and EXPLAIN analysis, index/vacuum/config
17-
advisors, vector (pgvector) and full-text (pg_search) search, audited
18-
DDL/DML, migrations, and multi-database support across PostgreSQL 14-19,
19-
TimescaleDB, and WarehousePG. Ships with a read-only default and three
20-
graduated access tiers (read-only / restricted / unrestricted).
15+
MCPg — a production-grade PostgreSQL server with 254 tools spanning
16+
schema introspection, query execution and EXPLAIN analysis,
17+
index/vacuum/config advisors, vector (pgvector) and full-text
18+
(pg_search) search, audited DDL/DML, migrations, and multi-database
19+
support across PostgreSQL 14-19, TimescaleDB, and WarehousePG. Ships
20+
with a read-only default and three graduated access tiers (read-only /
21+
restricted / unrestricted).
2122
icon: https://avatars.githubusercontent.com/u/5661555?v=4
2223
source:
2324
project: https://github.com/devopam/MCPg
24-
commit: 3310154f5971d5c39606fb3f75925fa5748aded7
25+
commit: 0ed672bf4c938ecba288277b3a40fb5609b4fde5
2526
run:
2627
env:
2728
MCPG_TRANSPORT: stdio

0 commit comments

Comments
 (0)