EasyProject MCP Server

EasyProject MCP Server

Integrates with EasyProject API to manage projects, tasks, users, time tracking, and reporting via MCP protocol in editors like Cursor AI.

Category
访问服务器

README

🚀 EasyProject MCP Server

Model Context Protocol server pro integraci s EasyProject API - umožňuje použití EasyProject nástrojů přímo v Cursor AI editoru.

📋 Obsah

✨ Funkce

Základní funkcionality

  • MCP protokol: Plná implementace Model Context Protocol
  • Správa projektů: Vytváření, aktualizace, mazání a seznam projektů
  • Správa úkolů: Komplexní správa issues včetně přiřazování a označování jako dokončené
  • Správa uživatelů: Seznam uživatelů a analýza pracovního vytížení
  • Časové sledování: Záznam a správa časových záznamů
  • Reporting: Generování sestav projektů a dashboard dat

Pokročilé funkce

  • Caching: In-memory cache s konfigurovatelným TTL
  • Rate limiting: Ochrana před přetížením API
  • Retry logika: Automatické opakování neúspěšných požadavků
  • Strukturované logování: JSON formát pro monitoring
  • Konfigurovatelnost: Rozsáhlé možnosti konfigurace

🚀 Rychlé spuštění

Předpoklady

  • Rust 1.70+
  • Aktivní EasyProject instance
  • API klíč pro EasyProject

Základní spuštění

  1. Klonování repozitáře:
git clone https://github.com/your-org/easyproject-mcp-server.git
cd easyproject-mcp-server
  1. Konfigurace:
cp config.toml.example config.toml
# Upravte config.toml s vašimi údaji
  1. Nastavení environment proměnných:
export EASYPROJECT_API_KEY="your-api-key"
export EASYPROJECT_BASE_URL="https://your-instance.easyproject.com"
  1. Spuštění:
cargo run

📦 Instalace

Pomocí Cargo

cargo install easyproject-mcp-server

Pomocí Docker

docker run -d \
  --name easyproject-mcp \
  -e EASYPROJECT_API_KEY="your-key" \
  -e EASYPROJECT_BASE_URL="https://your-instance.com" \
  easyproject/mcp-server:latest

Sestavení ze zdrojového kódu

git clone https://github.com/your-org/easyproject-mcp-server.git
cd easyproject-mcp-server
cargo build --release

⚙️ Konfigurace

Server používá TOML konfigurační soubor. Příklad kompletní konfigurace:

[server]
name = "EasyProject MCP Server"
version = "1.0.0"
transport = "stdio"  # stdio nebo websocket
websocket_port = 8080

[easyproject]
base_url = "https://your-instance.easyproject.com"
api_version = "v1"
auth_type = "api_key"  # api_key, oauth2, session
api_key = ""  # Doporučujeme nastavit přes ENV
api_key_header = "X-Redmine-API-Key"

[http]
timeout_seconds = 30
max_retries = 3
retry_delay_seconds = 1
user_agent = "EasyProject-MCP-Server/1.0.0"

[rate_limiting]
enabled = true
requests_per_minute = 60
burst_size = 10

[cache]
enabled = true
ttl_seconds = 300
max_entries = 1000
project_ttl = 600
user_ttl = 1800
issue_ttl = 60
time_entry_ttl = 30

[logging]
level = "info"
format = "json"
target = "stdout"

[tools.projects]
enabled = true
include_archived = false
default_limit = 25

[tools.issues]
enabled = true
default_limit = 25
include_attachments = false
include_relations = false

[tools.users]
enabled = true
default_limit = 25

[tools.time_entries]
enabled = true
default_limit = 25

[tools.reports]
enabled = true
cache_ttl = 3600

Environment proměnné

Proměnná Popis Povinná
EASYPROJECT_API_KEY API klíč pro EasyProject Ano
EASYPROJECT_BASE_URL URL EasyProject instance Ano
MCP_LOG_LEVEL Úroveň logování (trace, debug, info, warn, error) Ne

🛠️ Dostupné nástroje

Správa projektů

Nástroj Popis
list_projects Seznam všech projektů s filtrováním
get_project Detail konkrétního projektu
create_project Vytvoření nového projektu
update_project Aktualizace existujícího projektu
delete_project Smazání projektu

Správa úkolů

Nástroj Popis
list_issues Seznam úkolů s filtrováním
get_issue Detail konkrétního úkolu
create_issue Vytvoření nového úkolu
update_issue Aktualizace úkolu
assign_issue Přiřazení úkolu uživateli
complete_task Označení úkolu jako dokončený

Správa uživatelů

