Supports web automation tasks including searching DuckDuckGo, extracting links, and capturing screenshots via Playwright.
Supports web automation tasks including searching Google, extracting links, and capturing screenshots via Playwright.
Enables music integration using the iTunes API for searching tracks, playing previews, and retrieving artist and album information.
Provides comprehensive project analytics for Redmine, including real-time bug tracking, sprint status calculation, team performance analysis, and backlog management.
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 Analytics and Automation MCP ServerWhat is the current sprint completion status and open bug count for project NCEL?"
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.
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_countfieldβ 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
Clone the repository
git clone https://github.com/a1official/mcp.git
cd mcpSet up Python environment
python -m venv .venv
.venv\Scripts\activate # Windows
source .venv/bin/activate # Linux/Mac
cd backend
pip install -r requirements.txtSet up Frontend
cd frontend
npm installConfigure 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_keyRunning the Application
Terminal 1 - Backend:
cd backend
python server.py
# Runs on http://localhost:3001Terminal 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 sprintsprint_completion_status()- Completion metricstasks_in_progress()- In-progress countblocked_tasks()- Blocked issues count
Backlog & Scope
backlog_size()- Total backlog metricshigh_priority_open()- High-priority itemsmonthly_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_countfieldSingle API call with
limit=1for efficiency
Flexible Input
Accepts project names:
"ncel","NCEL"Accepts project IDs:
6Auto-converts using PROJECT_MAP
Comprehensive Metrics
Sprint status and burndown
Bug tracking and severity
Team workload and capacity
Throughput and velocity
Backlog health
π Security
.envfile excluded from gitAPI keys never committed
Sensitive data sanitized in logs
π€ Contributing
Fork the repository
Create a feature branch
Make your changes
Test thoroughly
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