Redmine MCP Server
This is a Model Context Protocol (MCP) server implementation for Redmine. It integrates with Redmineβs REST API to provide ticket and project information to LLMs.
Features
Supports stable resources from Redmine REST API:
- Issues (1.0~)
- Projects (1.0~)
- Users (1.1~)
- Time Entries (1.1~)
Tools
Issues
- Search Issues
- Filter by project, status, assignee, etc.
- Keyword search
- Custom field support
- Create/Update Issues
- Set tracker, status, priority
- Configure custom fields
- Add comments
- Delete Issues
Projects
- Search Projects
- Filter by active/archived/closed status
- Keyword search
- Get Project Details
- Include trackers, categories information
- Create/Update Projects
- Configure modules and trackers
- Set member inheritance
- Archive/Unarchive Projects
- Delete Projects
Time Entries
- Search Time Entries
- Filter by project, user, date range
- Get Time Entry Details
- Create/Update Time Entries
- Record against project or issue
- Specify activity
- Custom field support
- Delete Time Entries
Usage with Claude
To use this server with Claude, configure it as follows:
{
"mcp-server-redmine": {
"command": "npx",
"args": [
"-y",
"--prefix",
"/path/to/mcp-server-redmine",
"mcp-server-redmine"
],
"env": {
"REDMINE_HOST": "https://your-redmine.example.com",
"REDMINE_API_KEY": "your-api-key-here"
}
}
}
Configuration Options
command
: Command to execute the npm packageargs
:-y
: Auto-respond βyesβ to prompts--prefix
: Specify installation directory- Last argument specifies the package name
env
: Environment variablesREDMINE_HOST
: Redmine server URLREDMINE_API_KEY
: Your Redmine API key
Setup
Getting an API Key
- Enable REST API in Redmine admin settings
- Get API key from user settings page
Environment Variables
Set the following environment variables:
REDMINE_API_KEY
: API key obtained from Redmine user settingsREDMINE_HOST
: Redmine server URL (e.g.,https://redmine.example.com
)
Testing
Unit Tests
# Run tests
npm test
For data safety, only GET operations are included in tests.
Inspector Testing
Use MCP Inspectorβ to verify functionality:
# Build
npm run build
# Set execute permission (important)
chmod +x dist/index.js
# Launch inspector
npx @modelcontextprotocol/inspector dist/index.js
Permissions
Some features require administrator privileges:
User-Related Operations
list_users
: Admin requiredcreate_user
: Admin requiredupdate_user
: Admin requireddelete_user
: Admin required
Available information varies based on user permission levels. For details, see Redmine API Documentationβ.
Development
Requirements
- Node.js 18 or higher
- npm 9 or higher
Libraries
@modelcontextprotocol/sdk
: MCP SDKzod
: Schema validationtypescript
: Type system
Directory Structure
.
βββ src/
β βββ tools/ # Tool definitions
β β βββ issues.ts
β β βββ projects.ts
β β βββ time_entries.ts
β β βββ index.ts
β βββ formatters/ # Formatters
β β βββ issues.ts
β β βββ projects.ts
β β βββ time_entries.ts
β β βββ index.ts
β βββ lib/ # Common libraries
β β βββ client.ts # Redmine API client
β β βββ config.ts # Configuration management
β β βββ types.ts # Type definitions
β βββ handlers.ts # Request handlers
β βββ index.ts # Entry point
βββ docs/
β βββ adr/ # Architecture Decision Records
βββ package.json # Project configuration
βββ tsconfig.json # TypeScript configuration
βββ README.md # Documentation
Building
# Install dependencies
npm install
# Build
npm run build
# Start development server
npm run dev
Architecture Decision Records
Major design decisions are documented in docs/adr
. Refer to these documents when adding or modifying features.
License
MIT
Related Projects
Last updated on