MCP Servers Search

Search and discover available MCP servers from the official repository.

MCP Servers Search

An MCP (Model Context Protocol) server that provides tools for querying and discovering available MCP servers from the official modelcontextprotocol/servers repository.

547 MCP servers as of June 2025.

Features

  • List Servers: Browse all available MCP servers with filtering by category
  • Search: Find servers by name, description, or author
  • Feature Search: Discover servers that provide specific capabilities
  • Random Discovery: Get random server suggestions for exploration
  • Caching: Efficient caching to minimize GitHub API calls

Installation

Using npm

npm install -g @atonomus/mcp-servers-search

From source

git clone https://github.com/atonomus/mcp-servers-search.git
cd mcp-servers-search
npm install

Usage

Standalone

# Run directly with npx
npx @atonomus/mcp-servers-search

# Or if installed globally
mcp-servers-search

With Claude Desktop

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "servers-search": {
      "command": "npx",
      "args": ["-y", "@atonomus/mcp-servers-search"]
    }
  }
}

Available Tools

1. list_servers

List all available MCP servers with optional filtering.

Parameters:

  • category (optional): Filter by category - "reference", "official", "community", or "all" (default)
  • search (optional): Search servers by name or description
  • limit (optional): Maximum number of results (default: 20)

Example:

{
  "name": "list_servers",
  "arguments": {
    "category": "official",
    "search": "database",
    "limit": 10
  }
}

2. get_server_details

Get detailed information about a specific MCP server.

Parameters:

  • name (required): The name of the MCP server

Example:

{
  "name": "get_server_details",
  "arguments": {
    "name": "GitHub"
  }
}

3. search_servers_by_feature

Search for servers that provide specific features or capabilities.

Parameters:

  • feature (required): The feature to search for (e.g., "database", "api", "blockchain")
  • limit (optional): Maximum number of results (default: 10)

Example:

{
  "name": "search_servers_by_feature",
  "arguments": {
    "feature": "blockchain",
    "limit": 5
  }
}

4. get_random_servers

Get a random selection of MCP servers for discovery.

Parameters:

  • count (optional): Number of random servers (default: 5)
  • category (optional): Filter by category (default: "all")

Example:

{
  "name": "get_random_servers",
  "arguments": {
    "count": 3,
    "category": "community"
  }
}

5. refresh_server_list

Force refresh the cached list of MCP servers from GitHub.

Example:

{
  "name": "refresh_server_list",
  "arguments": {}
}

Development

Setup

# Install dependencies
npm install

# Run normally
npm start

# Run tests
npm test

Testing

The project includes a comprehensive Mocha test suite that tests the README parsing functionality. The tests cover:

  • Standard format entries: [Name](link) - description
  • Bold format entries: **[Name](link)** - description
  • List format entries: - [Name](link) - description
  • Author extraction: (by AuthorName)
  • Category detection (reference, official, community)
  • Description cleaning (removing embedded links)
  • Special character handling (preserving backticks)

Run tests with:

npm test

Examples

Using with Claude Desktop

Once configured, you can ask Claude:

  • "What MCP servers are available for database operations?"
  • "Show me all official MCP servers"
  • "Find MCP servers related to AI or machine learning"
  • "Give me 5 random community servers to explore"
  • "Tell me more about the GitHub MCP server"

Programmatic Usage

// Example of using the server programmatically
import { MCPToolsQueryServer } from '@atonomus/mcp-servers-search';

const server = new MCPToolsQueryServer();
await server.run();

Caching

The server caches the list of available MCP servers for 1 hour to minimize API calls to GitHub. You can force a refresh using the refresh_server_list tool.

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

MIT - see LICENSE file for details

Acknowledgments

Related Servers