Indico MCP服务器原型
一种模型上下文协议(MCP)服务器,提供对CERN Indico公共事件的访问。 https://github.com/indico/indico
特性
- 搜索CERN即将举行的公共活动
- 获取详细的事件信息
- 按日期范围、类别和关键字筛选
- 内置缓存以提高性能
- 仅限公共活动 (无需身份验证)
项目结构
indico-mcp/
├── main.py # Main entry point
├── requirements.txt # Python dependencies
├── .env.example # Environment variables template
├── .gitignore
│
├── src/ # Source code package
│ ├── __init__.py
│ ├── server.py # MCP server implementation
│ ├── client.py # Indico API client
│ ├── config.py # Configuration management
│ ├── models.py # Data models and normalizers
│ └── utils.py # Utility functions
│
├── scripts/ # Setup and utility scripts
│ ├── setup.sh # Linux/macOS setup script
│ └── setup.bat # Windows setup script
│
└── config/ # Configuration examples
├── server_config.example.json
└── server_config.windows.example.json快速开始
1.设置
Linux/macOS:
./scripts/setup.sh窗户:
scripts\setup.bat2.跑步
直接执行:
python main.pyMCP检查员(用于测试):
npx @modelcontextprotocol/inspector .venv/bin/python main.py窗户:
.venv\Scripts\python.exe main.py可用工具
1. search_events
按关键字搜索即将举行的CERN Indico公开活动。
参数:
keyword(str):在事件标题中搜索的文本limit(int,可选):最大结果(默认值:10,最大值:500)category_id(int,可选):Indico类别ID(默认值:0=全部)days_ahead(int,可选):展望未来的天数(默认值:30)from_date(str,可选):开始日期YYYY-MM-DDto_date(str,可选):结束日期YYYY-MM-DD
例子:
search_events("machine learning", limit=5)2. get_event_details
获取特定公开Indico事件的详细信息。
参数:
event_id(int):数字标记事件ID
例子:
get_event_details(1234567)3. upcoming_public
列出欧洲核子研究中心即将举行的公开活动。
参数:
days(int,可选):展望未来的天数(默认值:7)limit(int,可选):最大事件数(默认值:10,最大值:500)category_id(int,可选):Indico类别ID(默认值:0=全部)from_date(str,可选):开始日期YYYY-MM-DDto_date(str,可选):结束日期YYYY-MM-DD
例子:
upcoming_public(days=14, limit=20)4. server_status
获取服务器状态和配置信息。
例子:
server_status()配置
环境变量(可选)
您可以通过创建 .env 文件:
INDICO_BASE_URL=https://indico.cern.ch
LOG_LEVEL=INFO
ENABLE_CACHE=true
CACHE_SIZE=128注意:此服务器仅访问公共事件。出于安全目的,已禁用身份验证。
MCP客户端配置
对于Claude Desktop或其他MCP客户端,请使用以下配置 config/server_config.example.json:
{
"servers": [
{
"name": "indico",
"command": "python",
"args": ["main.py"],
"env": {},
"enabled": true
}
]
}发展
运行测试
source .venv/bin/activate
python -m pytest tests/需求
- Python 3.8+
- fastmcp
- 请求:
- python dotenv
许可证
麻省理工学院
支持
- 在GitHub上报告问题
- 查看CERN Indico文件:https://indico.cern.ch/
