基于MCP协议的Metaso AI搜索引擎服务器
Project description
MCP Metaso
一个基于 MCP (Model Context Protocol) 的 Metaso AI 搜索引擎服务器,使用官方 FastMCP SDK 构建。现已支持 uvx 包管理!
✨ 功能特性
- 🔍 多维搜索:支持网页、文库、学术、图片、视频、播客六种搜索类型
- 📄 网页解析:提取网页内容并转换为 Markdown 或 JSON 格式
- ⚡ 高性能:基于 FastMCP SDK,异步处理,类型安全
- 🔌 标准兼容:完全符合 MCP 协议规范,可与 Claude Desktop 等客户端集成
- 📦 uvx 支持:可通过 uvx 直接运行,无需本地安装
- 🛠️ 模块化设计:清晰的包结构,易于扩展和维护
🚀 快速开始
方式一:使用 uvx(推荐)
# 直接运行服务器
uvx mcp-metaso server
# 测试搜索功能
uvx mcp-metaso test-search "人工智能发展趋势"
# 测试网页解析
uvx mcp-metaso test-reader "https://example.com"
# 查看配置信息
uvx mcp-metaso config
方式二:传统安装
# 安装包
pip install mcp-metaso
# 配置 API 密钥
export METASO_API_KEY="your-api-key-here"
# 启动服务器
mcp-metaso server
# 或者使用 Python 模块
python -m mcp_metaso.server
方式三:开发模式
# 克隆项目
git clone <repository-url>
cd mcp-metaso
# 安装开发依赖
pip install -e .[dev]
# 运行测试
python -m mcp_metaso.tests
# 启动服务器
python -m mcp_metaso.cli server
🔧 Claude Desktop 集成
使用 uvx(推荐方式)
使用 uvx 可以让 Claude Desktop 集成变得更加简单和可靠:
{
"mcpServers": {
"mcp-metaso": {
"command": "uvx",
"args": ["mcp-metaso", "server"],
"env": {
"METASO_API_KEY": "your-api-key-here"
}
}
}
}
传统安装方式
如果您已经安装了包,可以使用以下配置:
{
"mcpServers": {
"mcp-metaso": {
"command": "mcp-metaso-server",
"env": {
"METASO_API_KEY": "your-api-key-here"
}
}
}
}
开发模式配置
对于开发环境,可以使用项目提供的启动脚本:
{
"mcpServers": {
"mcp-metaso": {
"command": "python",
"args": ["/path/to/mcp-metaso/run.py", "server"],
"env": {
"METASO_API_KEY": "your-api-key-here"
}
}
}
}
或者使用 PYTHONPATH 方式:
{
"mcpServers": {
"mcp-metaso": {
"command": "python",
"args": ["-m", "mcp_metaso.server"],
"env": {
"METASO_API_KEY": "your-api-key-here",
"PYTHONPATH": "/path/to/mcp-metaso/src"
}
}
}
}
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
验证配置
安装完成后,验证配置是否正确:
# 使用 uvx 验证
uvx mcp-metaso config
# 测试搜索功能
uvx mcp-metaso test-search "测试查询"
# 运行完整测试套件
uvx mcp-metaso --help
故障排除
如果Claude Desktop没有显示🔨图标:
- 重启Claude Desktop - 配置更改需要重启应用
- 检查命令 - 确保
uvx或mcp-metaso-server命令可用 - 验证API密钥 - 确保METASO_API_KEY已正确设置
- 查看日志 - 检查Claude Desktop日志文件夹中的错误信息
- 测试命令 - 在终端中手动运行配置的命令确保其工作正常
📖 可用工具
metaso_search
多维搜索工具,支持六种搜索类型:
metaso_search(
query="人工智能发展趋势", # 搜索查询词
scope="webpage", # 搜索类型:webpage/document/scholar/image/video/podcast
include_summary=False, # 是否包含 AI 摘要
size=10 # 结果数量 (1-20)
)
搜索类型说明:
webpage- 网页搜索:新闻、博客、资讯document- 文库搜索:PDF 文档、技术文档scholar- 学术搜索:论文、研究文献image- 图片搜索:图片、图表、插图video- 视频搜索:教程、演讲、娱乐内容podcast- 播客搜索:音频节目、访谈
metaso_reader
网页内容解析工具:
metaso_reader(
url="https://example.com", # 网页 URL
output_format="markdown" # 输出格式:markdown/json
)
📁 项目结构
mcp-metaso/
├── src/
│ └── mcp_metaso/ # 主包目录
│ ├── __init__.py # 包初始化和导出
│ ├── __main__.py # 模块主入口点
│ ├── config.py # 配置管理模块
│ ├── server.py # MCP服务器实现
│ ├── cli.py # 命令行接口
│ ├── formatters.py # 搜索结果格式化器
│ ├── utils.py # 实用工具函数
│ └── tests.py # 测试模块
├── run.py # 开发启动脚本(无需安装)
├── pyproject.toml # 项目配置和依赖
├── requirements.txt # 兼容性依赖文件
├── test_all_scopes.py # 兼容性测试脚本
├── LICENSE # 开源许可证
└── README.md # 项目说明文档
模块说明
__init__.py: 包初始化文件,定义包的公共接口和版本信息__main__.py: 模块主入口点,支持python -m mcp_metaso运行方式config.py: 配置管理模块,支持环境变量配置和验证server.py: FastMCP服务器实现,提供搜索和解析工具cli.py: 命令行接口,支持服务器启动、测试等功能formatters.py: 搜索结果格式化器,支持多种搜索类型utils.py: 实用工具函数,包括验证、格式化、错误处理等tests.py: 完整的测试套件,支持单元测试和集成测试run.py: 开发启动脚本,无需安装包即可运行,方便开发和调试
🔨 开发
环境要求
- Python 3.11+
- Metaso API Key
- uvx (推荐) 或 pip
本地开发设置
# 克隆仓库
git clone https://github.com/HundunOnline/mcp-metaso.git
cd mcp-metaso
# 方式1: 使用 uvx 进行开发(推荐)
uvx --from . mcp-metaso --help
# 方式2: 传统方式安装开发依赖
pip install -e ".[dev]"
# 方式3: 使用启动脚本(无需安装)
python run.py --help
# 设置环境变量
export METASO_API_KEY="your-api-key-here"
# 运行测试(根据安装方式选择)
python run.py config # 使用启动脚本
# 或
python -m mcp_metaso.tests # 需要设置PYTHONPATH
# 启动开发服务器
python run.py server # 使用启动脚本
# 或
PYTHONPATH=src python -m mcp_metaso.server # 使用模块方式
测试功能
# 使用 uvx 测试
uvx --from . mcp-metaso test-search "测试查询"
uvx --from . mcp-metaso test-reader "https://example.com"
uvx --from . mcp-metaso config
# 使用启动脚本(推荐开发时使用)
python run.py test-search "测试查询"
python run.py test-reader "https://example.com"
python run.py config
# 或者使用 Python 模块(需要设置PYTHONPATH)
PYTHONPATH=src python -m mcp_metaso test-search "测试查询"
PYTHONPATH=src python -m mcp_metaso test-reader "https://example.com"
PYTHONPATH=src python -m mcp_metaso config
# 运行完整测试套件
python run.py --help # 查看所有可用命令
代码质量
# 格式化代码
black src/
# 排序导入
isort src/
# 类型检查
mypy src/
# 运行所有质量检查
python -c "import subprocess; subprocess.run(['black', 'src/']); subprocess.run(['isort', 'src/']); subprocess.run(['mypy', 'src/'])"
构建和发布
# 构建包
python -m build
# 检查包
twine check dist/*
# 发布到PyPI
twine upload dist/*
# 使用 uvx 测试已发布的包
uvx mcp-metaso --help
添加新功能
使用 FastMCP 装饰器可以轻松添加新工具:
@mcp.tool()
async def new_tool(param: str) -> str:
"""新工具描述
Args:
param: 参数描述
"""
# 实现逻辑
return result
📄 许可证
本项目采用 MIT 许可证。
🤝 贡献
欢迎提交 Issue 和 Pull Request!
🔗 相关链接
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_metaso-0.2.0.tar.gz.
File metadata
- Download URL: mcp_metaso-0.2.0.tar.gz
- Upload date:
- Size: 17.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
845960c7e7f370a8a3ad8e95200aeb91effbf892f170d5cbded975d933d5f278
|
|
| MD5 |
c8a1b22223120d1d95c2368ccc4b4d53
|
|
| BLAKE2b-256 |
605c19c04ca696f494fb1144a84754ca5cae282ce436336c9af57cc35bd8c7f7
|
File details
Details for the file mcp_metaso-0.2.0-py3-none-any.whl.
File metadata
- Download URL: mcp_metaso-0.2.0-py3-none-any.whl
- Upload date:
- Size: 20.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a191ff42521bf951bbd7c897ca6ffae3f6d8770564b17e66fbe3a74738092473
|
|
| MD5 |
bcd82be31ee834723b7d9d731269850c
|
|
| BLAKE2b-256 |
e0e00962e2908c26a28b3312116146181deb0c0677a0acb29e7d70bab26dd34b
|