MCP server exposing the Fabric CI/CD GitHub Actions workflow as agent-callable tools: trigger a deploy, check a run's status, list recent runs, and summarize deploy history/trends (success rate, avg duration, common failures).
Server has 4 tools with clear verb-noun naming (deploy_*, get_*, list_*). All tools have descriptions (194 - 250 chars, within baseline 34 - 392). Input schemas are present with type definitions and descriptions. However, output schemas are not documented, responses are inferred from code inspection. Error handling is minimal; tools return raw HTTP status codes without recovery guidance. Parameter descriptions lack format constraints (e.g., 'days' accepts 1 - 365 but this is not stated). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (WRITE vs READ_ONLY). Missing pagination guidance for list_recent_runs despite accepting a 'limit' parameter.
Trigger the Fabric CI/CD GitHub Actions workflow (dev -> target_env). Publishes the Git-synced Fabric items (Lakehouse, Warehouse, Notebook, SemanticModel) from the given ref to the target Fabric workspace via fabric-cicd, then runs the post-deploy notebook/DDL step. IMPORTANT: If the target GitHub Environment (e.g. "prod") has required reviewers configured, this call only QUEUES the run -- the deploy job will pause and wait for a human to approve it in GitHub before it executes. This tool cannot approve runs itself.
Summarize deploy history over a trailing window: success rate, average duration, most common failure points, and deploy frequency. Use this for questions like "how have deploys been going lately" or "what's our failure rate this month".
Get the status/conclusion of a specific deploy workflow run.
List recent deploy workflow runs, most recent first.
Output schemas not documented. Code inspection reveals responses are dicts with fields like 'queued', 'status_code', 'error', 'likely_run', but LLMs cannot plan downstream calls without knowing the structure.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). deploy_fabric_workspace is marked WRITE (destructive) but lacks destructiveHint annotation. get_run_status, list_recent_runs, get_deploy_trends are READ_ONLY but lack readOnlyHint. Agents cannot distinguish safe from risky tools without annotations.
Error handling returns raw HTTP status codes and response text (e.g., 'status_code': 204, 'error': resp.text) without recovery guidance. Example: 'Workflow dispatch failed (HTTP 403). Verify GITHUB_TOKEN has Actions:write scope on this repo.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Parameter 'days' in get_deploy_trends lacks format constraints. Description says 'default 30' but does not state min/max (e.g., 1 - 365). LLMs may pass 0, negative, or absurdly large values.
list_recent_runs accepts 'limit' (default 10, max 100) but description does not explain pagination behavior or whether a 'next_cursor' or 'total_count' is returned.