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