Azure / Azure/data-api-builder
[Gap]: Still no MCP health checks despite MCP being enabled
- Lenguaje dominante
- C#
- Estrellas
- 1.5k
- Forks
- 370
- Merge medio
- 3 d 22 h
- PR fusionados (30 d)
- 9
Descripción
The health response includes `"mcp": true` in the `configuration` section, but there are no MCP-specific health checks. Only REST and GraphQL entity checks appear.
## Expected
If MCP is enabled and entities are exposed via MCP, MCP endpoint health checks should appear in the `checks` array with tags like `["mcp", "list_tools"]`, similar to how REST and GraphQL each get their own checks.
| Check | Tags | What it validates | Notes |
|-------|------|-------------------|-------|
| **list_tools** | `["mcp", "list_tools"]` | Server up, tools registered, expected count based on what is enabled in the config | Baseline. If this fails, skip the rest. |
| **describe_entities** | `["mcp", "describe_entities"]` | Schema/metadata generation, pagination based on what is enabled in the config | Catches schema generation bugs. Entity count in `data` field is a good signal. |
| **read_entity** (per entity) | `["mcp", "read_entity"]` | Full data retrieval path, top 1 | Mirrors REST/GraphQL per-entity checks. Validates JSON-RPC param binding + result serialization. |
| **aggregate_entity** (per entity) | `["mcp", "aggregate_entity"]` | Aggregation code path, COUNT(*) | Genuinely different query generation than read. Cheap query, high signal. |
** MCP checks would ideally reuse one SSE connection across all MCP checks within a single health evaluation. That keeps the overhead comparable to the REST/GraphQL checks combined rather than multiplied by connection setup cost.
## Actual
The `checks` array only contains:
- Data source checks (`tags: ["data-source"]`)
- REST entity checks (`tags: ["rest", "endpoint"]`)
- GraphQL entity checks (`tags: ["graphql", "endpoint"]`)
No MCP checks exist. Combined with the missing MCP metrics from the OTEL report, MCP remains the least observable API surface.
Guía de contribución
Línea de trabajo
Localiza la respuesta de health y la generación existente de comprobaciones de entidades de REST y GraphQL; después, sigue cómo se leen las entidades habilitadas desde la configuración. Añade comprobaciones MCP para list_tools, describe_entities, read_entity y aggregate_entity, incluidos los tags indicados y el comportamiento baseline, considerando también la reutilización de una única conexión SSE. Se considera terminado cuando las comprobaciones aparecen únicamente cuando las entidades MCP están habilitadas y validan las rutas indicadas.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- csharp
- Área
- api, backend, observability
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 55/100