Nástroj Popis
list_users Seznam všech uživatelů
get_user Detail konkrétního uživatele
get_user_workload Pracovní vytížení uživatele

Časové sledování

Nástroj Popis
list_time_entries Seznam časových záznamů
get_time_entry Detail časového záznamu
log_time Záznam odpracovaného času
update_time_entry Aktualizace časového záznamu

Reporting

Nástroj Popis
generate_project_report Detailní sestava projektu
get_dashboard_data Agregovaná data pro dashboard

📖 Příklady použití

Získání seznamu projektů

{
  "method": "tools/call",
  "params": {
    "name": "list_projects",
    "arguments": {
      "limit": 10,
      "include_archived": false
    }
  }
}

Vytvoření nového úkolu

{
  "method": "tools/call",
  "params": {
    "name": "create_issue",
    "arguments": {
      "project_id": 1,
      "tracker_id": 1,
      "subject": "Nový úkol",
      "description": "Popis úkolu",
      "assigned_to_id": 5,
      "priority_id": 2
    }
  }
}

Přiřazení úkolu

{
  "method": "tools/call",
  "params": {
    "name": "assign_issue",
    "arguments": {
      "id": 123,
      "assigned_to_id": 5
    }
  }
}

Označení úkolu jako dokončený

{
  "method": "tools/call",
  "params": {
    "name": "complete_task",
    "arguments": {
      "id": 123,
      "done_ratio": 100
    }
  }
}

Generování sestavy projektu

{
  "method": "tools/call",
  "params": {
    "name": "generate_project_report",
    "arguments": {
      "project_id": 1,
      "from_date": "2023-01-01",
      "to_date": "2023-12-31",
      "include_time_entries": true,
      "include_issues": true
    }
  }
}

Získání pracovního vytížení

{
  "method": "tools/call",
  "params": {
    "name": "get_user_workload",
    "arguments": {
      "id": 5,
      "from_date": "2023-11-01",
      "to_date": "2023-11-30"
    }
  }
}

🚢 Deployment

Docker

  1. Vytvoření Docker image:
docker build -t easyproject-mcp-server .
  1. Spuštění kontejneru:
docker run -d \
  --name easyproject-mcp \
  -e EASYPROJECT_API_KEY="your-key" \
  -e EASYPROJECT_BASE_URL="https://your-instance.com" \
  -p 8080:8080 \
  easyproject-mcp-server

systemd (Linux)

  1. Kopírování binárky:
sudo cp target/release/easyproject-mcp-server /usr/local/bin/
  1. Vytvoření systemd service:
sudo tee /etc/systemd/system/easyproject-mcp.service > /dev/null <<EOF
[Unit]
Description=EasyProject MCP Server
After=network.target

[Service]
Type=simple
User=easyproject
WorkingDirectory=/opt/easyproject-mcp
ExecStart=/usr/local/bin/easyproject-mcp-server
Restart=always
RestartSec=10
Environment=EASYPROJECT_API_KEY=your-key
Environment=EASYPROJECT_BASE_URL=https://your-instance.com

[Install]
WantedBy=multi-user.target
EOF
  1. Spuštění služby:
sudo systemctl daemon-reload
sudo systemctl enable easyproject-mcp
sudo systemctl start easyproject-mcp

🔧 Vývoj

Sestavení vývojové verze

cargo build

Spuštění testů

# Unit testy
cargo test

# Integration testy
cargo test --test integration_tests

# Všechny testy s výstupem
cargo test -- --nocapture

Spuštění s debug logováním

RUST_LOG=debug cargo run

Linting a formátování

# Formátování kódu
cargo fmt

# Linting
cargo clippy -- -D warnings

# Kontrola bezpečnosti
cargo audit

Generování dokumentace

cargo doc --open

🔍 Troubleshooting

Časté problémy

"Connection refused" chyba

Chyba: Connection refused (os error 61)

Řešení: Zkontrolujte, že:

  • EasyProject instance je dostupná
  • URL v konfiguraci je správná
  • Firewall neblokuje připojení

"Unauthorized" chyba

Chyba: 401 Unauthorized

Řešení: Zkontrolujte, že:

  • API klíč je správný
  • API klíč má dostatečná oprávnění
  • API klíč není expirovaný

"Rate limit exceeded"

Chyba: 429 Too Many Requests

Řešení:

  • Snižte requests_per_minute v konfiguraci
  • Zvýšte retry_delay_seconds
  • Kontaktujte správce EasyProject instance

Cache problémy

Pro vymazání cache restartujte server nebo nastavte cache.enabled = false.

