Skip to main content
Glama
MikeyBeez

mcp-registry-interface

by MikeyBeez
README.md
# 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

A3.9/5.0

Scored across 5 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

With exactly 5 tools, the set is well-scoped for a registry interface. Each tool covers a needed function without redundancy or bloat.

Completeness4/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues