Redmine Analytics and Automation MCP Server

Redmine Analytics and Automation MCP Server

A comprehensive MCP server providing advanced Redmine project analytics, web automation via Playwright, and iTunes music integration. It enables detailed tracking of sprint metrics, bug counts, and team performance through a token-optimized tool architecture.

Category
Visit Server

README

MCP - Model Context Protocol Server with Redmine Analytics

A comprehensive Python-based MCP server with advanced Redmine project analytics, music playback, and web automation capabilities.

šŸš€ Features

šŸŽÆ Redmine Analytics (V2)

  • Sprint/Iteration Status: Track committed issues, completion rates, burndown status
  • Backlog Management: Monitor backlog size, high-priority items, monthly activity
  • Quality Metrics: Bug tracking, severity analysis, bug-to-story ratios
  • Team Performance: Workload distribution, cycle time, lead time analysis
  • Trends & Predictability: Throughput analysis, velocity tracking

šŸŽµ Music Integration

  • iTunes API integration for music search and playback
  • 30-second preview support
  • Artist and album information

🌐 Web Automation

  • Playwright-based web browsing
  • Screenshot capture
  • Link extraction
  • Google and DuckDuckGo search

šŸ“Š Key Achievements

Accurate Bug Counting

  • āœ… Fixed bug count accuracy (310 open bugs in NCEL project)
  • āœ… Direct API queries using Redmine's total_count field
  • āœ… No pagination issues or cache staleness
  • āœ… Supports both project names ("ncel") and IDs (6)

Sprint Analytics

  • āœ… Proper sprint calculation using Redmine Versions
  • āœ… Counts all issues (bugs, features, stories) not just stories
  • āœ… Real-time completion tracking
  • āœ… Burndown status monitoring

Token Optimization

  • āœ… JSPLIT architecture for hierarchical tool selection
  • āœ… 70-85% token reduction through category-based filtering
  • āœ… Reduced system prompts from ~600 to ~50 tokens
  • āœ… Strict tool call limits (max 1 iteration, 1 tool per request)

šŸ—ļø Architecture

mcp/
ā”œā”€ā”€ backend/
│   ā”œā”€ā”€ server.py                    # FastAPI server with 24 tools
│   ā”œā”€ā”€ redmine_direct.py            # Direct API queries (accurate counts)
│   ā”œā”€ā”€ redmine_analytics_v2.py      # 10 comprehensive analytics functions
│   ā”œā”€ā”€ redmine_analytics.py         # Legacy analytics (cache-based)
│   └── redmine_cache.py             # Cache system (deprecated)
ā”œā”€ā”€ frontend/
│   ā”œā”€ā”€ src/
│   │   ā”œā”€ā”€ App.jsx                  # React UI with custom analytics rendering
│   │   └── App.css                  # Styled components
│   └── vite.config.js
ā”œā”€ā”€ mcp-server/
│   ā”œā”€ā”€ server.py                    # FastMCP server
│   └── agents/
│       ā”œā”€ā”€ music.py                 # iTunes integration
│       ā”œā”€ā”€ playwright_agent.py      # Web automation
│       ā”œā”€ā”€ redmine.py               # Basic Redmine tools
│       └── redmine_oauth.py         # OAuth support
└── .kiro/
    └── skills/
        └── redmine-analytics.md     # Agent skill documentation

šŸ› ļø Setup

Prerequisites

  • Python 3.12+
  • Node.js 18+
  • Redmine instance with API access

Installation

  1. Clone the repository
git clone https://github.com/a1official/mcp.git
cd mcp
  1. Set up Python environment
python -m venv .venv
.venv\Scripts\activate  # Windows
source .venv/bin/activate  # Linux/Mac

cd backend
pip install -r requirements.txt
  1. Set up Frontend
cd frontend
npm install
  1. Configure environment
cp .env.example .env
# Edit .env with your credentials:
# REDMINE_URL=https://your-redmine.com
# REDMINE_API_KEY=your_api_key
# GROQ_API_KEY=your_groq_key

Running the Application

Terminal 1 - Backend:

cd backend
python server.py
# Runs on http://localhost:3001

Terminal 2 - Frontend:

cd frontend
npm run dev
# Runs on http://localhost:5173

šŸ“– Usage

Query Examples

Sprint Analytics

"What is the sprint status for Week - 7?"
"How many issues are committed in the current sprint?"
"Show me sprint completion percentage"

Bug Tracking

"How many open bugs in project NCEL?"
"Show me critical bugs"
"What is the bug-to-story ratio?"

Team Performance

"Show me team workload distribution"
"Are any team members overloaded?"
"What is the average cycle time?"

Trends

"What is the throughput for last 4 weeks?"
"Are we closing more tickets than creating?"
"Show me monthly activity"

šŸ”§ Analytics Functions

Sprint/Iteration Status

  • sprint_committed_stories() - Total issues in sprint
  • sprint_completion_status() - Completion metrics
  • tasks_in_progress() - In-progress count
  • blocked_tasks() - Blocked issues count

Backlog & Scope

  • backlog_size() - Total backlog metrics
  • high_priority_open() - High-priority items
  • monthly_activity() - Created vs closed this month

Quality & Defects

  • bug_metrics() - Comprehensive bug statistics

Team Performance

  • team_workload() - Workload by member

Trends

  • throughput_analysis() - Weekly throughput metrics

šŸ“š Documentation

šŸŽÆ Key Features

Direct API Queries

  • No caching issues
  • Always accurate, real-time data
  • Uses Redmine's total_count field
  • Single API call with limit=1 for efficiency

Flexible Input

  • Accepts project names: "ncel", "NCEL"
  • Accepts project IDs: 6
  • Auto-converts using PROJECT_MAP

Comprehensive Metrics

  • Sprint status and burndown
  • Bug tracking and severity
  • Team workload and capacity
  • Throughput and velocity
  • Backlog health

šŸ” Security

  • .env file excluded from git
  • API keys never committed
  • Sensitive data sanitized in logs

šŸ¤ Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

šŸ“ License

MIT License - See LICENSE file for details

šŸ‘„ Authors

  • Akash - Initial work and analytics implementation

šŸ™ Acknowledgments

  • FastMCP framework
  • Redmine API
  • Groq LLM (llama-3.1-8b-instant)
  • React and Vite

šŸ“Š Project Stats

  • Total Tools: 24
  • Analytics Functions: 10
  • Token Reduction: 70-85%
  • Accuracy: 100% (verified with real data)
  • Response Time: < 3 seconds average

šŸ› Known Issues

  • Date range filters need specific format
  • Some Redmine instances may have different status/tracker IDs
  • Requires manual PROJECT_MAP updates for new projects

šŸš€ Future Enhancements

  • [ ] Auto-detect current sprint by due date
  • [ ] Sprint velocity trend charts
  • [ ] Burndown chart visualization
  • [ ] Custom field support
  • [ ] Multi-project analytics
  • [ ] Export to CSV/Excel
  • [ ] Slack/Teams integration
  • [ ] Real-time notifications

šŸ“ž Support

For issues and questions:

  • GitHub Issues: https://github.com/a1official/mcp/issues
  • Documentation: See docs folder

Built with ā¤ļø using Python, FastAPI, React, and FastMCP

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured