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
访问服务器

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

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选