Redmine MCP Server
Connects to Redmine, enabling LLMs to manage projects, issues, timesheets, and time logs via MCP.
README
Redmine Model Context Protocol (MCP) Server
A Model Context Protocol (MCP) server that connects to a Redmine instance, allowing LLM clients (such as Claude Desktop or Cursor) to interact with Redmine projects, issues, timesheets, and time logs.
Features & Tools
This server provides the following tools to the MCP client:
| Tool Name | Description | Arguments / Inputs |
|---|---|---|
redmine_list_projects |
Lists all visible projects in Redmine. | None |
redmine_list_issues |
Lists issues with optional filters. | project_id (string), status_id (string, e.g. open/closed/*), assigned_to_id (string or "me"), limit (number) |
redmine_get_issue |
Retrieves detailed information of a specific issue by its ID. | id (number, required) |
redmine_create_issue |
Creates a new issue in a specific project. | project_id (string, required), subject (string, required), description (string) |
redmine_get_timesheet |
Gets time entries (timesheet) for the authenticated user. | from (YYYY-MM-DD), to (YYYY-MM-DD), project_id (string), limit (number), offset (number) |
redmine_log_time |
Logs spent hours on an issue or project. | hours (number, required), issue_id (number) or project_id (number), activity_id (number), comments (string, max 255 chars), spent_on (YYYY-MM-DD), user_id (number, requires admin permissions) |
redmine_list_time_entry_activities |
Lists the available time entry activities (e.g., Development, Design) and their IDs. | None |
redmine_get_my_permissions |
Gets current user info, project memberships, and roles. | None |
Getting Started
Prerequisites
- Node.js (v18 or higher recommended)
- Access to a Redmine instance with REST API enabled (and an API key generated)
Setup & Installation
-
Install dependencies:
npm install -
Configure environment variables. Create a
.envfile in the root directory:REDMINE_URL=https://your-redmine-domain.com REDMINE_API_KEY=your_redmine_api_key_here LOG_LEVEL=info TRANSPORT=stdio PORT=3000REDMINE_URL: The base URL of your Redmine instance (e.g.,https://redmine.yourcompany.com).REDMINE_API_KEY: Your personal Redmine API access key (found under the "My Account" page in Redmine).LOG_LEVEL: The minimum logging severity level (e.g.,info,debug,warn,error). Defaults toinfo.TRANSPORT: The server communication protocol. Options arestdio(default) for local stdin/stdout, orsseto run the server over HTTP Server-Sent Events.PORT: The port to bind to when running inssetransport mode. Defaults to3000.
Development & Testing
-
To run the server in development mode (watches for file changes using
tsx):npm run dev -
To run a connection check/test script:
npx tsx src/test.ts -
To build the project:
npm run build -
To run the built server in production mode:
npm start
Running as a Remote SSE Server
If you want to run the server remotely and connect to it over HTTP (Server-Sent Events) rather than using local stdin/stdout:
-
Configure
.envto use thessetransport and define a port:TRANSPORT=sse PORT=3000 -
Start the server:
npm start(Or run
npm run devto run it with tsx watch in development mode) -
The server will run on
http://localhost:3000(or your configured port).- The SSE connection endpoint is:
GET /sse - The client message endpoint is:
POST /messages
- The SSE connection endpoint is:
Integration with MCP Clients
Claude Desktop
To use this server with Claude Desktop, add it to your claude_desktop_config.json configuration file:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Add the server configuration under the mcpServers object:
{
"mcpServers": {
"redmine-mcp": {
"command": "node",
"args": [
"/path/to/redmine-mcp/dist/server.js"
],
"env": {
"REDMINE_URL": "https://your-redmine-domain.com",
"REDMINE_API_KEY": "your_redmine_api_key_here"
}
}
}
}
Make sure to run npm run build in the server directory before starting Claude Desktop so that dist/server.js exists.
Technical Details
- Stdio Transport: The server communicates via standard input/output.
- Stderr Logging: Because the stdout stream is dedicated strictly to JSON-RPC messages for the MCP protocol, all server application logs (using Pino) are routed to
process.stderrto prevent protocol stream corruption. - Old Redmine Compatibility: The
redmine_log_timetool sends XML-formatted POST requests to/time_entries.xml. This prevents potential 404 errors on older Redmine instances (such as those running on Ruby 1.8.7) which do not support JSON payloads for creating time entries.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.