mcp_dependencies
A SKILL.md frontmatter block that declares every MCP server a workflow depends on. Enables Cromus to simulate token overhead, detect configuration drift, and enforce pre-execution governance before a single tool call is made.
Why declare MCP dependencies?
Cost simulation
Every MCP transport adds overhead tokens per call. Without a declaration, the simulator cannot account for this cost and your forecasts will be understated.
Drift detection
Tool schemas change. When schema_version is declared, check_mcp_drift compares it against the live server and flags breaking changes before they hit production.
Structural governance
Skills that call tools without declaring mcp_dependencies receive a Structural Gaps penalty in their Croms score — the same signal that flags missing budget declarations.
Field reference
| field | type | required | description |
|---|---|---|---|
server_name | string | Yes | Unique identifier for the MCP server (alphanumeric, hyphens, underscores) |
transport | enum | Yes | stdio | sse | streamable_http |
tools | string[] | Yes | List of tool names called by this skill (at least one) |
auth | enum | Yes | none | api_key | oauth |
fallback | enum | Yes | fail | degrade | skip — behavior when server is unavailable |
estimated_calls_per_run | integer | Yes | Expected number of tool calls per skill execution (drives overhead calculation) |
schema_version | string | No | Semver of the tool schema; enables drift detection via check_mcp_drift |
Transport overhead
Extra input tokens and latency added per MCP call by transport type. Cromus multiplies these by estimated_calls_per_run and adds to each simulation run's totals.
| transport | extra tokens / call | extra latency / call | notes |
|---|---|---|---|
stdio | +200 | +150 ms | Local process, lowest latency |
sse | +250 | +80 ms | HTTP streaming, near-real-time |
streamable_http | +300 | +120 ms | Standard HTTP, best compatibility |
Example SKILL.md
A GitHub Issue Manager skill declaring its MCP dependency with full field coverage, including schema_version for drift detection.
---
name: GitHub Issue Manager
version: 1.0.0
execution_target: Claude Managed Agents
estimates:
token_input: 3200
token_output: 1200
runs_per_month: 50
mcp_dependencies:
- server_name: github-mcp
transport: stdio
tools:
- create_issue
- list_pull_requests
- update_issue
schema_version: "1.0.0"
auth: oauth
fallback: fail
estimated_calls_per_run: 4
---Fallback semantics
failThe workflow terminates immediately if the MCP server is unreachable. Use for non-optional integrations where partial execution is worse than no execution.
degradeThe workflow continues but marks affected outputs as incomplete or estimated. Use for optional enrichment steps (analytics, logging, notifications).
skipThe workflow silently skips the MCP step and proceeds. Use only when the tool call is genuinely optional with no downstream dependency.
Check your MCP server
Paste your server manifest URL or JSON and get a scored readiness report across auth, tool quality, error contracts, rate limits, and directory compliance.