ScoutMCP
An MCP discovery and installation engine that enables users to search for, install, and manage Model Context Protocol servers via the Smithery Registry. It provides atomic tools for managing MCP configurations and is specifically designed to be orchestrated by Claude Code.
README
MCP Scout
A simple MCP discovery and installation engine designed to be orchestrated by Claude Code.
MCP Scout provides atomic operations for searching, installing, and managing MCPs without making assumptions about tools or workflows. All intelligence and preferences are handled by Claude Code.
What This Does
MCP Scout is basically a search engine for MCPs (Model Context Protocol servers). Instead of trying to be smart about what you want, it just gives you raw search results from the Smithery Registry and lets you (or Claude) decide what to do with them.
Getting Started
What You Need
- Python 3.10 or higher (FastMCP requires Python 3.10+)
- A Smithery API key (grab one at smithery.ai)
- Claude CLI installed
First, check your Python version:
python --version # Should show 3.10+
# If that doesn't work, try: python3 --version
The Easy Way (Two Steps)
⚠️ Important: The Claude CLI doesn't remember environment variables between sessions, so you'll need to add your API key manually.
- Install ScoutMCP:
claude mcp add ScoutMCP -- python /path/to/ScoutMCP/server.py
- Add your API key:
Open your Claude config file (
~/.config/claude/claude_config.json) and find the ScoutMCP entry. Add your API key like this:
{
"mcpServers": {
"ScoutMCP": {
"type": "stdio",
"command": "python",
"args": ["/path/to/ScoutMCP/server.py"],
"env": {
"SMITHERY_API_KEY": "your_smithery_api_key_here"
}
}
}
}
- Restart Claude to pick up the new config.
Alternative Ways to Install
Option A: Wrapper Script (Easiest)
Create a simple script that includes your API key:
- Create
scout_wrapper.sh:
#!/bin/bash
export SMITHERY_API_KEY="your_smithery_api_key_here"
python /path/to/ScoutMCP/server.py
- Make it runnable and install:
chmod +x scout_wrapper.sh
claude mcp add ScoutMCP -- ./scout_wrapper.sh
Option B: System Environment Variable
Add this to your shell profile (~/.zshrc or ~/.bashrc):
export SMITHERY_API_KEY="your_smithery_api_key_here"
Then restart your terminal and install normally:
claude mcp add ScoutMCP -- python /path/to/ScoutMCP/server.py
Manual Installation
# Clone the repo
git clone https://github.com/yudduy/ScoutMCP.git
cd mcp-scout
# Install Python dependencies (make sure you're using Python 3.10+)
pip install -r requirements.txt
# Install ScoutMCP
claude mcp add ScoutMCP -- python /full/path/to/server.py
# Then manually add API key to Claude config as shown above
When Things Go Wrong
"ModuleNotFoundError: No module named 'fastmcp'"
This usually means FastMCP isn't installed or you're using the wrong Python version.
First, check your Python version:
python --version # Must be 3.10+
If that's not the issue, try installing with the right Python:
# Find your Python 3.10+ installation
which python3.10 # or python3.11, python3.12, etc.
# Install dependencies with the correct Python
/path/to/python3.10 -m pip install -r requirements.txt
# Update your Claude config to use the right Python path
If you have Anaconda:
# Install with Anaconda Python
/opt/anaconda3/bin/pip install -r requirements.txt
# Update Claude config to use Anaconda Python
"command": "/opt/anaconda3/bin/python"
"Failed to connect" Error
This almost always means your API key isn't set up right.
Check your config:
Look at your ~/.config/claude/claude_config.json file and make sure it has:
{
"mcpServers": {
"ScoutMCP": {
"env": {
"SMITHERY_API_KEY": "your_actual_key_here"
}
}
}
}
Test the server manually:
export SMITHERY_API_KEY="your_key"
python /path/to/server.py
You should see the FastMCP startup screen without any errors.
Check the server path: Make sure the path in your Claude config actually points to the server.py file:
ls -la /path/to/ScoutMCP/server.py # Should exist
Python Path Issues
Find the right Python:
# Check all Python versions on your system
ls -la /usr/bin/python*
ls -la /opt/anaconda3/bin/python*
# Test which one has fastmcp installed
/path/to/python -c "import fastmcp; print('FastMCP available')"
Update your Claude config with the right path:
{
"mcpServers": {
"ScoutMCP": {
"command": "/correct/path/to/python",
"args": ["/path/to/server.py"]
}
}
}
Environment Variables
SMITHERY_API_KEY: Your Smithery Registry API key (required)
The Tools
Search Tools
search_registry
Pure semantic search of the Smithery Registry. No interpretation, just raw results.
Parameters:
query(string): Your exact search termlimit(int, optional): Max results to return (default: 10)filters(dict, optional): Smithery API filters (is_deployed, is_verified, owner, etc.)
Returns:
- Raw search results from Smithery with status and results array
get_mcp_info
Get the full details about a specific MCP.
Parameters:
qualified_name(string): The exact MCP identifier
Returns:
- Complete MCP details including connections and deployment info
Installation Tools
install_mcp
Install a single MCP.
Parameters:
qualified_name(string): MCP to installinstall_command(string, optional): Override the install commandtimeout_seconds(int, optional): How long to wait for installation (default: 60)
Returns:
- Installation status and output
verify_installation
Check if an MCP is properly installed and working.
Parameters:
qualified_name(string): MCP to verify
Returns:
- Verification status and config path
Management Tools
list_installed
Show all the MCPs currently installed in your Claude config.
Returns:
- List of installed MCPs with their configurations
uninstall_mcp
Remove an MCP from your Claude configuration.
Parameters:
qualified_name(string): MCP to remove
Returns:
- Removal status
Old Tools (Don't Use These)
setup_mcp ⚠️ DEPRECATED
Simple wrapper around the atomic tools. Use search_registry, install_mcp, verify_installation instead.
discover_mcps ⚠️ DEPRECATED
Old discovery tool. Use search_registry for direct semantic search instead.
How to Use It
Basic Workflow
1. Search for MCPs
# Simple search
search_registry("testing tools")
# Search with filters
search_registry("database", filters={"is_deployed": True})
# Specific search
search_registry("react development")
2. Install an MCP
# Search first
results = search_registry("python linter", limit=1)
if results["status"] == "success" and results["results"]:
qualified_name = results["results"][0]["qualified_name"]
# Install it
install_mcp(qualified_name)
# Make sure it worked
verify_installation(qualified_name)
3. Manage Your MCPs
# See what's installed
list_installed()
# Remove something you don't want
uninstall_mcp("some-mcp-name")
Real-World Examples
Example 1: Finding Testing Tools for a React Project
# Step 1: Claude Code figures out what to search for based on what you asked
user_request = "I need testing tools for my React TypeScript project"
# Step 2: Search with specific queries
search_results = []
for query in ["react testing", "typescript test", "component testing"]:
result = search_registry(query, limit=3)
search_results.append(result)
# Step 3: Claude Code looks at the results and shows you options
# Step 4: You pick what you want
# Step 5: Claude Code installs it for you
install_mcp("selected-mcp-qualified-name")
Example 2: Finding Database Tools
# Claude Code understands what you need and searches appropriately
queries = [
"postgresql client",
"database management",
"sql tools"
]
for query in queries:
results = search_registry(query, limit=2, filters={"is_verified": True})
# Claude Code processes the results and makes recommendations
Search by Concept, Not Just Names
Instead of looking for specific tool names, search for what you want to do:
- "code quality" → Finds linters, formatters, static analysis tools
- "web scraping" → Finds web crawling and data extraction tools
- "file operations" → Finds file system and file manipulation tools
- "api testing" → Finds HTTP clients, API testing frameworks
- "data processing" → Finds ETL, analytics, and data transformation tools
Handling Errors
# Search with error handling
result = search_registry("nonexistent tool")
if result["status"] == "error":
print(f"Search failed: {result['message']}")
# Claude Code can try different search terms
# Installation with error handling
install_result = install_mcp("some-mcp")
if install_result["status"] == "error":
error_code = install_result["error_code"]
if error_code == "INSTALL_TIMEOUT":
# Try again with more time
install_mcp("some-mcp", timeout_seconds=120)
Moving from the Old Tools
# Old way (don't use this anymore)
setup_mcp(query="python linter") # This will give you a deprecation warning
# New way (use this instead)
results = search_registry("python linter", limit=3)
# Claude Code looks at the options and your preferences
install_mcp(selected_qualified_name)
verify_installation(selected_qualified_name)
Working with Claude Code
For the best experience with Claude Code and getting good MCP recommendations, check out the complete prompt guide in PROMPT.md.
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。