网络研究助理MCP服务器
 ](https://pypi.org/project/web-research-assistant/)  
提供web研究和发现功能的综合模型上下文协议(MCP)服务器。 包含 13工具, 4资源,以及 5个提示 用于搜索、抓取和分析web内容,由您本地的Docker SearXNG提供支持
web_search--通过SearXNG跨多个引擎进行联合搜索search_examples--查找代码示例、教程和文章(默认为最新内容)search_images--通过Pixabay查找高质量的库存照片、插图和矢量图crawl_url--使用高级爬行进行整页内容提取package_info--来自npm、PyPI、crates.io、Go的详细包元数据package_search--按关键字和功能发现包github_repo--存储库健康指标和开发活动translate_error--从stack Overflow中查找错误消息和堆栈跟踪的解决方案(自动检测CORS、fetch和web错误)api_docs-自动搜索和抓取API官方文档及示例(适用于任何API-无硬编码URL)extract_data--通过自动检测从网页中提取结构化数据(表、列表、字段、JSON-LD)compare_tech--将技术与NPM下载、GitHub stars和方面分析(React与Vue、PostgreSQL与MongoDB等)并排比较get_changelog— 新 获取带有中断更改检测的发行说明和更改日志(从版本X安全升级到Y)check_service_status— 新 对超过25种服务(Stripe、AWS、GitHub、OpenAI等)进行即时健康检查——“是宕机还是只有我?”
所有工具都具有全面的错误处理、响应大小限制、使用跟踪和清晰的文档 以实现最佳的AI代理集成。
MCP资源(直接数据查找)
package://{registry}/{name}-来自npm、PyPI、crates.io或Go模块的包信息github://{owner}/{repo}-存储库信息和健康指标status://{service}-120+项服务的服务健康状况changelog://{registry}/{package}-软件包发布说明和变更日志
MCP提示(可重用工作流)
research_package-综合包评估debug_error-结构化错误调试及解决方案compare_technologies-并排技术比较evaluate_repository-GitHub存储库健康评估check_service_health-多业务状态监控
快速开始
选项1:完整的Docker设置(推荐)
一切都在Docker中运行-不需要安装Python:
./docker-start.sh这将在容器中启动SearXNG和MCP服务器。看 了解详情。
选项2:Python+Docker SearXNG
- 设置SearXNG (5分钟):
# Using Docker (recommended)
docker run -d -p 2288:8080 searxng/searxng:latest然后配置搜索引擎-请参阅 SEARXNG_SETUP.md 优化设置。
- 安装MCP服务器:
uvx web-research-assistant # or: pip install web-research-assistant- 配置Claude桌面版 -添加到
claude_desktop_config.json:
{
"mcpServers": {
"web-research-assistant": {
"command": "uvx",
"args": ["web-research-assistant"]
}
}
}- 重新启动克劳德桌面 开始研究吧!
⚠️ 为了最佳效果:使用GitHub、Stack Overflow和其他以代码为中心的搜索引擎配置SearXNG。看 SEARXNG_SETUP.md 对于推荐的配置。
先决条件
必需的
- Python 3.10+
- 正在运行的SearXNG实例 上
http://localhost:2288
- 📖 看 SEARXNG_SETUP.md 获取完整的Docker设置指南 - ⚠️ 重要:为了获得最佳结果,请在SearXNG中启用这些搜索引擎: - GitHub,堆栈溢出,GitLab (用于代码搜索-至关重要!) - 鸭子,勇敢 (用于网络搜索) - MDN,维基百科 (用于文件编制) - Reddit、HackerNews (用于教程和讨论) - 看 SEARXNG_SETUP.md 用于完全优化的配置
可选的
- Exa API密钥 用于神经搜索- 获取API密钥 (推荐以获得更好的搜索结果)
- Pixabay API密钥 用于图像搜索- 获取免费密钥
- 剧作家浏览器 用于高级爬行(自动安装
crawl4ai-setup)
开发人员设置程序(如果从源代码运行)
uv tool install uv # if you do not already have uv
uv sync # creates the virtual environment
uv run crawl4ai-setup # installs Chromium for crawl4ai您还可以使用 pip install -r requirements.txt 如果你更喜欢pip而不是uv。安装
选项1:使用uvx(推荐-无需安装!)
uvx web-research-assistant这将直接从PyPI运行服务器,而无需全局安装。
选项2:使用pip安装
pip install web-research-assistant
web-research-assistant选项3:使用uv进行安装
uv tool install web-research-assistant
web-research-assistant默认情况下,服务器通过stdio进行通信,这使得连接到 Claude Desktop或任何其他MCP主机。
MCP客户端配置
克劳德桌面版
增添 ~/Library/Application Support/Claude/claude_desktop_config.json:
选项1:使用uvx(推荐-无需安装!)
{
"mcpServers": {
"web-research-assistant": {
"command": "uvx",
"args": ["web-research-assistant"]
}
}
}选项2:使用已安装的软件包
{
"mcpServers": {
"web-research-assistant": {
"command": "web-research-assistant"
}
}
}开源代码
增添 ~/.config/opencode/opencode.json:
使用uvx(推荐)
{
"mcp": {
"web-research-assistant": {
"type": "local",
"command": ["uvx", "web-research-assistant"],
"enabled": true
}
}
}使用已安装的软件包
{
"mcp": {
"web-research-assistant": {
"type": "local",
"command": ["web-research-assistant"],
"enabled": true
}
}
}开发(从源代码运行)
对于Claude Desktop:
{
"mcpServers": {
"web-research-assistant": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/web-research-assistant",
"run",
"web-research-assistant"
]
}
}
}对于OpenCode:
{
"mcp": {
"web-research-assistant": {
"type": "local",
"command": [
"uv",
"--directory",
"/ABSOLUTE/PATH/TO/web-research-assistant",
"run",
"web-research-assistant"
],
"enabled": true
}
}
}重新启动MCP客户端 之后。MCP工具将立即可用。
工具行为
| 工具 | 何时使用 | 参数 |
|---|---|---|
web_search | 首先使用从SearXNG收集最新信息和网址。返回1-10个带有可点击URL的排名片段 | query (必填), reasoning (必填),可选 category (默认为 general),以及 max_results (默认为5)。 |
search_examples | 查找代码示例、教程和技术文章。针对技术内容进行了优化,具有可选的时间过滤功能。非常适合学习API或查找使用模式。 | query (必填,例如“Python异步示例”), reasoning (必填), content_type (代码/文章/两者,默认为两者), time_range (天/周/月/年/全部,默认为全部),可选 max_results (默认为5)。 |
search_images | 从Pixabay查找高质量的免版税库存图像。返回照片、插图或矢量。需要 PIXABAY_API_KEY 环境变量。 | query (必填,例如“山地景观”), reasoning (必填), image_type (全部/照片/插图/矢量,默认为全部), orientation (全部/水平/垂直,默认为全部),可选 max_results (默认为10)。 |
crawl_url | 当您需要实际的文章正文进行引用、总结或提取数据时,请在搜索后立即致电。 | url (必填), reasoning (必填),可选 max_chars (默认为8000个字符)。 |
package_info | 查找特定的npm、PyPI、crates.io或Go包元数据,包括版本、下载、许可证和依赖关系。当您知道包名称时使用。 | name (所需的包名称), reasoning (必填), registry (npm/pypi/crates/go,默认为npm)。 |
package_search | 按关键字或功能搜索包(例如,“web框架”、“json解析器”)。当您需要查找解决特定问题的软件包时使用。 | query (所需搜索词), reasoning (必填), registry (npm/pypi/crates/go,默认为npm),可选 max_results (默认为5)。 |
github_repo | 获取GitHub存储库健康指标,包括星级、分叉、问题、最近提交和项目详细信息。在评估开源项目时使用。 | repo (必填,所有者/仓库或完整URL), reasoning (必填),可选 include_commits (默认为true)。 |
translate_error | 查找错误消息和堆栈跟踪的堆栈溢出解决方案。自动检测语言/框架,提取关键术语(CORS、map、undefined等),过滤不相关的结果,并对堆栈溢出解决方案进行优先级排序。处理特定于web的错误(CORS、fetch)。 | error_message (所需的堆栈跟踪或错误文本), reasoning (必填),可选 language (自动检测),可选 framework (自动检测),可选 max_results (默认为5)。 |
api_docs | 自动搜索和抓取API官方文档。使用模式(docs.{api}.com、{api}.com/docs等)动态查找文档URL,搜索特定主题,抓取页面,并提取概述、参数、示例和相关链接。适用于任何API-无硬编码URL。非常适合API集成和学习。 | api_name (必填,例如“条纹”、“反应”), topic (必填,例如“创建客户”、“钩子”), reasoning (必填),可选 max_results (默认为2页)。 |
extract_data | 从HTML页面中提取结构化数据。支持表、列表、字段(通过CSS选择器)、JSON-LD和自动检测。返回干净的JSON输出。比解析整页文本更有效。非常适合抓取定价表、包装规格、发行说明或任何结构化内容。 | url (必填), reasoning (必填), extract_type (表/列表/字段/json-ld/auto,默认为auto),可选 selectors (字段模式的CSS选择器),可选 max_items (默认为100)。 |
compare_tech | 并排比较2-5种技术。自动检测类别(框架/数据库/语言),并从NPM、GitHub和网络搜索中收集数据。返回与流行度指标(下载量、星级)、性能见解和最佳使用摘要的结构化比较。快速并行处理(3-4s)。 | technologies (需要2-5个名字的列表), reasoning (必填),可选 category (如果未提供,则自动检测),可选 aspects (按类别自动选择),可选 max_results_per_tech (默认为3)。 |
get_changelog | 新 获取软件包升级的发行说明和变更日志。获取GitHub发布,突出显示突破性更改,并提供升级建议。答案“X版本中发生了什么变化→ “是吗?”和“有突破性的变化吗?”?“非常适合规划依赖关系更新 | package (必填名称), reasoning (必填),可选 registry (npm/pypi/auto,默认为auto),可选 max_releases (默认为5)。 |
check_service_status | 新 立即检查外部服务是否遇到问题。涵盖25多种流行服务(Stripe、AWS、GitHub、OpenAI、Vercel等)。返回操作状态、当前事件和组件运行状况。对于生产调试至关重要——立即知道问题是否是外部的。响应时间\<2s。 | service (必填名称,例如“stripe”、“aws”), reasoning (必填)。 |
结果会自动修剪(默认为8KB),以便它们在MCP中保持良好状态 响应期望。如果发生截断,文本将以一条注释结束,提醒 更多细节可应要求提供。
资源
MCP资源通过URI模板提供直接的数据访问,非常适合在没有工具调用的情况下进行快速查找。
| 资源URI | 描述 | 示例 |
|---|---|---|
package://{registry}/{name} | 包元数据(版本、下载、许可证、依赖关系) | package://npm/express |
github://{owner}/{repo} | 存储库信息(星、叉、问题、活动) | github://facebook/react |
status://{service} | 服务健康状态 | status://stripe |
changelog://{registry}/{package} | 发行说明和变更日志 | changelog://npm/typescript |
提示
MCP Prompts是可重用的消息模板,可指导AI助手完成常见的工作流程。
| 提示 | 参数 | 用例 |
|---|---|---|
research_package | package_name, registry | 在将包添加为依赖项之前对其进行评估 |
debug_error | error_message, language (可选), framework (可选) | 使用上下文和解决方案调试错误 |
compare_technologies | tech1, tech2, tech3 (可选), tech4 (可选), tech5 (可选) | 比较框架、数据库或语言 |
evaluate_repository | owner, repo | 评估GitHub项目的健康状况和活动 |
check_service_health | services (逗号分隔) | 同时监视多个服务 |
配置
环境变量允许您在不接触代码的情况下调整服务器:
| 变量 | 默认值 | 描述 |
|---|---|---|
SEARXNG_BASE_URL | http://localhost:2288/search | 查询的端点 web_search. |
SEARXNG_DEFAULT_CATEGORY | general | 未提供时使用的类别。 |
SEARXNG_DEFAULT_RESULTS | 5 | 默认搜索点击数。 |
SEARXNG_MAX_RESULTS | 10 | 严格限制每次请求的点击次数。 |
SEARXNG_CRAWL_MAX_CHARS | 8000 | 默认字符预算 crawl_url. |
MCP_MAX_RESPONSE_CHARS | 8000 | 对每个工具回复应用总体响应限制。 |
SEARXNG_MCP_USER_AGENT | web-research-assistant/0.1 | 用于对外HTTP调用的User-Agent标头。 |
PIXABAY_API_KEY | _(空)_ | Pixabay图像搜索的API键。获取免费钥匙 pixabay.com/api/docs. |
EXA_API_KEY | _(空)_ | 用于Exa AI神经搜索的API密钥。获取钥匙 dashboard.exa.ai. |
SEARCH_PROVIDER | auto | 搜索提供商: exa (仅限考试), searxng (仅限SearXNG),或 auto (先尝试Exa,然后回退到SearXNG)。 |
MCP_USAGE_LOG | ~/.config/web-research-assistant/usage.json | 使用分析数据的位置。 |
发展
代码库有意进行模块化和组织:
web-research-assistant/
├── src/searxng_mcp/ # Source code
│ ├── config.py # Configuration and environment
│ ├── search.py # SearXNG integration
│ ├── exa.py # Exa AI neural search client
│ ├── crawler.py # Crawl4AI wrapper
│ ├── images.py # Pixabay client
│ ├── registry.py # Package registries (npm, PyPI, crates, Go)
│ ├── github.py # GitHub API client
│ ├── errors.py # Error parser (language/framework detection)
│ ├── api_docs.py # API docs discovery (NO hardcoded URLs)
│ ├── tracking.py # Usage analytics
│ └── server.py # MCP server + 13 tools
├── docs/ # Documentation (27 files)
└── [config files]每个模块少于400行,使代码库易于理解和扩展。
使用情况分析
所有工具都会自动跟踪使用指标,包括:
- 工具调用次数和成功率
- 响应时间和性能趋势
- 常见用例模式(通过
reasoning参数) - 错误频率和类型
分析数据存储在 ~/.config/web-research-assistant/usage.json 并且可以进行分析 优化工具使用并识别模式。每个工具都需要一个 reasoning 参数 这有助于对使用工具的原因进行分类,从而实现更好的分析和见解。
注: 截至最新更新 reasoning 参数为 必需的 适用于所有工具(以前默认情况下为可选)。这确保了有意义的分析数据收集。
文档
综合文档可在 docs/ 目录:
请参阅 文档自述 完整的索引。
