mcp-registry-interface
# mcp-registry-interface
๐ **MCP server for interfacing with the official Model Context Protocol registry**
Enables Claude and other MCP clients to dynamically discover, browse, search, and manage MCP servers directly from GitHub. Fetches real-time data from the official MCP servers repository.
## ๐ Features
- **๐ Real-time Search** - Find MCP servers from live GitHub data
- **๐ฆ Server Details** - Get comprehensive information including installation guides
- **๐ Categories** - Browse servers by functionality (filesystem, database, etc.)
- **๐ Auto-refresh** - Cached data with configurable refresh intervals
- **๐ Rate Limit Aware** - Supports GitHub tokens for higher API limits
- **โ No Mock Data** - Always provides real data or fails transparently
## ๐ Available Tools
| Tool | Description |
|------|-------------|
| `registry_search_servers` | Search MCP servers by name, description, or tags |
| `registry_get_server_details` | Get detailed server information and installation guides |
| `registry_list_categories` | List all server categories with descriptions |
| `registry_refresh_data` | Force refresh GitHub data (bypasses cache) |
## ๐ ๏ธ Installation
### NPM (Recommended)
```bash
npx mcp-registry-interface
```
### Manual Installation
```bash
git clone <repository-url>
cd mcp-registry-interface
npm install
npm start
```
## โ๏ธ Configuration
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"registry-interface": {
"command": "npx",
"args": ["mcp-registry-interface"],
"env": {
"GITHUB_TOKEN": "your-github-token-optional"
}
}
}
}
```
### Environment Variables
| Variable | Description | Required |
|----------|-------------|----------|
| `GITHUB_TOKEN` | GitHub personal access token for higher rate limits | No (60 requests/hour without) |
Without a GitHub token, you get 60 API calls per hour. With a token, you get 5,000 calls per hour.
## ๐ฏ Example Usage
```
User: "Find MCP servers for working with databases"
Claude: Uses registry_search_servers with category="database"
User: "Show me details about the filesystem server"
Claude: Uses registry_get_server_details with serverId="mcp-filesystem"
User: "What categories of MCP servers are available?"
Claude: Uses registry_list_categories
```
## ๐ Security & Reliability
- โ
**Real Data Only** - No mock/fake data that could mislead developers
- โ
**Transparent Failures** - Clear error messages when GitHub API is unavailable
- โ
**Rate Limit Handling** - Proper GitHub API rate limit management
- โ
**Input Validation** - Secure parameter checking and sanitization
- โ
**No Hardcoded Secrets** - All tokens from environment variables
## ๐งช Development & Testing
The server fetches live data from GitHub's API:
```bash
# Basic usage (60 requests/hour)
node src/index.js
# With GitHub token (5000 requests/hour)
GITHUB_TOKEN=your_token_here node src/index.js
# Test the server
node static-test.js
```
## ๐ก๏ธ Error Handling
When GitHub API is unavailable, the server:
- โ Does NOT provide fake/mock data
- โ
Returns clear error messages
- โ
Explains how to resolve the issue
- โ
Maintains cache for recent successful requests
## ๐ค Contributing
This tool helps accelerate the MCP ecosystem by making server discovery seamless with real, up-to-date information.
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Test with live GitHub data
5. Submit a pull request
## ๐ Data Source
- **Primary Source**: [modelcontextprotocol/servers](https://github.com/modelcontextprotocol/servers) README
- **API**: GitHub Contents API
- **Update Frequency**: 5-minute cache with manual refresh capability
- **Parsing**: Extracts official reference servers and community servers
## ๐ License
MIT License - see LICENSE file for details.
---
**๐ฏ Philosophy**: This tool believes in transparency - real data or honest failure, never misleading mock data.
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: searching, retrieving details, listing categories, refreshing data, and getting help. There is no overlap or ambiguity between them.
All tool names follow a consistent verb_noun pattern with lowercase and underscores (e.g., registry_search_servers, registry_get_server_details). 'help' is a minor deviation but is a conventional verb-like exception in many toolkits.
With exactly 5 tools, the set is well-scoped for a registry interface. Each tool covers a needed function without redundancy or bloat.
The core read and maintenance operations (search, get details, list categories, refresh) are all present. A list-all servers function could be considered missing, but search likely covers that use case adequately.