Debug režim

Pro detailní diagnostiku spusťte server s debug logováním:

RUST_LOG=debug ./easyproject-mcp-server

Logování

Server podporuje strukturované logování. Pro analýzu logů můžete použít nástroje jako jq:

./easyproject-mcp-server | jq '.level == "ERROR"'

Health check

Server poskytuje health check endpoint (pokud je spuštěn v WebSocket módu):

curl http://localhost:8080/health

📝 Licence

MIT License. Viz LICENSE soubor pro detaily.

🤝 Přispívání

  1. Forkněte repozitář
  2. Vytvořte feature branch (git checkout -b feature/amazing-feature)
  3. Commitněte změny (git commit -m 'Add amazing feature')
  4. Pushněte do branch (git push origin feature/amazing-feature)
  5. Otevřete Pull Request

📞 Podpora

🗺️ Roadmap

  • [ ] WebSocket real-time notifikace
  • [ ] Plugin systém
  • [ ] Batch operace
  • [ ] Prometheus metrics
  • [ ] GraphQL endpoint
  • [ ] Webhooks podpora

Vytvořeno s ❤️ pro EasyProject komunitu

⚡ Rychlý Start

1. Deployment

# Použije existující EXE (nejrychlejší)
.\deploy.ps1 -SkipBuild

# Nebo vynutí nový build
.\deploy.ps1 -Force

# Rychlý deployment
.\quick-deploy.ps1

2. Konfigurace Cursor

Zkopírujte deployment/easyproject-mcp-server.exe kamkoliv a nastavte v Cursor:

{
  "mcpServers": {
    "easyproject": {
      "command": "C:\\path\\to\\easyproject-mcp-server.exe",
      "args": [],
      "env": {
        "EASYPROJECT_API_KEY": "your-api-key",
        "EASYPROJECT_BASE_URL": "https://your-instance.easyproject.com"
      }
    }
  }
}

3. Testování

V Cursor můžete použít:

@easyproject list_projects    # Seznam projektů
@easyproject create_issue     # Nový úkol  
@easyproject log_time         # Logování času

🔧 Deployment Skripty

Skript Použití Popis
deploy.ps1 Hlavní deployment Inteligentní build + kompletní balíček
quick-deploy.ps1 Rychlý deployment Pouze kopírování EXE
setup-build-tools.ps1 Setup prostředí Instalace build nástrojů

Troubleshooting Build Problémů

Pokud build selhává s chybou ring crate nebo gcc.exe:

# Rychlé řešení - použije existující EXE
.\deploy.ps1 -SkipBuild

# Oprava build prostředí
.\setup-build-tools.ps1

# Manuální oprava
rustup toolchain install stable-x86_64-pc-windows-msvc
winget install Microsoft.VisualStudio.2022.BuildTools

🎯 Single-File Deployment

EXE soubor (15.29 MB) je kompletně samostatný:

  • ✅ Všechny Rust dependencies zabudované
  • ✅ TLS support (rust-native, bez OpenSSL)
  • ✅ Žádné externí DLL dependencies
  • ✅ Portable - zkopírujte kamkoliv a spusťte

Systémové požadavky:

  • Windows 10/11 x64
  • Visual C++ Redistributable 2019+ (obvykle již nainstalován)

📚 Dokumentace

🛠 Vývoj

Build z sources:

git clone https://github.com/your-repo/easyproject-mcp-server
cd easyproject-mcp-server
cargo build --release

Testování:

cargo test
cargo check

Lokální deployment:

cargo build --release
.\quick-deploy.ps1

🔍 Architektura

Projekt dodržuje principy SOLID, KISS a CLEAN Code:

src/
├── main.rs              # Entry point
├── api/
│   ├── client.rs        # HTTP klient pro EasyProject API
│   └── models.rs        # Datové modely
├── tools/               # MCP nástroje
│   ├── project_tools.rs # Správa projektů
│   ├── issue_tools.rs   # Správa úkolů
│   └── time_tools.rs    # Časové záznamy
└── utils/
    └── formatting.rs    # Formátování výstupů

📄 Licence

MIT License - viz LICENSE soubor.

🤝 Přispívání

  1. Fork projektu
  2. Vytvořte feature branch (git checkout -b feature/amazing-feature)
  3. Commit změny (git commit -m 'Add amazing feature')
  4. Push do branch (git push origin feature/amazing-feature)
  5. Otevřete Pull Request

📞 Podpora


Vyvinuto s ❤️ pro EasyProject komunitu

推荐服务器

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 模型以安全和受控的方式获取实时的网络信息。

官方
精选