| name | mcp-health |
| category | developer-experience |
| subcategory | cli |
| description | Validates MCP server connectivity and health. Checks stdio and http MCP servers for availability, reports connection status, and provides fallback guidance. Triggers on: mcp health, check mcp, validate mcp, mcp status, mcp connectivity. |
| targets | ["*"] |
| tags | ["dotnet","skill","mcp","monitoring"] |
| version | 0.0.1 |
| author | dotnet-agent-harness |
| license | MIT |
| claudecode | {"model":"inherit","allowed-tools":["Read","Grep","Glob","Bash"]} |
| opencode | {"mode":"primary","tools":{"bash":true,"edit":false,"write":false}} |
| copilot | {"tools":["read","search","execute"]} |
| codexcli | {"short-description":"Toolkit guidance for mcp-health"} |
| geminicli | {} |
| antigravity | {} |
MCP Health
Validates MCP server connectivity and health status for local stdio and remote http MCP servers.
Preloaded Skills
Always load before analysis:
- [skill:dotnet-advisor] -- routing and context
Usage
[mcp-health:check-all]
[mcp-health:check microsoftdocs-mcp]
[mcp-health:report]
MCP Server Types
stdio Servers (Local)
Launch local processes via stdio transport:
- serena -- Semantic code analysis (Language Server Protocol)
- context7 -- Library documentation lookup
http Servers (Remote)
Connect to remote APIs via HTTP:
- microsoftdocs-mcp -- Microsoft Learn documentation
- deepwiki -- DeepWiki MCP server
- github -- GitHub API operations
Health Check Methods
For stdio Servers
which uvx || which npx
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | \
uvx --from serena-mcp server 2>&1 | head -5
For http Servers
curl -s -o /dev/null -w "%{http_code}" https://learn.microsoft.com/api/mcp/health
curl -s -o /dev/null -w "%{http_code}" https://mcp.deepwiki.com/health
Validation Script
Add to session start hooks:
set -uo pipefail
MCP_CONFIG="${MCP_CONFIG:-.rulesync/mcp.json}"
[ ! -f "$MCP_CONFIG" ] && exit 0
! -v jq >/dev/null 2>&1;
0
FAILED_MCP=
IFS= -r mcp_name;
mcp_type=$(jq -r 2>/dev/null || )
http)
url=$(jq -r 2>/dev/null)
[ -n ];
! curl -s --connect-timeout 5 -o /dev/null 2>/dev/null;
FAILED_MCP=
;;
stdio)
cmd=$(jq -r 2>/dev/null)
! -v >/dev/null 2>&1;
uvx) -v uvx || -v pipx || FAILED_MCP= ;;
npx) -v npx || FAILED_MCP= ;;
;;
< <(jq -r 2>/dev/null || )
[ -n ];
0