# RapidAPI Discovery MCP Server
A Model Context Protocol (MCP) server that provides comprehensive RapidAPI marketplace discovery and analysis capabilities using undetected-chromedriver for reliable web scraping that bypasses anti-bot detection.
## ๐ Features
- **API Search**: Search for APIs by keyword and category across RapidAPI marketplace
- **API Assessment**: Detailed analysis of specific APIs including ratings, pricing, and endpoints
- **API Documentation**: Extract comprehensive documentation and endpoint details
- **API Comparison**: Side-by-side comparison of multiple APIs with key metrics
- **Pricing Analysis**: Detailed pricing plans and tier limits extraction
- **Enhanced Documentation**: GraphQL-enhanced endpoint details and comprehensive API docs
- **Anti-Detection**: Uses undetected-chromedriver to reliably bypass bot detection systems
## ๐ Quick Start
### Prerequisites
- Python 3.8+
- Chrome/Chromium browser
- Git
### Installation
#### Option 1: Install from PyPI (Recommended)
```bash
pip install rapidapi-mcp-server
```
#### Option 2: Development Installation
```bash
# Clone the repository
git clone https://github.com/andrewlwn77/rapidapi-mcp-server.git
cd rapidapi-mcp-server
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install in development mode
pip install -e .
```
### Configuration
Add to your Claude Desktop `.mcp.json`:
#### Option 1: Using PyPI Installation
```json
{
"mcpServers": {
"rapidapi-discovery": {
"command": "rapidapi-mcp-server",
"env": {
"CHROME_EXECUTABLE_PATH": "/opt/google/chrome/google-chrome"
}
}
}
}
```
#### Option 2: Using Python Module
```json
{
"mcpServers": {
"rapidapi-discovery": {
"command": "python",
"args": ["-m", "rapidapi_mcp_server.server"],
"env": {
"CHROME_EXECUTABLE_PATH": "/opt/google/chrome/google-chrome"
}
}
}
}
```
#### Option 3: Development Installation
```json
{
"mcpServers": {
"rapidapi-discovery": {
"command": "/path/to/venv/bin/python",
"args": ["-m", "rapidapi_mcp_server.server"],
"cwd": "/path/to/rapidapi-mcp-server",
"env": {
"CHROME_EXECUTABLE_PATH": "/opt/google/chrome/google-chrome"
}
}
}
}
```
## ๐ ๏ธ Available Tools
### 1. Search APIs (`search_apis`)
Search for APIs in the RapidAPI marketplace by keyword and optional category.
**Parameters:**
- `query` (required): Search query for APIs (e.g., 'weather', 'crypto', 'news')
- `maxResults` (optional): Maximum number of results to return (1-50, default: 20)
- `category` (optional): Category filter
**Example:**
```python
mcp__rapidapi-discovery__search_apis(query="weather", maxResults=10)
```
### 2. Assess API (`assess_api`)
Get comprehensive assessment of a specific API including ratings, pricing, endpoints, and documentation.
**Parameters:**
- `apiUrl` (required): The RapidAPI URL for the specific API
**Example:**
```python
mcp__rapidapi-discovery__assess_api(apiUrl="https://rapidapi.com/weatherapi/api/weatherapi-com")
```
### 3. Get API Documentation (`get_api_documentation`)
Extract documentation URLs and endpoint information for a specific API.
**Parameters:**
- `apiUrl` (required): The RapidAPI URL for the specific API
### 4. Compare APIs (`compare_apis`)
Compare multiple APIs side by side with key metrics.
**Parameters:**
- `apiUrls` (required): Array of RapidAPI URLs to compare (2-5 APIs)
### 5. Get Pricing Plans (`get_pricing_plans`)
Extract detailed pricing plans and tier limits for a specific API.
**Parameters:**
- `apiUrl` (required): The RapidAPI URL for the specific API
### 6. Get Enhanced API Documentation (`get_enhanced_api_documentation`)
Extract comprehensive API documentation with GraphQL-enhanced endpoint details.
**Parameters:**
- `apiUrl` (required): The RapidAPI URL for the specific API
## ๐๏ธ Architecture
### Core Components
- **server.py**: Main MCP server implementation with JSON-RPC over stdio
- **chrome_client.py**: Chrome automation using undetected-chromedriver
- **pyproject.toml**: Project configuration and dependencies
### Key Features
- **Undetected Chrome**: Uses undetected-chromedriver for reliable bot detection bypass
- **Session Management**: Efficient Chrome session handling with automatic cleanup
- **Error Handling**: Comprehensive error handling with detailed error messages
- **Async Support**: Full async/await support for concurrent operations
- **MCP Protocol**: Compatible with MCP v1.0.0+ protocol
## ๐งช Testing
Run the server in development mode:
```bash
# Activate virtual environment
source venv/bin/activate
# Run server directly
python -m rapidapi_mcp_server.server
# Test with simple MCP client
python -c "
import asyncio
import json
from rapidapi_mcp_server.server import serve
async def test():
# Server will run on stdio
pass
asyncio.run(test())
"
```
## ๐ Sample Output
### Search Results
```json
{
"query": "weather",
"resultsCount": 5,
"apis": [
{
"name": "WeatherAPI",
"description": "Real-time weather data and forecasts",
"provider": "WeatherAPI.com",
"url": "https://rapidapi.com/weatherapi/api/weatherapi-com",
"rating": 4.8,
"popularity": "High"
}
]
}
```
### API Assessment
```json
{
"name": "WeatherAPI.com",
"rating": 4.8,
"reviewCount": 15420,
"popularity": "Very High",
"pricing": {
"free": {
"requests": 1000000,
"rateLimit": "1 req/sec"
}
},
"endpoints": [
{
"name": "Current Weather",
"method": "GET",
"description": "Get real-time weather data"
}
]
}
```
## ๐ง Environment Variables
- `CHROME_EXECUTABLE_PATH`: Path to Chrome executable (default: auto-detect)
- `CHROME_HEADLESS`: Run Chrome in headless mode (default: true)
- `CHROME_TIMEOUT`: Chrome operation timeout in seconds (default: 30)
## ๐จ Troubleshooting
### Common Issues
1. **Chrome not found**
```bash
export CHROME_EXECUTABLE_PATH="/path/to/chrome"
```
2. **Session errors**
- Ensure Chrome is properly installed
- Check if Chrome process is already running
- Restart the MCP server
3. **Import errors**
```bash
# Ensure virtual environment is activated
source venv/bin/activate
pip install -e .
```
## ๐ Project Structure
```
rapidapi-mcp-server-py/
โโโ src/
โ โโโ rapidapi_mcp_server/
โ โโโ __init__.py
โ โโโ server.py # Main MCP server
โ โโโ chrome_client.py # Chrome automation
โโโ pyproject.toml # Project configuration
โโโ README.md # This file
โโโ .gitignore # Git ignore rules
```
## ๐ค 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 file for details.
## ๐ Acknowledgments
- **undetected-chromedriver**: For reliable anti-detection capabilities
- **MCP Protocol**: For standardized AI tool integration
- **Selenium WebDriver**: For browser automation foundations
- **RapidAPI**: For providing the comprehensive API marketplace
## ๐ Support
- **GitHub Issues**: [Report bugs or request features](https://github.com/andrewlwn77/rapidapi-mcp-server/issues)
- **Documentation**: This README and inline code documentation
- **Examples**: See the tool examples above for usage patterns
---
**Note**: This server requires a valid internet connection and Chrome browser installation. The server uses web scraping techniques that comply with RapidAPI's terms of service for automated access.
Raw data
{
"_id": null,
"home_page": null,
"name": "rapidapi-mcp-server",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "mcp, rapidapi, api, discovery, chrome, automation, claude, ai",
"author": null,
"author_email": "Andrew Lewin <andrewlwn77@users.noreply.github.com>",
"download_url": "https://files.pythonhosted.org/packages/f9/95/9ad9446d486638c49bfe562864b8958659bcc472e872f56361402c4d4523/rapidapi_mcp_server-1.3.1.tar.gz",
"platform": null,
"description": "# RapidAPI Discovery MCP Server\n\nA Model Context Protocol (MCP) server that provides comprehensive RapidAPI marketplace discovery and analysis capabilities using undetected-chromedriver for reliable web scraping that bypasses anti-bot detection.\n\n## \ud83c\udf1f Features\n\n- **API Search**: Search for APIs by keyword and category across RapidAPI marketplace\n- **API Assessment**: Detailed analysis of specific APIs including ratings, pricing, and endpoints\n- **API Documentation**: Extract comprehensive documentation and endpoint details\n- **API Comparison**: Side-by-side comparison of multiple APIs with key metrics\n- **Pricing Analysis**: Detailed pricing plans and tier limits extraction\n- **Enhanced Documentation**: GraphQL-enhanced endpoint details and comprehensive API docs\n- **Anti-Detection**: Uses undetected-chromedriver to reliably bypass bot detection systems\n\n## \ud83d\ude80 Quick Start\n\n### Prerequisites\n\n- Python 3.8+\n- Chrome/Chromium browser\n- Git\n\n### Installation\n\n#### Option 1: Install from PyPI (Recommended)\n\n```bash\npip install rapidapi-mcp-server\n```\n\n#### Option 2: Development Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/andrewlwn77/rapidapi-mcp-server.git\ncd rapidapi-mcp-server\n\n# Create virtual environment\npython3 -m venv venv\nsource venv/bin/activate # On Windows: venv\\Scripts\\activate\n\n# Install in development mode\npip install -e .\n```\n\n### Configuration\n\nAdd to your Claude Desktop `.mcp.json`:\n\n#### Option 1: Using PyPI Installation\n```json\n{\n \"mcpServers\": {\n \"rapidapi-discovery\": {\n \"command\": \"rapidapi-mcp-server\",\n \"env\": {\n \"CHROME_EXECUTABLE_PATH\": \"/opt/google/chrome/google-chrome\"\n }\n }\n }\n}\n```\n\n#### Option 2: Using Python Module\n```json\n{\n \"mcpServers\": {\n \"rapidapi-discovery\": {\n \"command\": \"python\",\n \"args\": [\"-m\", \"rapidapi_mcp_server.server\"],\n \"env\": {\n \"CHROME_EXECUTABLE_PATH\": \"/opt/google/chrome/google-chrome\"\n }\n }\n }\n}\n```\n\n#### Option 3: Development Installation\n```json\n{\n \"mcpServers\": {\n \"rapidapi-discovery\": {\n \"command\": \"/path/to/venv/bin/python\",\n \"args\": [\"-m\", \"rapidapi_mcp_server.server\"],\n \"cwd\": \"/path/to/rapidapi-mcp-server\",\n \"env\": {\n \"CHROME_EXECUTABLE_PATH\": \"/opt/google/chrome/google-chrome\"\n }\n }\n }\n}\n```\n\n## \ud83d\udee0\ufe0f Available Tools\n\n### 1. Search APIs (`search_apis`)\nSearch for APIs in the RapidAPI marketplace by keyword and optional category.\n\n**Parameters:**\n- `query` (required): Search query for APIs (e.g., 'weather', 'crypto', 'news')\n- `maxResults` (optional): Maximum number of results to return (1-50, default: 20)\n- `category` (optional): Category filter\n\n**Example:**\n```python\nmcp__rapidapi-discovery__search_apis(query=\"weather\", maxResults=10)\n```\n\n### 2. Assess API (`assess_api`)\nGet comprehensive assessment of a specific API including ratings, pricing, endpoints, and documentation.\n\n**Parameters:**\n- `apiUrl` (required): The RapidAPI URL for the specific API\n\n**Example:**\n```python\nmcp__rapidapi-discovery__assess_api(apiUrl=\"https://rapidapi.com/weatherapi/api/weatherapi-com\")\n```\n\n### 3. Get API Documentation (`get_api_documentation`)\nExtract documentation URLs and endpoint information for a specific API.\n\n**Parameters:**\n- `apiUrl` (required): The RapidAPI URL for the specific API\n\n### 4. Compare APIs (`compare_apis`)\nCompare multiple APIs side by side with key metrics.\n\n**Parameters:**\n- `apiUrls` (required): Array of RapidAPI URLs to compare (2-5 APIs)\n\n### 5. Get Pricing Plans (`get_pricing_plans`)\nExtract detailed pricing plans and tier limits for a specific API.\n\n**Parameters:**\n- `apiUrl` (required): The RapidAPI URL for the specific API\n\n### 6. Get Enhanced API Documentation (`get_enhanced_api_documentation`)\nExtract comprehensive API documentation with GraphQL-enhanced endpoint details.\n\n**Parameters:**\n- `apiUrl` (required): The RapidAPI URL for the specific API\n\n## \ud83c\udfd7\ufe0f Architecture\n\n### Core Components\n\n- **server.py**: Main MCP server implementation with JSON-RPC over stdio\n- **chrome_client.py**: Chrome automation using undetected-chromedriver\n- **pyproject.toml**: Project configuration and dependencies\n\n### Key Features\n\n- **Undetected Chrome**: Uses undetected-chromedriver for reliable bot detection bypass\n- **Session Management**: Efficient Chrome session handling with automatic cleanup\n- **Error Handling**: Comprehensive error handling with detailed error messages\n- **Async Support**: Full async/await support for concurrent operations\n- **MCP Protocol**: Compatible with MCP v1.0.0+ protocol\n\n## \ud83e\uddea Testing\n\nRun the server in development mode:\n\n```bash\n# Activate virtual environment\nsource venv/bin/activate\n\n# Run server directly\npython -m rapidapi_mcp_server.server\n\n# Test with simple MCP client\npython -c \"\nimport asyncio\nimport json\nfrom rapidapi_mcp_server.server import serve\n\nasync def test():\n # Server will run on stdio\n pass\n\nasyncio.run(test())\n\"\n```\n\n## \ud83d\udcca Sample Output\n\n### Search Results\n```json\n{\n \"query\": \"weather\",\n \"resultsCount\": 5,\n \"apis\": [\n {\n \"name\": \"WeatherAPI\",\n \"description\": \"Real-time weather data and forecasts\",\n \"provider\": \"WeatherAPI.com\",\n \"url\": \"https://rapidapi.com/weatherapi/api/weatherapi-com\",\n \"rating\": 4.8,\n \"popularity\": \"High\"\n }\n ]\n}\n```\n\n### API Assessment\n```json\n{\n \"name\": \"WeatherAPI.com\",\n \"rating\": 4.8,\n \"reviewCount\": 15420,\n \"popularity\": \"Very High\",\n \"pricing\": {\n \"free\": {\n \"requests\": 1000000,\n \"rateLimit\": \"1 req/sec\"\n }\n },\n \"endpoints\": [\n {\n \"name\": \"Current Weather\",\n \"method\": \"GET\",\n \"description\": \"Get real-time weather data\"\n }\n ]\n}\n```\n\n## \ud83d\udd27 Environment Variables\n\n- `CHROME_EXECUTABLE_PATH`: Path to Chrome executable (default: auto-detect)\n- `CHROME_HEADLESS`: Run Chrome in headless mode (default: true)\n- `CHROME_TIMEOUT`: Chrome operation timeout in seconds (default: 30)\n\n## \ud83d\udea8 Troubleshooting\n\n### Common Issues\n\n1. **Chrome not found**\n ```bash\n export CHROME_EXECUTABLE_PATH=\"/path/to/chrome\"\n ```\n\n2. **Session errors**\n - Ensure Chrome is properly installed\n - Check if Chrome process is already running\n - Restart the MCP server\n\n3. **Import errors**\n ```bash\n # Ensure virtual environment is activated\n source venv/bin/activate\n pip install -e .\n ```\n\n## \ud83d\udcc1 Project Structure\n\n```\nrapidapi-mcp-server-py/\n\u251c\u2500\u2500 src/\n\u2502 \u2514\u2500\u2500 rapidapi_mcp_server/\n\u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u251c\u2500\u2500 server.py # Main MCP server\n\u2502 \u2514\u2500\u2500 chrome_client.py # Chrome automation\n\u251c\u2500\u2500 pyproject.toml # Project configuration\n\u251c\u2500\u2500 README.md # This file\n\u2514\u2500\u2500 .gitignore # Git ignore rules\n```\n\n## \ud83e\udd1d Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- **undetected-chromedriver**: For reliable anti-detection capabilities\n- **MCP Protocol**: For standardized AI tool integration\n- **Selenium WebDriver**: For browser automation foundations\n- **RapidAPI**: For providing the comprehensive API marketplace\n\n## \ud83d\udcde Support\n\n- **GitHub Issues**: [Report bugs or request features](https://github.com/andrewlwn77/rapidapi-mcp-server/issues)\n- **Documentation**: This README and inline code documentation\n- **Examples**: See the tool examples above for usage patterns\n\n---\n\n**Note**: This server requires a valid internet connection and Chrome browser installation. The server uses web scraping techniques that comply with RapidAPI's terms of service for automated access.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "RapidAPI marketplace discovery and assessment MCP server using undetected-chromedriver for anti-bot detection bypass",
"version": "1.3.1",
"project_urls": {
"Changelog": "https://github.com/andrewlwn77/rapidapi-mcp-server/blob/main/CHANGELOG.md",
"Documentation": "https://github.com/andrewlwn77/rapidapi-mcp-server#readme",
"Homepage": "https://github.com/andrewlwn77/rapidapi-mcp-server",
"Issues": "https://github.com/andrewlwn77/rapidapi-mcp-server/issues",
"Repository": "https://github.com/andrewlwn77/rapidapi-mcp-server.git"
},
"split_keywords": [
"mcp",
" rapidapi",
" api",
" discovery",
" chrome",
" automation",
" claude",
" ai"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "f7285a0e45b8a1bdc78d48e3c4a850352b0425e0193f601e2b36ed4784d3cb60",
"md5": "01eaf32568f31ef4dce755c7f0163e66",
"sha256": "06edf05a8528f00c31796f6aa44d3a96d28df0efb21e8a76b89137ede535036c"
},
"downloads": -1,
"filename": "rapidapi_mcp_server-1.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "01eaf32568f31ef4dce755c7f0163e66",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 24260,
"upload_time": "2025-08-25T02:59:37",
"upload_time_iso_8601": "2025-08-25T02:59:37.440947Z",
"url": "https://files.pythonhosted.org/packages/f7/28/5a0e45b8a1bdc78d48e3c4a850352b0425e0193f601e2b36ed4784d3cb60/rapidapi_mcp_server-1.3.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f9959ad9446d486638c49bfe562864b8958659bcc472e872f56361402c4d4523",
"md5": "d0ef86fcd33856e0c925da00d9de1bfd",
"sha256": "171280be02fb23d96cef1c66a9a19db2fb4f5405300b961c6efcf5a6ee599eed"
},
"downloads": -1,
"filename": "rapidapi_mcp_server-1.3.1.tar.gz",
"has_sig": false,
"md5_digest": "d0ef86fcd33856e0c925da00d9de1bfd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 25601,
"upload_time": "2025-08-25T02:59:38",
"upload_time_iso_8601": "2025-08-25T02:59:38.322806Z",
"url": "https://files.pythonhosted.org/packages/f9/95/9ad9446d486638c49bfe562864b8958659bcc472e872f56361402c4d4523/rapidapi_mcp_server-1.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-25 02:59:38",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "andrewlwn77",
"github_project": "rapidapi-mcp-server",
"github_not_found": true,
"lcname": "rapidapi-mcp-server"
}