Skip to content

Commit 4716a6e

Browse files
sjnimsclaude
andcommitted
docs(mcp-integration): add MCP server discovery reference
Add comprehensive reference for finding and evaluating MCP servers, covering official registry API, alternative sources (Smithery, npm, GitHub), category mappings for common plugin needs, and evaluation criteria for assessing server quality and maintenance. Fixes #72 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 9f1b3e6 commit 4716a6e

2 files changed

Lines changed: 296 additions & 0 deletions

File tree

plugins/plugin-dev/skills/mcp-integration/SKILL.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,7 @@ For detailed information, consult:
520520
- **`references/server-types.md`** - Deep dive on each server type
521521
- **`references/authentication.md`** - Authentication patterns and OAuth
522522
- **`references/tool-usage.md`** - Using MCP tools in commands and agents
523+
- **`references/discovery.md`** - Finding and evaluating MCP servers
523524

524525
### Example Configurations
525526

Lines changed: 295 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,295 @@
1+
# MCP Server Discovery: Finding and Evaluating Servers
2+
3+
Complete reference for discovering MCP servers to integrate into Claude Code plugins.
4+
5+
## Overview
6+
7+
When building plugins that need external capabilities, finding the right MCP server saves development time and leverages community-tested implementations. This guide covers discovery sources, search strategies, and evaluation criteria.
8+
9+
### When to Use MCP Servers
10+
11+
**Integrate existing MCP servers when:**
12+
13+
- Standard functionality exists (file system, database, API clients)
14+
- Multiple tools needed from single service (10+ related operations)
15+
- OAuth or complex authentication required
16+
- Community maintenance preferred over custom implementation
17+
18+
**Build custom solutions when:**
19+
20+
- Functionality is unique to your use case
21+
- Only 1-2 simple tools needed
22+
- Tight integration with plugin logic required
23+
- Existing servers don't meet security requirements
24+
25+
## Official MCP Registry
26+
27+
The official registry at `registry.modelcontextprotocol.io` provides a REST API for discovering servers.
28+
29+
### API Endpoint
30+
31+
```text
32+
https://registry.modelcontextprotocol.io/v0/servers
33+
```
34+
35+
### Search Syntax
36+
37+
**Basic search:**
38+
39+
```text
40+
GET /v0/servers?search=filesystem
41+
```
42+
43+
**With limit:**
44+
45+
```text
46+
GET /v0/servers?search=database&limit=10
47+
```
48+
49+
**Pagination:**
50+
51+
```text
52+
GET /v0/servers?cursor=<cursor_from_previous_response>
53+
```
54+
55+
### Response Structure
56+
57+
```json
58+
{
59+
"servers": [
60+
{
61+
"name": "@modelcontextprotocol/server-filesystem",
62+
"description": "MCP server for file system operations",
63+
"repository": "https://github.com/modelcontextprotocol/servers",
64+
"homepage": "https://modelcontextprotocol.io"
65+
}
66+
],
67+
"cursor": "next_page_cursor"
68+
}
69+
```
70+
71+
### Key Fields
72+
73+
| Field | Description |
74+
|-------|-------------|
75+
| `name` | Package/server name (often npm scope) |
76+
| `description` | Brief functionality summary |
77+
| `repository` | Source code location |
78+
| `homepage` | Documentation URL |
79+
80+
### Limitations
81+
82+
The official registry provides no popularity metrics. Supplement with GitHub stars or npm downloads for quality signals.
83+
84+
## Alternative Discovery Sources
85+
86+
### Smithery.ai
87+
88+
Largest MCP server marketplace with usage metrics.
89+
90+
**URL:** <https://smithery.ai/>
91+
92+
**Advantages:**
93+
94+
- Call volume statistics (popularity indicator)
95+
- Curated categories
96+
- Installation instructions
97+
- User ratings
98+
99+
**Search tips:**
100+
101+
- Browse categories for common use cases
102+
- Sort by popularity for battle-tested servers
103+
- Check "Recently Added" for new capabilities
104+
105+
### npm Registry
106+
107+
Official MCP servers and community packages available via npm.
108+
109+
**Official scope search:**
110+
111+
```bash
112+
npm search @modelcontextprotocol
113+
```
114+
115+
**Community search:**
116+
117+
```bash
118+
npm search mcp-server
119+
```
120+
121+
**Key indicators:**
122+
123+
- Weekly downloads (popularity)
124+
- Last publish date (maintenance)
125+
- Dependency count (complexity)
126+
127+
### GitHub
128+
129+
Direct source code access and community engagement metrics.
130+
131+
**Topic search:**
132+
133+
```text
134+
https://github.com/topics/mcp-server
135+
```
136+
137+
**Curated lists:**
138+
139+
- `awesome-mcp-servers` repositories
140+
- `modelcontextprotocol` organization
141+
142+
**Search queries:**
143+
144+
```text
145+
mcp server in:name,description language:TypeScript
146+
model context protocol in:readme
147+
```
148+
149+
### MCP.SO
150+
151+
Third-party aggregator with rankings and categories.
152+
153+
**URL:** <https://mcp.so/>
154+
155+
**Features:**
156+
157+
- Combined metrics from multiple sources
158+
- Category browsing
159+
- Quick comparison view
160+
161+
## Category Mappings
162+
163+
Find servers for common plugin needs:
164+
165+
| Plugin Need | Search Terms | Notable Servers |
166+
|-------------|--------------|-----------------|
167+
| Database access | postgres, sqlite, database, sql | @modelcontextprotocol/server-postgres, mcp-server-sqlite |
168+
| File operations | filesystem, files, directory | @modelcontextprotocol/server-filesystem |
169+
| GitHub integration | github, git, repository | Official GitHub MCP server |
170+
| Web search | search, web, exa, tavily | Exa MCP, Tavily MCP |
171+
| Browser automation | browser, playwright, puppeteer | Browserbase, Playwright MCP |
172+
| Memory/knowledge | memory, knowledge, notes | @modelcontextprotocol/server-memory |
173+
| Time/scheduling | time, calendar, scheduling | Google Calendar MCP |
174+
| HTTP/APIs | fetch, http, rest, api | mcp-server-fetch |
175+
| Slack integration | slack, messaging | Slack MCP server |
176+
| Email | email, gmail, smtp | Gmail MCP servers |
177+
178+
## Evaluation Criteria
179+
180+
### Popularity Signals
181+
182+
Strong indicators of production-ready servers:
183+
184+
| Metric | Good | Excellent |
185+
|--------|------|-----------|
186+
| GitHub stars | 50+ | 500+ |
187+
| npm weekly downloads | 100+ | 1,000+ |
188+
| Smithery call volume | 1K+ | 10K+ |
189+
| Forks | 10+ | 50+ |
190+
191+
### Maintenance Indicators
192+
193+
Signs of active development:
194+
195+
- **Recent commits:** Last commit within 3 months
196+
- **Issue response time:** Maintainers respond within 1-2 weeks
197+
- **Release cadence:** Regular releases (monthly or quarterly)
198+
- **Open issues ratio:** Less than 50% of total issues open
199+
200+
### Quality Markers
201+
202+
Technical quality signals:
203+
204+
- **TypeScript:** Type safety and better IDE support
205+
- **Tests:** Test suite with reasonable coverage
206+
- **Documentation:** README with setup instructions and examples
207+
- **Semantic versioning:** Proper version management
208+
- **License:** Permissive license (MIT, Apache 2.0)
209+
- **CI/CD:** Automated testing and publishing
210+
211+
### Red Flags
212+
213+
Avoid servers with these issues:
214+
215+
| Red Flag | Risk |
216+
|----------|------|
217+
| No license | Legal uncertainty |
218+
| Abandoned (1+ year stale) | Security vulnerabilities, no bug fixes |
219+
| Hardcoded secrets in examples | Poor security practices |
220+
| No error handling | Unreliable in production |
221+
| Excessive permissions | Security risk |
222+
| No README | Integration difficulty |
223+
| Only personal use | Not designed for distribution |
224+
225+
## Discovery Workflow
226+
227+
Recommended process for finding MCP servers:
228+
229+
1. **Define requirements**
230+
- List needed capabilities
231+
- Identify authentication requirements
232+
- Consider security constraints
233+
234+
2. **Search official registry first**
235+
- Query `registry.modelcontextprotocol.io`
236+
- Check official `@modelcontextprotocol` packages
237+
238+
3. **Expand to alternative sources**
239+
- Browse Smithery categories
240+
- Search npm for community packages
241+
- Check GitHub awesome lists
242+
243+
4. **Evaluate candidates**
244+
- Apply popularity filters
245+
- Check maintenance status
246+
- Review code quality
247+
248+
5. **Test integration**
249+
- Clone and run locally
250+
- Verify tools work as expected
251+
- Check error handling
252+
253+
6. **Document choice**
254+
- Record why server was selected
255+
- Note any limitations
256+
- Plan for future updates
257+
258+
## Discovery Script
259+
260+
For automated discovery, see the companion script implementation in issue [#73](https://github.com/sjnims/plugin-dev/issues/73). Once implemented, usage:
261+
262+
```bash
263+
./scripts/search-mcp-servers.sh "filesystem" --limit 10
264+
```
265+
266+
## Quick Reference
267+
268+
### Search Priority
269+
270+
1. Official MCP Registry (`registry.modelcontextprotocol.io`)
271+
2. npm `@modelcontextprotocol` scope
272+
3. Smithery.ai curated servers
273+
4. npm community packages (`mcp-server-*`)
274+
5. GitHub topic search
275+
276+
### Minimum Quality Bar
277+
278+
Before integrating an MCP server, verify:
279+
280+
- [ ] Active maintenance (commits within 6 months)
281+
- [ ] Proper license (MIT, Apache 2.0, etc.)
282+
- [ ] Documentation exists
283+
- [ ] No obvious security issues
284+
- [ ] Works with current MCP protocol version
285+
286+
### Quick Evaluation
287+
288+
```bash
289+
# Check npm package health
290+
npm view <package-name> time.modified
291+
npm view <package-name> repository.url
292+
293+
# Check GitHub activity
294+
gh repo view <owner/repo> --json stargazerCount,pushedAt
295+
```

0 commit comments

Comments
 (0)