
Company News
AWS Security Hub Adds Socket for Supply Chain Security
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.
@duongkhuong/mcp-redmine
Advanced tools
MCP (Model Context Protocol) server cho phép AI agents truy cập Redmine API để lấy thông tin về tickets, projects, users và time entries.
get_issues - Lấy danh sách issues với filtersget_issue - Lấy chi tiết issue theo IDget_projects - Lấy danh sách projectsget_project - Lấy chi tiết project theo IDget_users - Lấy danh sách userssearch_issues - Tìm kiếm issues theo keywordget_time_entries - Lấy time entriescreate_issue - Tạo issue mớiupdate_issue - Cập nhật issueadd_comment - Thêm comment vào issuedelete_issue - Xóa issuenpm install -g @duongkhuong/mcp-redmine
git clone git@github.com:vfa-khuongdv/mcp_readmine.git
cd mcp_readmine
npm install
npm run build
Bạn cần cung cấp các biến môi trường sau:
REDMINE_URL - URL của Redmine instance (ví dụ: https://redmine.example.com)REDMINE_API_KEY - API key từ account settingsREDMINE_USERNAME - Username cho Basic AuthenticationREDMINE_PASSWORD - Password cho Basic AuthenticationLưu ý: Redmine API yêu cầu CẢ HAI Basic Auth (username/password) VÀ API Key để xác thực.
Thêm vào file cấu hình Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"redmine": {
"command": "npx",
"args": ["-y", "@duongkhuong/mcp-redmine"],
"env": {
"REDMINE_URL": "https://your-redmine-instance.com",
"REDMINE_API_KEY": "your_api_key_here",
"REDMINE_USERNAME": "your_username",
"REDMINE_PASSWORD": "your_password"
}
}
}
}
Restart Claude Desktop để load MCP server.
Thêm vào file cấu hình Cursor:
macOS/Linux: ~/.cursor/mcp.json
Windows: %APPDATA%\Cursor\User\mcp.json
{
"mcpServers": {
"redmine": {
"command": "npx",
"args": ["-y", "@duongkhuong/mcp-redmine"],
"env": {
"REDMINE_URL": "https://your-redmine-instance.com",
"REDMINE_API_KEY": "your_api_key_here",
"REDMINE_USERNAME": "your_username",
"REDMINE_PASSWORD": "your_password"
}
}
}
}
Restart Cursor để load MCP server.
Cách 1: Sử dụng file mcp.json (Không cần extension)
Tạo hoặc chỉnh sửa file cấu hình MCP:
macOS/Linux: ~/.vscode/mcp.json
Windows: %APPDATA%\Code\User\mcp.json
{
"mcpServers": {
"redmine": {
"command": "npx",
"args": ["-y", "@duongkhuong/mcp-redmine"],
"env": {
"REDMINE_URL": "https://your-redmine-instance.com",
"REDMINE_API_KEY": "your_api_key_here",
"REDMINE_USERNAME": "your_username",
"REDMINE_PASSWORD": "your_password"
}
}
}
}
Reload VS Code để load MCP server.
Cách 2: Sử dụng Cline Extension
{
"cline.mcpServers": {
"redmine": {
"command": "npx",
"args": ["-y", "@duongkhuong/mcp-redmine"],
"env": {
"REDMINE_URL": "https://your-redmine-instance.com",
"REDMINE_API_KEY": "your_api_key_here",
"REDMINE_USERNAME": "your_username",
"REDMINE_PASSWORD": "your_password"
}
}
}
}
Reload VS Code để load MCP server.
Reload VS Code để load MCP server.
### Lấy Redmine API Key
1. Đăng nhập vào Redmine
2. Vào **My account** (góc trên bên phải)
3. Click tab **API access key**
4. Click **Show** để hiển thị API key
5. Copy API key và paste vào config
### Chạy standalone (Development)
```bash
npm start
- Liệt kê danh sách dự án trong readmine của tôi.
- Tạo một issue mới trong dự án có ID 1 với tiêu đề "Fix login bug" và mô tả "Users cannot login with special characters in password".
npx @modelcontextprotocol/inspector npx -y @duongkhuong/mcp-redmine
Lấy danh sách issues với optional filters.
Parameters:
project_id (number, optional) - Filter theo project IDstatus_id (number | "open" | "closed" | "*", optional) - Filter theo statusassigned_to_id (number, optional) - Filter theo assigneelimit (number, optional) - Số lượng kết quả (1-100, default: 25)offset (number, optional) - Offset cho pagination (default: 0)Example:
{
"project_id": 1,
"status_id": "open",
"limit": 10
}
Lấy chi tiết một issue theo ID, bao gồm journals, attachments, và relations.
Parameters:
issue_id (number, required) - ID của issueExample:
{
"issue_id": 123
}
Lấy danh sách tất cả projects.
Parameters:
limit (number, optional) - Số lượng kết quả (1-100, default: 25)offset (number, optional) - Offset cho pagination (default: 0)Lấy chi tiết một project theo ID.
Parameters:
project_id (number, required) - ID của projectLấy danh sách users.
Parameters:
status ("active" | "registered" | "locked", optional) - Filter theo statuslimit (number, optional) - Số lượng kết quả (1-100, default: 25)offset (number, optional) - Offset cho pagination (default: 0)Tìm kiếm issues theo keyword trong subject.
Parameters:
query (string, required) - Từ khóa tìm kiếmlimit (number, optional) - Số lượng kết quả (1-100, default: 25)offset (number, optional) - Offset cho pagination (default: 0)Example:
{
"query": "bug",
"limit": 20
}
Lấy time entries với filters.
Parameters:
project_id (number, optional) - Filter theo projectuser_id (number, optional) - Filter theo userfrom (string, optional) - Ngày bắt đầu (YYYY-MM-DD)to (string, optional) - Ngày kết thúc (YYYY-MM-DD)limit (number, optional) - Số lượng kết quả (1-100, default: 25)offset (number, optional) - Offset cho pagination (default: 0)Example:
{
"project_id": 1,
"from": "2024-01-01",
"to": "2024-12-31"
}
Tạo một issue/ticket mới trong Redmine.
Parameters:
project_id (number, required) - ID của projectsubject (string, required) - Tiêu đề của issuedescription (string, optional) - Mô tả chi tiếttracker_id (number, optional) - ID của tracker (Bug, Feature, Support...)status_id (number, optional) - ID của statuspriority_id (number, optional) - ID của priorityassigned_to_id (number, optional) - ID của user được assignstart_date (string, optional) - Ngày bắt đầu (YYYY-MM-DD)due_date (string, optional) - Ngày deadline (YYYY-MM-DD)done_ratio (number, optional) - Phần trăm hoàn thành (0-100)Example:
{
"project_id": 1,
"subject": "Fix login bug",
"description": "Users cannot login with special characters in password",
"tracker_id": 1,
"priority_id": 3,
"assigned_to_id": 5
}
Cập nhật một issue/ticket đã tồn tại. Chỉ các fields được cung cấp sẽ được cập nhật.
Parameters:
issue_id (number, required) - ID của issue cần updateproject_id (number, optional) - Chuyển issue sang project khácsubject (string, optional) - Cập nhật tiêu đềdescription (string, optional) - Cập nhật mô tảtracker_id (number, optional) - Thay đổi trackerstatus_id (number, optional) - Thay đổi statuspriority_id (number, optional) - Thay đổi priorityassigned_to_id (number, optional) - Reassign cho user khácstart_date (string, optional) - Cập nhật ngày bắt đầu (YYYY-MM-DD)due_date (string, optional) - Cập nhật deadline (YYYY-MM-DD)done_ratio (number, optional) - Cập nhật phần trăm hoàn thành (0-100)notes (string, optional) - Thêm ghi chú về update nàyExample:
{
"issue_id": 123,
"status_id": 3,
"done_ratio": 80,
"notes": "Almost done, just need final testing"
}
Thêm comment/ghi chú vào một issue. Đây là cách đơn giản để thêm comment mà không cần update các fields khác.
Parameters:
issue_id (number, required) - ID của issuenotes (string, required) - Nội dung commentExample:
{
"issue_id": 123,
"notes": "I've reviewed the code and it looks good to merge"
}
Xóa một issue/ticket khỏi Redmine.
Parameters:
issue_id (number, required) - ID của issue cần xóaExample:
{
"issue_id": 123
}
Các tools dự kiến sẽ được support trong tương lai:
npm run dev
mcp-redmine/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── redmine-client.ts # Redmine API client
│ ├── tools.ts # MCP tool definitions
│ └── types.ts # TypeScript types & Zod schemas
├── dist/ # Compiled JavaScript
├── .env # Environment variables (gitignored)
├── .env.example # Environment template
├── package.json
└── tsconfig.json
Đảm bảo bạn đã cung cấp đầy đủ:
npm run buildMIT
FAQs
MCP server for Redmine API integration with AI agents
We found that @duongkhuong/mcp-redmine demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.

Research
/Security News
Popular npm packages keyv and cacheable compromised.

Security News
A misconfiguration gave three Anthropic models internet access, and one, believing it was in a simulation, shipped a credential-stealing package to PyPI.