{"_id":"@dexxa-tools/redmine-mcp-server","name":"@dexxa-tools/redmine-mcp-server","dist-tags":{"latest":"1.2.0"},"versions":{"1.2.0":{"name":"@dexxa-tools/redmine-mcp-server","version":"1.2.0","description":"MCP server for Redmine","type":"module","packageManager":"pnpm@10.20.0","bin":{"redmine-mcp-server":"dist/server.mjs"},"scripts":{"gen":"rm -rf src/__generated__ && orval && node post-generate.js","build":"pnpm gen && tsdown"},"repository":{"type":"git","url":"git+https://github.com/cuonglm2000/redmine-mcp-server.git"},"keywords":["mcp","modelcontextprotocol","redmine"],"author":{"name":"onozaty","url":"forked by Dexxa Tools"},"license":"MIT","bugs":{"url":"https://github.com/cuonglm2000/redmine-mcp-server/issues"},"homepage":"https://github.com/cuonglm2000/redmine-mcp-server#readme","devDependencies":{"@types/node":"^20.0.0","orval":"^7.10.0","tsdown":"^0.12.9","typescript":"^5.8.3"},"dependencies":{"@modelcontextprotocol/sdk":"1.15.0","zod":"^3.25.75"},"gitHead":"91b31b9e859b28699587d38539e0100e713f66d1","_id":"@dexxa-tools/redmine-mcp-server@1.2.0","_nodeVersion":"22.12.0","_npmVersion":"11.6.4","dist":{"integrity":"sha512-yz3EEam5p5LvJKh+FTQ/SIrTURYxU6HSs2+hfSVnY1yVH7nShYvjsjkPZQiJIs/zCX4JZs+HoSmyo3wXo2urzQ==","shasum":"b350a7a6ccc321084030054c4514efbb15a5283b","tarball":"https://registry.npmjs.org/@dexxa-tools/redmine-mcp-server/-/redmine-mcp-server-1.2.0.tgz","fileCount":4,"unpackedSize":171459,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBVyRzqhqNyeWd+mvA/G0V2nMhkGqVOg5Gfvkys521u5AiB87KFbb2XpYmuRiEJ50cA1mM4X4PpDTBs3f+p7q8B4jw=="}]},"_npmUser":{"name":"dexxa-tools","email":"cuonglm@amcolab.vn"},"directories":{},"maintainers":[{"name":"dexxa-tools","email":"cuonglm@amcolab.vn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/redmine-mcp-server_1.2.0_1780384634609_0.1916118705189893"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-02T07:17:14.473Z","1.2.0":"2026-06-02T07:17:14.755Z","modified":"2026-06-02T07:17:14.936Z"},"maintainers":[{"name":"dexxa-tools","email":"cuonglm@amcolab.vn"}],"description":"MCP server for Redmine","homepage":"https://github.com/cuonglm2000/redmine-mcp-server#readme","keywords":["mcp","modelcontextprotocol","redmine"],"repository":{"type":"git","url":"git+https://github.com/cuonglm2000/redmine-mcp-server.git"},"author":{"name":"onozaty","url":"forked by Dexxa Tools"},"bugs":{"url":"https://github.com/cuonglm2000/redmine-mcp-server/issues"},"license":"MIT","readme":"# Redmine MCP Server\n\nModel Context Protocol (MCP) server for Redmine that provides comprehensive access to the Redmine REST API.\n\n## Overview\n\nThis project is an MCP server that comprehensively covers Redmine's [REST API](https://www.redmine.org/projects/redmine/wiki/rest_api). It allows you to operate Redmine from MCP clients (such as Claude Desktop).\n\n## Demonstration\n\nHere are example videos showing how to use the Redmine MCP server with Claude Desktop:\n\n### Creating an Issue\n\nhttps://github.com/user-attachments/assets/075fb079-104c-404d-91f5-755b3882853b\n\n*This demonstration also uses the [Playwright MCP](https://github.com/microsoft/playwright-mcp) for browser automation alongside the Redmine MCP server.*\n\n### Getting Issue Information\n\nhttps://github.com/user-attachments/assets/8f551082-6982-4513-8fe7-b0f111be982d\n\n## Features\n\n- 📋 **Comprehensive API Coverage**: Supports all functions available in Redmine's REST API\n- 🔒 **Read-Only Mode**: Supports safe data reference mode\n- 🔧 **Tool Filtering**: Control which tools are available using regex patterns\n\n## Prerequisites\n\n### Getting Redmine API Key\n\n1. Log in to Redmine with administrator privileges\n2. Go to \"Administration\" → \"Settings\" → \"API\" tab\n3. Check \"Enable REST web service\"\n4. Generate \"API access key\" in personal settings\n\nFor details, refer to [Redmine REST API documentation](https://www.redmine.org/projects/redmine/wiki/rest_api#Authentication).\n\n## Configuration\n\n### Environment Variables\n\nThe following environment variables are required (specified in MCP client configuration files):\n\n- **REDMINE_URL** (Required): Base URL of the Redmine instance\n  - Example: `https://redmine.example.com`\n- **REDMINE_API_KEY** (Required): API key generated in Redmine\n  - Set the API key obtained in prerequisites\n- **REDMINE_MCP_READ_ONLY** (Optional): Enable read-only mode\n  - `true`: Read-only mode (disables data modification operations)\n  - `false` or unset: Allow all operations (default)\n- **REDMINE_MCP_TOOLS_ALLOW_PATTERN** (Optional): Regex pattern to allow only matching tools\n  - Example: `^get` (enable only tools starting with \"get\")\n  - If unset, all tools are allowed (subject to other settings)\n- **REDMINE_MCP_TOOLS_DENY_PATTERN** (Optional): Regex pattern to disable matching tools\n  - Example: `^delete` (disable all tools starting with \"delete\")\n  - If unset, no tools are denied (subject to other settings)\n  - Deny pattern takes priority over allow pattern\n\n### MCP Client Configuration\n\n#### Using npx (Recommended for quick start)\n\nAdd the following as MCP configuration for your AI agent:\n\n```json\n{\n  \"mcpServers\": {\n    \"redmine\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@dexxa-tools/redmine-mcp-server\"],\n      \"env\": {\n        \"REDMINE_URL\": \"https://your-redmine.example.com\",\n        \"REDMINE_API_KEY\": \"your-api-key-here\",\n        \"REDMINE_MCP_READ_ONLY\": \"true\"\n      }\n    }\n  }\n}\n```\n\nBelow are specific configuration methods for several MCP clients:\n\n#### Claude Desktop\n\nAdd the following to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"redmine\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@dexxa-tools/redmine-mcp-server\"],\n      \"env\": {\n        \"REDMINE_URL\": \"https://your-redmine.example.com\",\n        \"REDMINE_API_KEY\": \"your-api-key-here\",\n        \"REDMINE_MCP_READ_ONLY\": \"true\"\n      }\n    }\n  }\n}\n```\n\n#### Claude Code\n\nIn Claude Code, you can add MCP servers using the following commands:\n\nLocal configuration:\n```bash\nclaude mcp add redmine -e REDMINE_URL=https://your-redmine.example.com -e REDMINE_API_KEY=your-api-key-here -e REDMINE_MCP_READ_ONLY=true -- npx -y @dexxa-tools/redmine-mcp-server@latest\n```\n\nProject configuration:\n```bash\nclaude mcp add -s project redmine -e REDMINE_URL=https://your-redmine.example.com -e REDMINE_API_KEY=your-api-key-here -e REDMINE_MCP_READ_ONLY=true -- npx -y @dexxa-tools/redmine-mcp-server@latest\n```\n\nUser configuration (global):\n```bash\nclaude mcp add -s user redmine -e REDMINE_URL=https://your-redmine.example.com -e REDMINE_API_KEY=your-api-key-here -e REDMINE_MCP_READ_ONLY=true -- npx -y @dexxa-tools/redmine-mcp-server@latest\n```\n\n#### Visual Studio Code\n\nProject configuration (`.vscode/mcp.json`):\n\n```json\n{\n  \"servers\": {\n    \"redmine\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@dexxa-tools/redmine-mcp-server\"],\n      \"env\": {\n        \"REDMINE_URL\": \"https://your-redmine.example.com\",\n        \"REDMINE_API_KEY\": \"your-api-key-here\",\n        \"REDMINE_MCP_READ_ONLY\": \"true\"\n      }\n    }\n  }\n}\n```\n\nUser configuration (`settings.json`):\n\n```json\n{\n  \"mcp\": {\n    \"servers\": {\n      \"redmine\": {\n        \"type\": \"stdio\",\n        \"command\": \"npx\",\n        \"args\": [\"-y\", \"@dexxa-tools/redmine-mcp-server\"],\n        \"env\": {\n          \"REDMINE_URL\": \"https://your-redmine.example.com\",\n          \"REDMINE_API_KEY\": \"your-api-key-here\",\n          \"REDMINE_MCP_READ_ONLY\": \"true\"\n        }\n      }\n    }\n  }\n}\n```\n\n## Available Features\n\nThis MCP server comprehensively supports the functions provided by [Redmine's REST API](https://www.redmine.org/projects/redmine/wiki/rest_api):\n\n### Main Features\n\n- **Issues**: Create, update, delete, search, and manage related issues\n- **Projects**: Create, update, delete, archive, and manage memberships\n- **Users**: Create, update, delete, and manage groups\n- **Time Entries**: Record, update, and delete time entries\n- **Wiki**: Create, update, delete pages, and manage versions\n- **News**: Create, update, and delete news\n- **Files**: Upload and download files\n- **Attachments**: Upload, download files, and get thumbnails\n- **Queries**: Execute saved queries\n- **Custom Fields**: Get and manage custom fields\n- **Roles**: Get and manage roles\n- **Trackers**: Get and manage trackers\n- **Issue Statuses**: Get and manage issue statuses\n- **Search**: Cross-search functionality\n\n### Read-Only Mode\n\nBy setting `REDMINE_MCP_READ_ONLY=true`, you can disable data modification operations. This allows safe data reference.\n\n### Tool Filtering\n\nYou can control which tools are available using the following environment variables:\n\n- **`REDMINE_MCP_TOOLS_ALLOW_PATTERN`**: Only tools whose names match this regex are enabled.\n  - Example: `^get` enables only read-oriented tools like `getIssues`, `getProjects`, etc.\n- **`REDMINE_MCP_TOOLS_DENY_PATTERN`**: Tools whose names match this regex are disabled.\n  - Example: `^delete` disables all delete operations.\n\nWhen both are set, deny takes priority. These can also be combined with `REDMINE_MCP_READ_ONLY`.\n\n**Example: Allow only issue-related tools**\n```json\n\"env\": {\n  \"REDMINE_MCP_TOOLS_ALLOW_PATTERN\": \"Issue\"\n}\n```\n\n**Example: Disable all delete and archive operations**\n```json\n\"env\": {\n  \"REDMINE_MCP_TOOLS_DENY_PATTERN\": \"^(delete|archive)\"\n}\n```\n\n### Available Tools\n\nThe following tools are available (based on [Redmine REST API](https://www.redmine.org/projects/redmine/wiki/rest_api) categories):\n\n| Category | Tools |\n|---|---|\n| Issues | getIssues, getIssue, createIssue, updateIssue, deleteIssue, addWatcher, removeWatcher, addRelatedIssue, removeRelatedIssue |\n| Projects | getProjects, getProject, createProject, updateProject, deleteProject, archiveProject, unarchiveProject, closeProject, reopenProject |\n| Project Memberships | getMemberships, getMembership, createMembership, updateMembership, deleteMembership |\n| Users | getUsers, getUser, createUser, updateUser, deleteUser, getCurrentUser |\n| Time Entries | getTimeEntries, getTimeEntry, createTimeEntry, updateTimeEntry, deleteTimeEntry |\n| News | getNewsList, getNewsListByProject, getNews, createNews, updateNews, deleteNews |\n| Issue Relations | getIssueRelations, getIssueRelation, createIssueRelation, deleteIssueRelation |\n| Versions | getVersionsByProject, getVersions, createVersion, updateVersion, deleteVersion |\n| Wiki Pages | getWikiPages, getWikiPage, getWikiPageByVersion, updateWikiPage, deleteWikiPage |\n| Queries | getQueries |\n| Attachments | getAttachment, updateAttachment, deleteAttachment, uploadAttachmentFromLocalFile, uploadAttachmentFromBase64Content, downloadAttachmentToLocalFile, downloadAttachmentAsBase64Content, downloadThumbnailToLocalFile, downloadThumbnailAsBase64Content |\n| Issue Statuses | getIssueStatuses |\n| Trackers | getTrackers |\n| Enumerations | getIssuePriorities, getTimeEntryActivities, getDocumentCategories |\n| Issue Categories | getIssueCategories, getIssueCategory, createIssueCategory, updateIssueCategory, deleteIssueCategory |\n| Roles | getRoles, getRole |\n| Groups | getGroups, getGroup, createGroup, updateGroup, deleteGroup, addUserToGroup, removeUserFromGroup |\n| Custom Fields | getCustomFields |\n| Search | search |\n| Files | getFiles, createFile |\n| My Account | getMyAccount, updateMyAccount |\n| Journals | updateJournal |\n\n## License\n\nMIT License\n\n## Author\n\n[onozaty](https://github.com/onozaty)\n\n## Acknowledgments\n\n- OpenAPI specification: [d-yoshi/redmine-openapi](https://github.com/d-yoshi/redmine-openapi)\n- Code generation: [Orval](https://orval.dev/) - TypeScript client and schema generator from OpenAPI\n","readmeFilename":"README.md","_rev":"1-8d4b90f71a6904ab537ebdcc22c123c0"}