generated: '2026-08-17' method: derived source: mcp/kardinal-mcp.yml + openapi/kardinal-aro-openapi-original.yml note: 'Kardinal ships an MCP server and an OpenAPI, but they do not describe the same surface. The MCP server is a documentation-search server generated by the Mintlify docs platform; it exposes zero of the ARO API''s 40 REST operations as callable tools. Every row below is therefore a divergence, and that divergence IS the finding: an agent can use MCP to learn Kardinal, but must fall back to raw REST to actually optimize a route.' surfaces: openapi: file: openapi/kardinal-aro-openapi-original.yml url: https://developers.kardinal.ai/openapi.yaml operations: 40 gated: false note: Spec is public; the API itself requires provisioned credentials. mcp: url: https://developers.kardinal.ai/mcp tools: 3 gated: false note: tools/list answered unauthenticated; inputSchemas captured verbatim. graphql: null crosswalk: [] mcp_only: - tool: search_kardinal_api reason: Documentation search over the Mintlify docs corpus. No backing REST operation — Kardinal publishes no search endpoint. category: documentation - tool: query_docs_filesystem_kardinal_api reason: Read-only virtual filesystem over the docs pages and OpenAPI spec. Server-side docs-platform capability with no REST equivalent. category: documentation - tool: submit_feedback reason: Files a documentation defect with the docs team. Not part of the ARO product API. category: feedback rest_only: - capability: Authenticate operation_count: 17 operations: - disableMFAConfig - getActorMFAConfig - getLoginMethods - getPublicKey - postLogin - postLoginOTP - postLoginWithAzureSSO - postLoginWithGoogleSSO - postRequestPasswordToken - putMFAConfigPreferredType - regenerateMFABackupCodes - requestMFAConfigUpdate - requestNewLoginOTPCode - requestNewMFAOTPCode - resetPassword - validateMFAConfigUpdate - validatePasswordToken reason: No MCP tool exposes this operation. The MCP server is documentation-scope only. - capability: Management operation_count: 5 operations: - fetchLastNPlanStates - fetchLastPlanState - getPlanStatus - postLoginRefresh - putPlanRunning reason: No MCP tool exposes this operation. The MCP server is documentation-scope only. - capability: Order operation_count: 3 operations: - deletePlanOrder - getPlanOrder - putPlanOrder reason: No MCP tool exposes this operation. The MCP server is documentation-scope only. - capability: Plan operation_count: 8 operations: - checkPlanManualMode - deletePlan - getPlan - getPlanSolution - getPlanSolutionObjectives - getPlans - putPlan - putPlanMode reason: No MCP tool exposes this operation. The MCP server is documentation-scope only. - capability: Resource operation_count: 6 operations: - deletePlanResource - getPlanResource - getPlanResourceState - putForbidResourceStop - putPlanResource - putPlanResourceState reason: No MCP tool exposes this operation. The MCP server is documentation-scope only. - capability: SimplePlan operation_count: 1 operations: - postSimplePlan reason: No MCP tool exposes this operation. The MCP server is documentation-scope only. coverage: mcp_tools_total: 3 mcp_tools_bound_to_rest: 0 mcp_only_tools: 3 rest_operations_total: 40 rest_operations_with_a_tool: 0 binding_rate: 0% interpretation: Zero overlap. Kardinal has an agent-facing DISCOVERY surface (MCP docs search, llms.txt, an agent card and a published Agent Skill) but no agent-facing EXECUTION surface — no MCP tool can create a plan or read a solution. Closing this gap would mean wrapping putPlan / getPlanSolution / getPlanStatus as MCP tools, which the OpenAPI already fully specifies.