Redmine MCP服务器
用于Redmine API集成的MCP(Model Context Protocol)服务器。此服务器允许AI代理(如Claude)与Redmine实例交互,以获取项目信息、票证和用户数据。
机能
- 🎫 票证管理:获取票证列表和获取详细信息
- 📁 项目访问:查看项目及其详细信息
- 👥 用户信息:查询用户详细信息和列表
- 🔒 安全认证:基于API密钥的身份验证
- ⚡ 非同期処理:无阻塞API调用以提高性能
- ✅ 型安全性:完整的数据完整性验证
前提条件
- Python 3.10以上
- 启用REST API的Redmine实例
- Redmine API访问密钥
安装
- 克隆存储库:
git clone
cd redmine-mcp-server- 创建虚拟环境并安装依赖关系:
# uv を使用(推奨)
uv venv
source .venv/bin/activate # Mac/Linuxの場合
uv pip install -e ".[dev]"
# または pip を使用
python -m venv .venv
source .venv/bin/activate # Mac/Linuxの場合
pip install -e ".[dev]"设定
- 复制示例环境文件:
cp .env.example .env.env编辑并配置Redmine连接:
REDMINE_URL=https://your-redmine.example.com
REDMINE_API_KEY=your_40_character_api_key_here
REDMINE_VERIFY_SSL=true
REDMINE_TIMEOUT=30如何获取Redmine API密钥
- 登录到注册实例
- 转到“个人设置”(右上)
- 单击右侧边栏中的“API访问密钥”
- 单击显示以显示API密钥
- 40个字符的键
.env复制到文件
使用方法
启动服务器
服务器作为使用stdio传输的MCP服务器运行。即,通过标准输入输出进行通信。由MCP客户端(Claude Desktop、Kiro等)启动。
您也可以直接运行测试:
# uv を使用(推奨)
PYTHONPATH=src uv run python -m redmine_mcp_server
# または仮想環境を有効化して実行
source .venv/bin/activate
PYTHONPATH=src python -m redmine_mcp_server注意:服务器在标准输入处等待MCP协议消息。请使用MCP客户端进行交互式测试。
MCP客户端设置
将服务器添加到MCP客户端设置中。具体位置因客户而异:
Kiro设定
~/.kiro/settings/mcp.json 或工作区中的 .kiro/settings/mcp.json 编辑:
{
"mcpServers": {
"redmine": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/redmine-mcp-server",
"run",
"python",
"-m",
"redmine_mcp_server"
],
"env": {
"PYTHONPATH": "src",
"REDMINE_URL": "https://your-redmine.example.com",
"REDMINE_API_KEY": "your_api_key_here"
}
}
}
}Claude Desktop设定
~/Library/Application Support/Claude/claude_desktop_config.json 编辑(macOS):
{
"mcpServers": {
"redmine": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/redmine-mcp-server",
"run",
"python",
"-m",
"redmine_mcp_server"
],
"env": {
"PYTHONPATH": "src",
"REDMINE_URL": "https://your-redmine.example.com",
"REDMINE_API_KEY": "your_api_key_here"
}
}
}
}重要: /absolute/path/to/redmine-mcp-server 将条目添加到文档注册表。
可用工具
服务器提供以下MCP工具:
list_issues
从Redmine获取票证列表。
参数:
project_id(可选):按项目标识筛选status_id(可选):按状态筛选('open','closed','\*')limit(可选):返回的票证数(默认值:25)offset(可选):页面偏移(默认值:0)
get_issue
获取特定票证的详细信息。
参数:
issue_id(必需):要获取的票证ID
list_projects
获取所有可访问的项目。
get_user
获取特定用户的信息。
参数:
user_id(必需):要检索的用户ID
list_users
获取所有可访问的用户。
开発
运行测试
# すべてのテストを実行
PYTHONPATH=src pytest
# カバレッジ付きで実行
PYTHONPATH=src pytest --cov=src --cov-report=html
# ユニットテストのみ実行
PYTHONPATH=src pytest tests/unit/
# プロパティベーステストのみ実行
PYTHONPATH=src pytest tests/property/
# 詳細出力
PYTHONPATH=src pytest -v编码质量
项目使用的工具:
- pytest 单元测试用
- 假设 用于基于属性的测试(每个属性100多个示例)
- 派丹蒂克 数据验证用
- 类型提示 整个代码库
当前测试覆盖率:约63%(98测试通过)
项目结构
redmine-mcp-server/
├── src/
│ └── redmine_mcp_server/
│ ├── __init__.py
│ ├── __main__.py # エントリポイント
│ ├── config.py # 設定管理
│ ├── client.py # Redmine APIクライアント
│ └── server.py # MCPツール定義
├── tests/
│ ├── unit/ # ユニットテスト
│ ├── property/ # プロパティベーステスト
│ └── conftest.py # 共有フィクスチャ
├── .env.example
├── pyproject.toml
└── README.md故障排除
找不到模块错误
ModuleNotFoundError: No module named 'redmine_mcp_server' 如果发生:
- 服务器运行时
PYTHONPATH=src进行调试 - 或在开发模式下安装软件包:
uv pip install -e .SSL证书错误
如果自签名证书出现SSL证书错误:
- 仅开发环境、可以禁用SSL验证:
REDMINE_VERIFY_SSL=false⚠️ 警告:这不安全,只在开发环境中使用!
- 更好的解决方案:将Redmine的CA证书添加到系统的信任存储库中。
验证错误
401Unauthorized错误:
- 验证API密钥是否正确(40个字符)
- 确认Redmine中已启用REST API(管理→设置→API)
- 验证用户帐户是否已启用API访问
- 尝试通过curl直接访问Redmine API:
curl -H "X-Redmine-API-Key: your_key" https://your-redmine.example.com/issues.json连接超时
如果请求超时:
.env增加超时值:
REDMINE_TIMEOUT=60- 确认到Redmine服务器的网络连接
- 验证Redmine URL是否正确访问
权限拒绝错误
403Forbidden错误:
- 确保用户具有对所请求资源的访问权限
- 检查Redmine的项目可见性设置
- 验证API密钥是否属于具有相应角色的用户
MCP客户端未检测到服务器
如果MCP客户端未检测到服务器:
- 验证MCP设置的绝对路径是否正确
uv已安装并确认包含在PATH中- 配置更改后重新启动MCP客户端
- 检查MCP客户端日志中的错误消息
许可证
麻省理工学院
分发
欢迎分享!请随意发送Pull Request。
