mcp-servers-search

An MCP server that provides tools for querying and discovering other MCP servers

GitHub Stars

1

User Rating

Not Rated

Forks

0

Issues

0

Views

1

Favorites

0

README
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
Author Information

1

Followers

2

Repositories

0

Gists

4

Total Contributions

Top Contributors

Threads