MCP bundle registry server - provides bundle and MCP server registry API with security scanning and certification
mpak Registry Server provides 5 read-only tools for MCP server discovery and version management. All tools have clear action-verb names and substantive descriptions (90-180 chars). Input parameters are typed with JSON Schema and have descriptions. Output schemas are not explicitly documented in the source provided. Tool composition is clean, each performs one clear function. Parameter descriptions adequately explain constraints (e.g., 'Case-insensitive substring search', 'RFC 3339 timestamp'). No security red flags detected (all tools are read-only, no credentials in params). Main gaps: (1) output schemas not documented in the provided source, (2) no error handling guidance visible, (3) no examples of recovery paths when searches fail.
Get a specific MCP server by name (supports both npm-style scoped names and reverse-DNS form)
Get a specific version of an MCP server
List all versions of a specific MCP server
List MCP servers (each entry is a ServerDetail per the upstream MCP registry spec). Each item is the latest published version of a server; per-version listings live under /servers/{name}/versions.
Search MCP servers with advanced filtering options
Output schemas not documented in tool definitions. LLMs cannot plan downstream operations or extract required fields (e.g., does listServers return server IDs, manifest URLs, version info?) without explicit response schemas.
searchServers has a minimal description ('Search MCP servers with advanced filtering options') and only a 'query' parameter with generic description ('Search query string'). No indication of what fields are searched, filter syntax, or expected result format.
No error handling guidance visible. What happens if a server name is not found? Are pagination cursors validated? Do invalid RFC 3339 timestamps return a recovery hint? Agents need explicit error messages and recovery paths.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 61 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 44 | - | v1 |
listServers pagination via 'cursor' parameter lacks explanation of cursor format, initial/terminal values, and whether results are guaranteed ordered. LLMs cannot reliably implement pagination without these details.
Parameter 'name' in getServer accepts both npm-style (@scope/pkg) and reverse-DNS form, good for flexibility, but the description doesn't provide examples or explain which form is canonical.