A Model Context Protocol (MCP) server for integrating with Redmine project management systems. This server provides AI applications with the ability to interact with Redmine instances for project management, issue tracking, and time logging.
get_issues
- Retrieve issues with optional filtering by project, status,
assigneeget_projects
- List available Redmine projectsget_project_memberships
- Get users and groups assigned to a project with
their rolescreate_issue
- Create new issues in Redmine projectsget_time_entries
- Retrieve time entries with filtering optionslog_time
- Log time spent on issues or projectsSet the following environment variables:
export REDMINE_URL="https://your-redmine-instance.com"
export REDMINE_API_KEY="your_api_key_here"
npm install
npm run build
Clone this repository and create the file .vscode/mcp.json
with following
contents:
{
"servers": {
"redmine-mcp-server": {
"type": "stdio",
"command": "node",
"args": ["build/src/index.js"],
"env": {
"REDMINE_URL": "your URL here",
"REDMINE_API_KEY": "your API key here"
}
}
}
}
API documentation is automatically generated from JSDoc comments and deployed to GitHub Pages:
To generate documentation locally:
npm run docs
The generated documentation will be available in the docs/
directory.
npm run build
npm run lint
npm run format
This project uses Vitest as its testing framework, providing fast test execution, watch mode, and comprehensive coverage reports.
# Run all tests
npm test
# Run tests once and exit
npm run test:run
# Run only e2e tests
npm run test:e2e
# Run tests with UI
npm run test:ui
# Run tests with coverage
npm run test:coverage
Code coverage is automatically collected and reported in the CI pipeline using Vitest's built-in coverage support with the V8 provider. Coverage reports are:
coverage/
directory locallyTo generate coverage locally:
npm run test:coverage
Coverage reports include:
coverage/index.html
in your browser for detailed
line-by-line coveragecoverage/coverage-summary.json
contains overall metricsThe coverage configuration excludes test files, configuration files, and build artifacts to focus on source code coverage.
test/e2e/
- End-to-end tests using Docker and PlaywrightTests use Vitest's describe
, it
, and expect
API:
import { describe, it, expect } from "vitest";
describe("My Feature", () => {
it("should work correctly", () => {
expect(1 + 1).toBe(2);
});
});
npx @modelcontextprotocol/inspector node build/src/index.js