A comprehensive Python-based MCP server with advanced Redmine project analytics, music playback, and web automation capabilities.
- 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
- iTunes API integration for music search and playback
- 30-second preview support
- Artist and album information
- Playwright-based web browsing
- Screenshot capture
- Link extraction
- Google and DuckDuckGo search
- ✅ 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)
- ✅ Proper sprint calculation using Redmine Versions
- ✅ Counts all issues (bugs, features, stories) not just stories
- ✅ Real-time completion tracking
- ✅ Burndown status monitoring
- ✅ 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)
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
- Python 3.12+
- Node.js 18+
- Redmine instance with API access
- Clone the repository
git clone https://github.com/a1official/mcp.git
cd mcp- 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- Set up Frontend
cd frontend
npm install- 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_keyTerminal 1 - Backend:
cd backend
python server.py
# Runs on http://localhost:3001Terminal 2 - Frontend:
cd frontend
npm run dev
# Runs on http://localhost:5173"What is the sprint status for Week - 7?"
"How many issues are committed in the current sprint?"
"Show me sprint completion percentage"
"How many open bugs in project NCEL?"
"Show me critical bugs"
"What is the bug-to-story ratio?"
"Show me team workload distribution"
"Are any team members overloaded?"
"What is the average cycle time?"
"What is the throughput for last 4 weeks?"
"Are we closing more tickets than creating?"
"Show me monthly activity"
sprint_committed_stories()- Total issues in sprintsprint_completion_status()- Completion metricstasks_in_progress()- In-progress countblocked_tasks()- Blocked issues count
backlog_size()- Total backlog metricshigh_priority_open()- High-priority itemsmonthly_activity()- Created vs closed this month
bug_metrics()- Comprehensive bug statistics
team_workload()- Workload by member
throughput_analysis()- Weekly throughput metrics
- Sprint Calculation Explained
- Analytics V2 Complete
- Bug Count Fix
- JSPLIT Architecture
- UI Customization
- Redmine OAuth Setup
- No caching issues
- Always accurate, real-time data
- Uses Redmine's
total_countfield - Single API call with
limit=1for efficiency
- Accepts project names:
"ncel","NCEL" - Accepts project IDs:
6 - Auto-converts using PROJECT_MAP
- Sprint status and burndown
- Bug tracking and severity
- Team workload and capacity
- Throughput and velocity
- Backlog health
.envfile excluded from git- API keys never committed
- Sensitive data sanitized in logs
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
MIT License - See LICENSE file for details
- Akash - Initial work and analytics implementation
- FastMCP framework
- Redmine API
- Groq LLM (llama-3.1-8b-instant)
- React and Vite
- Total Tools: 24
- Analytics Functions: 10
- Token Reduction: 70-85%
- Accuracy: 100% (verified with real data)
- Response Time: < 3 seconds average
- Date range filters need specific format
- Some Redmine instances may have different status/tracker IDs
- Requires manual PROJECT_MAP updates for new projects
- 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
For issues and questions:
- GitHub Issues: https://github.com/a1official/mcp/issues
- Documentation: See docs folder
Built with ❤️ using Python, FastAPI, React, and FastMCP