redmine-mcp-stdio
This server provides an MCP interface to Redmine, enabling AI assistants and MCP clients (Cursor, VS Code, Claude, Cline, etc.) to interact with issues, projects, and time entries.
Issue Management
List/filter issues – Browse by project, status, assignee, or free-text search, with pagination or bulk fetch (up to 500)
Get issue – Retrieve full details including journal history and attachments
Create issue – Open a new issue with subject, description, tracker, priority, status, and assignee
Update issue – Modify any fields (subject, status, priority, assignee, done ratio, description) with an optional journal note
Add comment – Append a note to an existing issue's journal
Project Management
List projects – Retrieve all accessible projects
Get project – Fetch detailed info including versions and members
Time Tracking
Log time – Record a time entry against an issue or project, with hours, activity type, date, and optional comment
List time entries – Query entries filtered by issue, project, user, and/or date range
Reference / Lookup
List enumerations – Fetch IDs and names for trackers, issue statuses, priorities, and time-entry activities (useful for supplying correct IDs to other tools)
Allows interaction with Redmine, providing tools for managing issues, projects, time entries, and enumerations such as trackers, statuses, priorities, and activities.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@redmine-mcp-stdiolist all open issues assigned to me"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
redmine-mcp-stdio
A local Model Context Protocol server (stdio) for Redmine. Point an MCP client at it (Cursor, VS Code, Claude, Codex, Windsurf, Cline, Zed, JetBrains AI and others) and work with Redmine issues, projects and time entries straight from the editor.
Tools
Tool | What it does | Key parameters |
| List/filter issues, paginated |
|
| Full details of one issue + comments/history + attachments |
|
| Accessible projects |
|
| Project details, versions and members |
|
| Create an issue |
|
| Update issue fields |
|
| Add a note to an issue |
|
| Log a time entry on an issue/project |
|
| List time entries, filtered |
|
| IDs of trackers/statuses/priorities/activities | none |
Related MCP server: Redmine MCP Server
Install
No manual install needed. The client launches the server on demand with npx, which
downloads it on first run and caches it after. Just add the config for your client under
Connect.
Prefer to run from a local clone? See Development.
Get a Redmine API key
My account > API access key > Show.
If there's no such section, an admin must enable the REST API in Administration > Settings > API.
The key must belong to a user with permission to view (and, for writes, create/edit) issues.
⚠️ Never commit your API key. Copy
.env.exampleto.envfor local use;.envis gitignored.
Connect
The server reads REDMINE_URL and REDMINE_API_KEY from the environment. Provide them via the client's MCP config env block.
Cursor
Edit ~/.cursor/mcp.json (global) or .cursor/mcp.json in a project root:
{
"mcpServers": {
"redmine": {
"command": "npx",
"args": ["-y", "redmine-mcp-stdio"],
"env": {
"REDMINE_URL": "https://redmine.your-company.com",
"REDMINE_API_KEY": "your_key"
}
}
}
}Reload Cursor and enable the server in Settings > MCP.
VS Code (GitHub Copilot)
Edit .vscode/mcp.json in your workspace (or your user mcp.json). Note the top-level key is servers, not mcpServers:
{
"servers": {
"redmine": {
"type": "stdio",
"command": "npx",
"args": ["-y", "redmine-mcp-stdio"],
"env": {
"REDMINE_URL": "https://redmine.your-company.com",
"REDMINE_API_KEY": "your_key"
}
}
}
}Claude Code
claude mcp add redmine \
--env REDMINE_URL=https://redmine.your-company.com \
--env REDMINE_API_KEY=your_key \
-- npx -y redmine-mcp-stdioOr edit ~/.claude.json / the project .mcp.json directly (same shape as Claude Desktop below).
Claude Desktop
Edit claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"redmine": {
"command": "npx",
"args": ["-y", "redmine-mcp-stdio"],
"env": {
"REDMINE_URL": "https://redmine.your-company.com",
"REDMINE_API_KEY": "your_key"
}
}
}
}Restart Claude Desktop afterwards.
Codex CLI
Add a server table to ~/.codex/config.toml:
[mcp_servers.redmine]
command = "npx"
args = ["-y", "redmine-mcp-stdio"]
env = { REDMINE_URL = "https://redmine.your-company.com", REDMINE_API_KEY = "your_key" }If node is installed via nvm, use the full path from which npx as command.
Windsurf
Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"redmine": {
"command": "npx",
"args": ["-y", "redmine-mcp-stdio"],
"env": {
"REDMINE_URL": "https://redmine.your-company.com",
"REDMINE_API_KEY": "your_key"
}
}
}
}In Cascade, open MCP servers > Manage > View raw config, paste, then refresh. Supports ${env:VAR} interpolation if you'd rather not inline the key.
Cline
In the Cline pane, click the MCP Servers icon and choose Configure MCP Servers to open cline_mcp_settings.json:
{
"mcpServers": {
"redmine": {
"command": "npx",
"args": ["-y", "redmine-mcp-stdio"],
"env": {
"REDMINE_URL": "https://redmine.your-company.com",
"REDMINE_API_KEY": "your_key"
}
}
}
}Zed
Zed calls MCP servers context servers. Open the command palette and run zed: open settings, then add to settings.json (note "source": "custom"):
{
"context_servers": {
"redmine": {
"source": "custom",
"command": "npx",
"args": ["-y", "redmine-mcp-stdio"],
"env": {
"REDMINE_URL": "https://redmine.your-company.com",
"REDMINE_API_KEY": "your_key"
}
}
}
}Zed restarts the server on save, so no editor reload is needed.
JetBrains AI Assistant (2025.2+)
Settings > Tools > AI Assistant > Model Context Protocol (MCP) > Add:
Type: stdio
Command:
npx(if node is installed via nvm, use the full path fromwhich npx)Arguments:
-y redmine-mcp-stdioEnvironment:
REDMINE_URL=https://redmine.your-company.comREDMINE_API_KEY=your_key
Enable "Automatically enable new and changed MCP servers", then Apply. Click the status icon and you should see 10 tools. Invoke them in chat with /.
Verify locally (optional)
REDMINE_URL=https://redmine.your-company.com REDMINE_API_KEY=your_key npx -y redmine-mcp-stdioThe process should start and wait silently on stdio (Ctrl+C to exit).
Troubleshooting
Failed to connect/ server won't start: thecommandmust resolve in the client's environment. If node is installed via nvm, a barenpxmay not be found. Use the full path fromwhich npxas the command.Missing REDMINE_URL or REDMINE_API_KEY: theenvblock wasn't passed. Double-check it's in the MCP config, not your shell.Redmine 401/403: bad API key, or the key's user lacks permission for that action.Redmine 404: the issue/project id doesn't exist, orREDMINE_URLpoints at the wrong host.
Configuration
Variable | Required | Default | Description |
| yes | n/a | Base URL of your Redmine instance (http/https) |
| yes | n/a | Personal API access key |
| no |
| Per-request timeout in milliseconds |
| no |
| Retries on |
Architecture
The code is organized in layers, with a single HTTP client injected into each tool
group so that tools never touch transport or process.env directly:
src/
index.ts entry point: load config, build client, register tools, serve stdio
config.ts env parsing + validation (Zod) into a typed RedmineConfig
version.ts single source of the version string
redmine/
client.ts RedmineClient: auth, timeout, retry, host pinning, secret redaction
errors.ts RedmineError / ConfigError + HTTP error normalization
paths.ts safe path-segment encoding + project-id validation
types.ts Redmine API response types
tools/
register.ts wires every tool group onto the server
issues.ts list/get/create/update issues + add_comment
projects.ts list/get projects (versions, members)
time-entries.ts log_time, list_time_entries
enumerations.ts trackers / statuses / priorities / activities
helpers.ts guard(), ok()/fail(), ToolResult
format.ts pure presentation helpersDevelopment
npm run build # compile src/ to build/
npm run typecheck # tsc --noEmit (strict)
npm run lint # eslint
npm run format # prettier --write
npm test # build, then run the vitest suite
npm run check # typecheck + lint + format:check + test (what CI runs)See CHANGELOG.md for releases.
Security
The API key is never logged and is redacted from error output; requests are pinned to the configured host, path parameters are encoded, and every call is bounded by a timeout and a response-size cap. Details and reporting: SECURITY.md.
License
MIT. See LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/andrelaptenok/redmine-mcp-stdio'
If you have feedback or need assistance with the MCP directory API, please join our Discord server