| name | mcp-discovery |
| category | developer-experience |
| subcategory | cli |
| description | Discovers available MCP servers from registries and validates compatibility. Auto-discovers MCP servers from official registries, community sources, and local definitions. Triggers on: mcp discovery, find mcp servers, discover mcp, mcp registry, mcp catalog. |
| targets | ["*"] |
| tags | ["dotnet","skill","mcp","discovery"] |
| version | 0.0.1 |
| author | dotnet-agent-harness |
| license | MIT |
| claudecode | {"model":"inherit","allowed-tools":["Read","Grep","Glob","Bash","WebFetch"]} |
| opencode | {"mode":"primary","tools":{"bash":true,"edit":false,"write":false}} |
| copilot | {"tools":["read","search","execute"]} |
| codexcli | {"short-description":"Toolkit guidance for mcp-discovery"} |
| geminicli | {} |
| antigravity | {} |
MCP Discovery
Discovers and catalogs available MCP servers from registries, community sources, and local configurations.
Preloaded Skills
Always load before analysis:
- [skill:dotnet-advisor] -- routing and context
- [skill:mcp-health] -- validate discovered MCPs
Usage
[mcp-discovery:find-all]
[mcp-discovery:search <keyword>]
[mcp-discovery:update-config]
[mcp-discovery:list]
```text
1. **MCP Registry (modelcontextprotocol.io)**
- Official MCP server listings
- Verified implementations
- Community submissions
2. **Smithery Registry (smithery.ai)**
- Curated MCP servers
- Ratings and reviews
- Installation guides
```bash
https://registry.modelcontextprotocol.io/servers
jq '.servers[] | select(.tags[] | contains("dotnet") or contains("csharp"))'
```text
```bash
https://smithery.ai/api/mcp-servers
curl -s "https://smithery.ai/api/mcp-servers?category=development"
```text
```bash
jq '.devDependencies | keys[] | select(contains("mcp"))' package.json
```text
```bash
ls ~/.vscode/extensions/ | grep -i mcp
ls ~/.claude/ | grep -i mcp
```text
Add to hooks or commands:
```bash
set -uo pipefail
DISCOVERED_MCP=
-v curl >/dev/null 2>&1;
REGISTRY_DATA=$(curl -s --connect-timeout 5 \
2>/dev/null || )
[ -n ];
DISCOVERED_MCP=$( | jq -c 2>/dev/null || )
LOCAL_MCPS=
-v uvx >/dev/null 2>&1;
LOCAL_MCPS=$( | jq )
-v npx >/dev/null 2>&1;
LOCAL_MCPS=$( | jq )
0
```text
| MCP Server | Type | .NET Support | Status | Notes |
| ----------------- | ----- | ------------ | ------ | ----------------- |
| serena | stdio | Full | Active | Semantic analysis |
| context7 | http | Full | Active | Library docs |
| microsoftdocs-mcp | http | Full | Active | MS Learn |
| deepwiki | http | Full | Active | Wiki search |
| github | http | Full | New | GitHub API |
```bash
dotnet-agent-harness:mcp-discovery:update-config
{
: {
: {
: ,
: ,
: [, , ]
}
}
}
```text
Add discovery to rulesync workflow:
```json
{
: [{ : }]
}
```text
Local tools should use stdio transport:
- Better performance (no HTTP overhead)
- Works offline
- Easier debugging
Cloud APIs should use http transport:
- No installation required
- Automatic updates
- Scalable
Always validate discovered MCPs:
```bash
[mcp-health:check <new-mcp>]
[mcp-discovery: <new-mcp>]
```text
Pin MCP server versions stability:
```json
{
: {
: {
: ,
: ,
: [, , ]
}
}
}
```text\n\n## Troubleshooting Discovery
**Problem:** Registry unreachable
**Solutions:**
- Check network connectivity
- Try offline mode with cached registry
- Use MCP servers only
**Problem:** MCP doesnChecking available MCP servers...