A FastAPI application for managing and discovering MCP servers and agent services. Provides service registration, search, and AI-powered service suggestions.
This server has critical gaps in tool definition quality. Most tools lack parameter descriptions entirely (e.g., connect_to_mcp_server accepts a 'url' object with no description of its structure). Descriptions are present but generic and under-optimized for LLM selection. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Parameter schemas are incomplete, many lack type information or constraints. Error handling is minimal; no recovery guidance. The server exposes internal complexity (ServiceURL objects, TinyDB queries) rather than abstracting to chat-friendly interfaces.
Add a new service to the registry
Connect to an MCP server and retrieve its tools and server information
Delete a service from the registry
Get all services from the registry
Get a service by its slug
Receives a prompt to suggest an mcp server or agent to use
Health check endpoint to verify server status
connect_to_mcp_server has no parameter descriptions. The 'url' parameter is documented as 'ServiceURL object' but ServiceURL structure is never explained in the parameter description. LLMs cannot infer what fields to provide.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. delete_service is marked DESTRUCTIVE but has no annotation to warn the LLM. add_service is WRITE but unmarked.
Descriptions are generic and under 50 chars for most tools (health_check: 44 chars, get_all_services: 35 chars). Rubric baseline is 194 chars average. Too short to guide LLM selection.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | <=2025-11-25 | v2 |
List all services in the registry
Search for services in the registry
Suggest services for a given client prompt
No error recovery guidance. If get_service fails with 'Service not found', the LLM has no hint to call search_services or list_services. Error responses are bare exceptions.
Parameter schemas lack constraints. search_services accepts 'query' as free-form string with no length limits, regex patterns, or examples. add_service accepts 'url' with no format validation hint.