Description
The McpApiController has significant functionality but lacks dedicated test coverage for critical paths including tool execution, version resolution, and error handling.
Location
src/Api/Controllers/McpApiController.php
- No corresponding test file found in
src/Api/Tests/Feature/
Missing Test Coverage
-
Tool execution flow (callTool method):
- Valid tool execution
- Invalid server/tool combinations
- Version resolution and deprecation warnings
- Input validation against JSON schema
- Error handling for failed executions
-
Version management:
- Version resolution (latest, specific, deprecated)
- Sunset version blocking (410 responses)
- Deprecation header injection
-
Security boundaries:
- API key scope enforcement on POST /tools/call
- Server scope restrictions
- Rate limiting behaviour
-
Error conditions:
- Invalid server ID
- Invalid tool name
- Schema validation failures
- Process execution failures
Impact
Without tests, regressions in the MCP API could go undetected, potentially breaking integrations for API consumers.
Recommended Tests
// src/Api/Tests/Feature/McpApiControllerTest.php
it('returns 404 for unknown server', function () {
$response = $this->withApiKey()->postJson('/api/v1/mcp/tools/call', [
'server' => 'nonexistent',
'tool' => 'some-tool',
]);
$response->assertNotFound();
});
it('returns 404 for unknown tool', function () {
// Mock registry to return a valid server
$response = $this->withApiKey()->postJson('/api/v1/mcp/tools/call', [
'server' => 'hosthub-agent',
'tool' => 'nonexistent-tool',
]);
$response->assertNotFound();
});
it('returns 422 for schema validation failures', function () {
// Test with missing required arguments
});
it('returns 410 for sunset versions', function () {
// Test version that has been sunset
});
it('includes deprecation headers for deprecated versions', function () {
// Test deprecation warning headers
});
Priority
Medium - Test coverage is essential for maintainability and catching regressions.
Description
The
McpApiControllerhas significant functionality but lacks dedicated test coverage for critical paths including tool execution, version resolution, and error handling.Location
src/Api/Controllers/McpApiController.phpsrc/Api/Tests/Feature/Missing Test Coverage
Tool execution flow (
callToolmethod):Version management:
Security boundaries:
Error conditions:
Impact
Without tests, regressions in the MCP API could go undetected, potentially breaking integrations for API consumers.
Recommended Tests
Priority
Medium - Test coverage is essential for maintainability and catching regressions.