Discovery Sources
Lyra Tool Discovery searches multiple sources to find MCP servers and tools. Currently supported sources are GitHub and npm, with more planned.
Discovery Sources
Lyra Tool Discovery searches multiple sources to find MCP servers and tools. Currently supported sources are GitHub and npm, with more planned.
Supported Sources
| Source | Status | Description |
|---|---|---|
github | ✅ Stable | GitHub repository search |
npm | ✅ Stable | npm registry search |
smithery | 🔜 Planned | Smithery MCP registry |
mcp-directory | 🔜 Planned | Official MCP directory |
openapi-directory | 🔜 Planned | OpenAPI spec collection |
GitHub Source
Searches GitHub repositories using the GitHub Search API.
Default Search Queries
const queries = [
'mcp server in:name,description,readme',
'modelcontextprotocol in:name,description',
'@modelcontextprotocol in:readme',
'mcp-server in:name'
];
Configuration
# Increase rate limit with GitHub token
export GITHUB_TOKEN="ghp_..."
Usage
# Search GitHub only
lyra-discover discover --sources github --limit 10
What It Fetches
For each repository, the GitHub source:
- Basic Info - Name, description, stars, license, owner
- README.md - Full content for AI analysis
- package.json - Dependencies, bin entries, scripts
- Topics - GitHub repository topics
MCP Detection
A repository is marked as MCP-compatible if:
hasMCPSupport:
item.topics.includes('mcp') ||
item.name.includes('mcp') ||
item.description?.toLowerCase().includes('mcp')
Rate Limits
| Auth | Rate Limit | Reset |
|---|---|---|
| No token | 10 requests/min | Per minute |
| With token | 30 requests/min | Per minute |
| With token | 5000 requests/hr | Per hour |
::: warning
Without a GITHUB_TOKEN, you'll quickly hit rate limits. Always set a token for production use.
:::
Custom Queries
Configure custom search queries in discovery.config.json:
{
"github": {
"queries": [
"langchain mcp in:name,readme",
"anthropic tools in:name,description",
"ai agent server in:topics"
],
"sort": "stars",
"order": "desc"
}
}
npm Source
Searches the npm registry for MCP-related packages.
Default Search Queries
const queries = [
'mcp server',
'@modelcontextprotocol',
'mcp-server'
];
Usage
# Search npm only
lyra-discover discover --sources npm --limit 10
What It Fetches
For each package:
- Package Info - Name, version, description, keywords
- README - From npm registry
- Full package.json - Dependencies, bin, scripts
- Links - Homepage, repository, npm page
MCP Detection
A package is marked as MCP-compatible if:
hasMCPSupport:
pkg.keywords?.includes('mcp') ||
pkg.name.includes('mcp') ||
pkg.description?.toLowerCase().includes('mcp') ||
pkg.dependencies?.['@modelcontextprotocol/sdk']
STDIO Config Generation
If a package has a bin entry, Lyra automatically generates an MCP STDIO config:
if (fullPkg.bin) {
tool.mcpConfig = {
type: 'stdio',
command: 'npx',
args: ['-y', fullPkg.name],
env: {}
};
}
Custom Queries
{
"npm": {
"queries": [
"@langchain",
"mcp-tool",
"model-context"
]
}
}
Using Multiple Sources
By default, Lyra searches all available sources:
# Default: searches github and npm
lyra-discover discover --limit 10
# Explicit multiple sources
lyra-discover discover --sources github,npm --limit 10
Results are deduplicated by ID:
const seen = new Set<string>();
for (const tool of results) {
if (!seen.has(tool.id)) {
seen.add(tool.id);
tools.push(tool);
}
}
Search Query Optimization
GitHub Query Syntax
| Operator | Example | Description |
|---|---|---|
in:name | mcp in:name | Search in repo name |
in:description | server in:description | Search in description |
in:readme | @anthropic in:readme | Search in README |
in:topics | mcp in:topics | Search in topics |
stars:>N | stars:>100 | Minimum stars |
language: | language:typescript | Language filter |
Example queries:
mcp server in:name,readme stars:>50 language:typescript
@modelcontextprotocol in:readme language:javascript
npm Query Tips
- Use scoped packages:
@modelcontextprotocol - Combine terms:
mcp server typescript - Use exact names:
mcp-server-filesystem
Filtering Results
By MCP Support
# Only show MCP-compatible tools (default for analysis)
lyra-discover discover --sources github,npm
The discovery filters to MCP-compatible tools before AI analysis:
const mcpTools = tools.filter(t => t.hasMCPSupport);
By Stars (Coming Soon)
{
"discovery": {
"filters": {
"minStars": 50
}
}
}
Future Sources
Smithery
The Smithery MCP Registry will be supported:
lyra-discover discover --sources smithery
MCP Directory
The official MCP directory at modelcontextprotocol.io:
lyra-discover discover --sources mcp-directory
OpenAPI Directory
Discover APIs with OpenAPI specifications:
lyra-discover discover --sources openapi-directory
Source Interface
All sources implement this interface:
interface DiscoverySource {
searchMCPServers(limit: number): Promise<DiscoveredTool[]>;
}
See Custom Sources to implement your own.
Next Steps
- Custom Sources - Create your own source
- Configuration - Full config reference
- CLI Reference - Command documentation
Related Documents
AI Digest Platform - Source Research & Configuration Guide
> Comprehensive catalog of feeds, APIs, and sources for the AI Digest aggregation platform.
Reference Sources - Open Source Projects to Study
**Project:** Podcast Video Editor
Mosaic 资源索引
> **此文件是 Mosaic 的"采购清单",记录了经过筛选的高质量 UI 资源。**
feed-sources
title: Supported feed sources and CORS compatibility