Skip to main content
Glama
bxzymy

MCP Recommender

by bxzymy
README.md
# MCP Recommender

A smart MCP (Model Context Protocol) server that provides intelligent recommendations for other MCP servers based on your development needs.

## Features

- šŸ” **Smart Search**: Find MCP servers using natural language queries
- šŸ“Š **Rich Database**: Access to 874+ curated MCP servers across 36+ categories
- šŸŽÆ **Intelligent Matching**: Advanced scoring algorithm for relevant recommendations
- šŸ·ļø **Category Filtering**: Filter by specific categories and programming languages
- šŸš€ **Easy Integration**: Simple setup with uv package manager
- šŸ”§ **Multiple Interfaces**: Support for both CLI and MCP client integration

## Installation

### Using uv (Recommended)

```bash
# Clone the repository
git clone https://github.com/mcp-team/mcp-recommender.git
cd mcp-recommender

# Install with uv
uv sync

# Test the installation
uv run -m mcp_recommender --test
```

### Using pip

```bash
pip install mcp-recommender
```

## Usage

### Command Line Interface

```bash
# Test mode - verify installation and see sample recommendations
uv run -m mcp_recommender --test

# Server mode - start the MCP server
uv run -m mcp_recommender --server

# Debug mode - detailed diagnostic information
uv run -m mcp_recommender --debug
```

### MCP Client Integration

Add to your MCP client configuration:

```json
{
  "mcpServers": {
    "mcp-recommender": {
      "isActive": true,
      "name": "mcp-recommender",
      "type": "stdio",
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp-recommender",
        "run",
        "-m",
        "mcp_recommender"
      ]
    }
  }
}
```

### Available Tools

Once integrated, you can use these tools in your MCP client:

#### `recommend_mcp`
Get intelligent MCP server recommendations based on your needs.

**Parameters:**
- `query` (string): Description of functionality you need
- `limit` (integer, optional): Maximum number of recommendations (default: 5)
- `category` (string, optional): Filter by specific category
- `language` (string, optional): Filter by programming language

**Example:**
```
recommend_mcp("database operations with SQLite", limit=3)
```

#### `list_categories`
List all available MCP categories with counts.

#### `get_functional_keywords`
Show functional keyword mappings for better search results.

## Categories

The recommender covers 36+ categories including:

- **Developer Tools** (120+ servers)
- **Databases** (79+ servers)
- **Search & Data Extraction** (69+ servers)
- **Cloud Platforms** (39+ servers)
- **Security** (39+ servers)
- **Communication** (36+ servers)
- **Browser Automation** (23+ servers)
- **Knowledge & Memory** (22+ servers)
- And many more...

## Development

### Setup Development Environment

```bash
# Clone and setup
git clone https://github.com/mcp-team/mcp-recommender.git
cd mcp-recommender

# Install development dependencies
uv sync --dev

# Run tests
uv run pytest

# Build package
uv build
```

### Project Structure

```
mcp-recommender/
ā”œā”€ā”€ mcp_recommender/           # Main package
│   ā”œā”€ā”€ __init__.py
│   ā”œā”€ā”€ __main__.py           # CLI entry point
│   ā”œā”€ā”€ server.py             # MCP server implementation
│   └── data/                 # MCP database and keywords
│       ā”œā”€ā”€ mcp_database.json
│       └── functional_keywords.json
ā”œā”€ā”€ tests/                    # Test suite
ā”œā”€ā”€ LICENSE                   # MIT License
ā”œā”€ā”€ README.md                 # This file
└── pyproject.toml           # Package configuration
```

## Contributing

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

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Acknowledgments

- Built with [FastMCP](https://github.com/jlowin/fastmcp) framework
- MCP database curated from the awesome MCP community
- Powered by the [Model Context Protocol](https://modelcontextprotocol.io/)

## Support

- šŸ“– [Documentation](https://github.com/mcp-team/mcp-recommender#readme)
- šŸ› [Issue Tracker](https://github.com/mcp-team/mcp-recommender/issues)
- šŸ’¬ [Discussions](https://github.com/mcp-team/mcp-recommender/discussions)

---

Made with ā¤ļø by the MCP community

TDQS

A3.5/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: get_functional_keywords provides keyword mappings, list_categories shows available categories, and recommend_mcp generates server recommendations based on user needs. The tools target different aspects of the recommendation system and cannot be confused.

Naming Consistency4/5

The naming follows a consistent verb_noun pattern (get_functional_keywords, list_categories, recommend_mcp) with clear, descriptive names. The minor deviation is that 'recommend_mcp' uses a verb-object structure rather than verb_noun, but this is still readable and maintains overall consistency.

Tool Count3/5

With only 3 tools, the set feels thin for a server named 'MCP Recommender' that aims to help users find MCP servers. While the core functionality is covered, additional tools like filtering or detailed server information could enhance the scope. The count is borderline but workable.

Completeness4/5

The tool surface covers the essential workflows: exploring keywords and categories, and getting recommendations. Minor gaps exist, such as no tool to get detailed information about a specific server or to save/favorite recommendations, but agents can work around these with the provided tools.

Maintenance

ActivityInactive
ResponsivenessNo issues