MCP server for Redmine
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.
Supports stable resources from Redmine REST API:
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"
}
}
}
command: Command to execute the npm packageargs:
-y: Auto-respond "yes" to prompts--prefix: Specify installation directoryenv: Environment variables
REDMINE_HOST: Redmine server URLREDMINE_API_KEY: Your Redmine API keySet the following environment variables:
REDMINE_API_KEY: API key obtained from Redmine user settingsREDMINE_HOST: Redmine server URL (e.g., https://redmine.example.com)# Run tests
npm test
For data safety, only GET operations are included in tests.
Use MCP Inspector to verify functionality.
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
Here are practical examples for testing the Redmine MCP Server using CLI mode.
Prerequisites:
# Build the project
npm run build
# Set execute permission
chmod +x dist/index.js
# Set environment variables
export REDMINE_API_KEY=your-api-key-here
export REDMINE_HOST=http://localhost:3000 # or your Redmine server URL
Basic Testing Commands:
List available tools:
npx @modelcontextprotocol/inspector --cli \
-e REDMINE_API_KEY=$REDMINE_API_KEY \
-e REDMINE_HOST=$REDMINE_HOST \
node dist/index.js \
--method tools/list
Test Issues functionality:
# List issues (with limit)
npx @modelcontextprotocol/inspector --cli \
-e REDMINE_API_KEY=$REDMINE_API_KEY \
-e REDMINE_HOST=$REDMINE_HOST \
node dist/index.js \
--method tools/call \
--tool-name list_issues \
--tool-arg limit=5
# Get specific issue details
npx @modelcontextprotocol/inspector --cli \
-e REDMINE_API_KEY=$REDMINE_API_KEY \
-e REDMINE_HOST=$REDMINE_HOST \
node dist/index.js \
--method tools/call \
--tool-name get_issue \
--tool-arg id=1
# Filter issues by project
npx @modelcontextprotocol/inspector --cli \
-e REDMINE_API_KEY=$REDMINE_API_KEY \
-e REDMINE_HOST=$REDMINE_HOST \
node dist/index.js \
--method tools/call \
--tool-name list_issues \
--tool-arg project_id=1 \
--tool-arg limit=3
Test Projects functionality:
# List all projects
npx @modelcontextprotocol/inspector --cli \
-e REDMINE_API_KEY=$REDMINE_API_KEY \
-e REDMINE_HOST=$REDMINE_HOST \
node dist/index.js \
--method tools/call \
--tool-name list_projects
# Get specific project details
npx @modelcontextprotocol/inspector --cli \
-e REDMINE_API_KEY=$REDMINE_API_KEY \
-e REDMINE_HOST=$REDMINE_HOST \
node dist/index.js \
--method tools/call \
--tool-name show_project \
--tool-arg id=1
Test Users functionality (requires admin privileges):
# List users
npx @modelcontextprotocol/inspector --cli \
-e REDMINE_API_KEY=$REDMINE_API_KEY \
-e REDMINE_HOST=$REDMINE_HOST \
node dist/index.js \
--method tools/call \
--tool-name list_users
# Get specific user details
npx @modelcontextprotocol/inspector --cli \
-e REDMINE_API_KEY=$REDMINE_API_KEY \
-e REDMINE_HOST=$REDMINE_HOST \
node dist/index.js \
--method tools/call \
--tool-name show_user \
--tool-arg id=1
Test Time Entries functionality:
# List time entries
npx @modelcontextprotocol/inspector --cli \
-e REDMINE_API_KEY=$REDMINE_API_KEY \
-e REDMINE_HOST=$REDMINE_HOST \
node dist/index.js \
--method tools/call \
--tool-name list_time_entries \
--tool-arg limit=5
# Get specific time entry details
npx @modelcontextprotocol/inspector --cli \
-e REDMINE_API_KEY=$REDMINE_API_KEY \
-e REDMINE_HOST=$REDMINE_HOST \
node dist/index.js \
--method tools/call \
--tool-name show_time_entry \
--tool-arg id=1
Advanced Testing:
# Filter issues by status
npx @modelcontextprotocol/inspector --cli \
-e REDMINE_API_KEY=$REDMINE_API_KEY \
-e REDMINE_HOST=$REDMINE_HOST \
node dist/index.js \
--method tools/call \
--tool-name list_issues \
--tool-arg status_id=1 \
--tool-arg limit=5
# Search issues by keyword
npx @modelcontextprotocol/inspector --cli \
-e REDMINE_API_KEY=$REDMINE_API_KEY \
-e REDMINE_HOST=$REDMINE_HOST \
node dist/index.js \
--method tools/call \
--tool-name list_issues \
--tool-arg subject="bug" \
--tool-arg limit=3
# Get time entries for specific project
npx @modelcontextprotocol/inspector --cli \
-e REDMINE_API_KEY=$REDMINE_API_KEY \
-e REDMINE_HOST=$REDMINE_HOST \
node dist/index.js \
--method tools/call \
--tool-name list_time_entries \
--tool-arg project_id=1 \
--tool-arg limit=10
Troubleshooting:
Connection issues: Verify your Redmine server is running and accessible:
curl -H "X-Redmine-API-Key: $REDMINE_API_KEY" \
"$REDMINE_HOST/projects.json"
Permission errors: Some operations require administrator privileges. Check your API key permissions in Redmine.
Environment variables: Ensure environment variables are properly set:
echo $REDMINE_API_KEY
echo $REDMINE_HOST
Build issues: Make sure the project is built and permissions are set:
npm run build
chmod +x dist/index.js
ls -la dist/index.js
Some features require administrator privileges:
list_users: Admin requiredcreate_user: Admin requiredupdate_user: Admin requireddelete_user: Admin requiredAvailable information varies based on user permission levels. For details, see Redmine API Documentation.
@modelcontextprotocol/sdk: MCP SDKzod: Schema validationtypescript: Type system.
โโโ 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
# Install dependencies
npm install
# Build
npm run build
# Start development server
npm run dev
Major design decisions are documented in docs/adr. Refer to these documents when adding or modifying features.
MIT
{
"mcpServers": {
"mcp-server-redmine": {
"command": "npx",
"args": [
"-y",
"--prefix",
"/path/to/mcp-server-redmine",
"mcp-server-redmine"
]
}
}
}Related projects feature coming soon
Will recommend related projects based on sub-categories