EA论坛MCP服务器
提供对EA论坛内容访问的MCP(模型上下文协议)服务器。
特性
- 全文搜索 -使用Algolia强大的搜索引擎搜索EA论坛帖子
- 岗位检索 -获取完整的帖子内容,包括HTML和元数据
- 基于标签的搜索 -按特定EA相关标签搜索帖子
- 缓存 -内置TTL缓存以减少API调用
- 重试逻辑 -对失败的请求进行指数回退的自动重试
- 类型安全性 -完整的类型提示,以获得更好的开发体验
安装
- 克隆存储库:
git clone https://github.com/yourusername/ea-forum-mcp-server.git
cd ea-forum-mcp-server- 创建虚拟环境(推荐):
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- 安装依赖项:
pip install -r requirements.txt配置
- 复制示例环境文件:
cp .env.example .env- 编辑
.env如果需要(默认值应该可以正常工作)
使用示例
基本用途:人工智能安全研究总结
EA论坛MCP服务器可以帮助您快速收集和总结特定主题的内容。以下是一个搜索上个月AI安全帖子的示例:
服务器使用多种工具进行搜索、按日期过滤和检索完整的帖子内容,以生成全面的摘要:
高级用法1:基于EA论坛研究创建内容
您可以使用服务器研究现有内容,并根据成功的格式创建新帖子。此示例显示了如何基于LessRong AI安全审查格式创建“动物福利2024”审查:
Animal Welfare Research Example
结果是一篇结构良好的帖子,从多个EA论坛来源收集了见解:
高级用法2:黑客马拉松提案增强
服务器可以通过从EA论坛中查找相关研究和证据来帮助加强项目提案。以下是一个增强心理健康聊天机器人红队建议的示例:
服务器查找有关人工智能安全评估、心理健康干预和监管框架的相关帖子,以创建一个全面的提案:
用法
运行服务器
python -m src.server可用工具
1. search_posts
使用全文搜索搜索EA论坛帖子。
参数:
query(必填):搜索查询字符串date_range(可选):按时间段筛选(“天”、“周”、“月”、“年”)limit(可选):结果数量(默认值:10,最大值:100)page(可选):分页页码(从0开始)curated_only(可选):仅返回精选帖子(默认值:false)exclude_events(可选):排除事件帖子(默认值:true)
例子:
{
"tool": "search_posts",
"arguments": {
"query": "AI safety research",
"date_range": "week",
"limit": 20
}
}2. get_post
通过ID获取特定EA论坛帖子的完整内容。
参数:
post_id(必填):要检索的帖子ID
例子:
{
"tool": "get_post",
"arguments": {
"post_id": "o8zS7cLN5j3XviMFe"
}
}3. search_by_tag
通过特定的EA相关标签搜索帖子。
参数:
tag(必填):来自预定义列表的标签名称limit(可选):结果数量(默认值:30)
可用标签:
ai_safety-AI安全community-社区global_health-全球健康与发展biosecurity-生物安全career_choice-职业选择policy-政策funding-融资机会malaria-疟疾research-研究vaccines-疫苗
例子:
{
"tool": "search_by_tag",
"arguments": {
"tag": "ai_safety",
"limit": 10
}
}MCP客户端配置
要将此服务器与MCP客户端一起使用,请将其添加到客户端的配置中:
{
"mcpServers": {
"ea-forum": {
"command": "python",
"args": ["-m", "src.server"],
"cwd": "/path/to/ea-forum-mcp-server",
"env": {
"PYTHONPATH": "/path/to/ea-forum-mcp-server"
}
}
}
}注: PYTHONPATH 需要环境变量来帮助Python找到 src 模块。
发展
测试
该项目包括两个用于验证功能的测试脚本:
1.自动化测试套件(tests/test_server.py)
对所有服务器组件运行全面测试:
# From project root
python tests/test_server.py
# Or from tests directory
cd tests
python test_server.py此脚本测试:
- 具有各种过滤器的搜索功能
- 帖子内容检索
- 基于标签的搜索
- 缓存操作
- 错误处理
2.交互式测试客户端(tests/interactive_test.py)
为手动测试提供菜单驱动界面:
# From project root
python tests/interactive_test.py
# Or from tests directory
cd tests
python interactive_test.py特征:
- 用于测试每个工具的交互式菜单
- 自定义查询输入
- 实时结果显示
- 有助于在MCP集成之前探索API功能
建筑
服务器的结构如下:
src/server.py-主MCP服务器实现src/clients/-API客户端实现
- algolia_client.py -Algolia搜索API客户端 - graphql_client.py -用于发布内容的GraphQL API客户端
src/models/-类型定义
- types.py -API响应的TypedDict定义
src/utils/-实用模块
- cache.py -TTL缓存实现 - retry.py -使用指数回退重试装饰器
src/config/-配置管理
- settings.py -基于环境的设置
贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
致谢
- EA论坛
- Max从 更高效的团队 ❤️
