Indico MCP服务器
](https://badge.fury.io/js/indico-mcp-server)
一种模型上下文协议(MCP)服务器 索引,欧洲核子研究中心和世界各地其他研究机构使用的事件管理系统。此服务器使Claude Desktop和其他MCP客户端能够搜索、检索Indico事件、类别和数据,并与之交互。
快速开始
通过npx安装(推荐)
使用此服务器的最简单方法是使用npx:
npx indico-mcp-server全球安装
npm install -g indico-mcp-server
indico-mcp-serverClaude桌面集成
将此添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"indico": {
"command": "npx",
"args": ["indico-mcp-server"]
}
}
}VS代码+GitHub副本集成
将此添加到您的VS代码设置中(.vscode/settings.json 或用户设置):
{
"mcp.servers": {
"indico": {
"command": "npx",
"args": ["indico-mcp-server"],
"env": {
"INDICO_BASE_URL": "https://indico.cern.ch",
"INDICO_BEARER_TOKEN": "indp_your_token_here"
}
}
}
}备注:将敏感令牌存储在环境变量或VS Code机密中,以提高安全性。
特性
- 🔍 事件搜索:按日期、类别或关键字搜索事件
- 📅 活动详情:获取全面的活动信息,包括贡献和材料
- 🏢 品类管理:浏览和搜索事件类别
- 📄 文件访问:列出和访问事件附件和材料
- 🔐 安全认证:现代承载令牌身份验证
- 🌍 多实例支持:适用于任何Indico实例(CERN、大学等)
配置
服务器支持两种配置方法:
方法1:环境变量(VS代码/复制品)
设置这些环境变量或将其添加到MCP服务器配置中:
INDICO_BASE_URL-您的Indico实例URL(例如。,https://indico.cern.ch)INDICO_BEARER_TOKEN-用于身份验证的承载令牌(公共数据访问可选)
方法2:运行时配置(Claude Desktop)
使用 configure 通过您的MCP客户端使用工具:
{
"base_url": "https://indico.cern.ch",
"bearer_token": "indp_your_bearer_token_here" // optional for public data
}认证
获取您的持有者代币
服务器使用现代Bearer令牌身份验证来访问Indico API。承载令牌是API密钥,以 indp_ 前缀。
分步指南:
- 导航到您的Indico实例
- 转到您的Indico URL(例如。, https://indico.cern.ch) - 登录您的账户
- 访问API设置
- 点击您的个人资料图标(右上角) - 选择 偏好设置 - 转到 API 标签
- 创建新令牌
- 点击 创建令牌 - 给它一个描述性的名称(例如“MCP服务器访问”) - 选择所需范围: - ✅ read:legacy_api -搜索和阅读事件所需 - ✅ write:legacy_api -可选,仅当您需要创建活动或预订房间时 - ✅ read:user -可选,用于访问用户信息
- 复制您的令牌
- 您的令牌将以开头 indp_ - 立即复制,您将无法再次看到它 - 将其安全地存储在您的配置中
公共访问与身份验证访问
公共访问(无需令牌):
- 搜索公共活动
- 浏览公共类别
- 查看公共活动详细信息
- 访问公开可用的文件
经过身份验证的访问(需要令牌):
- 访问私人/受限活动
- 下载受保护的文件
- 创建新事件
- 预订房间
- 访问用户特定信息
令牌安全
⚠️ 重要安全注意事项:
- 从不将令牌提交到版本控制
- 将令牌存储在环境变量或安全配置文件中
- 令牌的访问级别与您的用户帐户相同
- 如果令牌被泄露,请立即撤销
- 为不同的应用程序创建单独的令牌
- 设置适当的范围-仅授予您需要的权限
示例配置
仅用于公共数据访问(不需要令牌):
{
"mcpServers": {
"indico": {
"command": "npx",
"args": ["indico-mcp-server"],
"env": {
"INDICO_BASE_URL": "https://indico.cern.ch"
}
}
}
}对于经过身份验证的访问:
{
"mcpServers": {
"indico": {
"command": "npx",
"args": ["indico-mcp-server"],
"env": {
"INDICO_BASE_URL": "https://indico.cern.ch",
"INDICO_BEARER_TOKEN": "indp_your_token_here"
}
}
}
}可用工具
核心工具
configure-设置服务器连接和身份验证get_user_info-获取当前用户信息search_events-搜索特定类别中的事件search_events_by_term-按关键字在所有类别中搜索事件get_event_details-获取特定事件的详细信息search_categories-搜索和浏览事件类别get_event_contributions-获取活动的贡献/演示文稿get_files-列出事件的所有文件和附件
用法示例
搜索活动
// Search in a specific category
search_events({
"category_id": "4",
"from_date": "2024-01-01",
"to_date": "2024-12-31",
"limit": 10
})
// Search by keyword
search_events_by_term({
"search_term": "machine learning",
"limit": 20
})获取活动详细信息
get_event_details({
"event_id": "1234567"
})浏览类别
search_categories({
"search_term": "physics"
})发展
从源头构建
git clone https://gitlab.cern.ch/epa-wp8-automate-equipment/project-astra/indico-mcp.git
cd indico-mcp
npm install
npm run build以开发模式运行
npm run dev测试
npm testAPI覆盖范围
此服务器实现最常用的Indico HTTP API端点:
- 导出API:
/export/categ/{id}.json,/export/event/{id}.json - 用户API:
/api/user/ - 搜索:跨事件和类别的全文搜索
- 文件访问:活动材料和附件
支持的Indico实例
此服务器适用于任何Indico实例,包括:
需求
- Node.js 18.0.0或更高版本
- 有效的印度API证书
- 对Indico实例的网络访问
安全
- 所有API凭据都得到安全处理,从不记录
- 对所有API通信强制使用HTTPS
- 每次请求时都会验证身份验证令牌
- 没有永久存储凭据-配置仅在内存中
故障排除
常见问题
- “服务器未配置” -跑吧
configure首先使用您的Indico凭据 - “身份验证失败” -检查API令牌并确保其具有所需的作用域
- “未找到事件” -验证事件ID,并检查您是否有权访问它
- “网络错误” -确保您的Indico实例URL正确且可访问
调试模式
设置 DEBUG 详细日志记录的环境变量:
DEBUG=indico-mcp-server npx indico-mcp-server贡献
欢迎投稿!请查看我们的 贡献指南 了解详情。
报告问题
如果您遇到任何问题,请在我们的 GitLab问题 页面。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
相关项目
更新日志
看 更改日志.md 查看更改和版本历史记录列表。
