Upozornění: Toto je neoficiální komunitní projekt a není přímo podporován společností Freelo.
MCP Server pro Freelo API v1 - implementace proxy serveru pro komunikaci s Freelo API pomocí Model Context Protocol (MCP). Freelo je česká služba pro projektové řízení a správu úkolů.
Freelo MCP Server poskytuje rozhraní pro komunikaci s Freelo API pomocí Model Context Protocol (MCP). Umožňuje integraci Freelo do AI asistentů jako je Cline, Claude a další, kteří podporují MCP protokol.
Projekt obsahuje dvě hlavní komponenty:
- REST API Server - Tradiční REST API pro komunikaci s Freelo API
- MCP Server - Server implementující Model Context Protocol pro použití s AI asistenty
# Klonování repozitáře
git clone https://github.com/karlost/FreeloMCP.git
cd FreeloMCP
# Instalace závislostí
npm install
# Globální instalace
npm install -g freelo-mcp
# Nebo použití bez instalace
npx freelo-mcp
Před použitím je potřeba nastavit proměnné prostředí pro autentizaci s Freelo API. Existují dvě možnosti konfigurace:
Vytvořte soubor .env
v kořenovém adresáři projektu s následujícím obsahem:
# Volitelné nastavení serveru
PORT=3000
NODE_ENV=development
# Povinné autentizační údaje pro Freelo API
FREELO_EMAIL=vas@email.cz
FREELO_API_KEY=VAS_API_KLIC
FREELO_USER_AGENT=freelo-mcp
Můžete také nastavit proměnné prostředí přímo při spuštění:
FREELO_EMAIL=vas@email.cz FREELO_API_KEY=VAS_API_KLIC FREELO_USER_AGENT=freelo-mcp node mcp-server.js
- Node.js verze 18.0.0 nebo vyšší
# Vývojové prostředí
npm run dev
# Produkční prostředí
npm start
# Vývojové prostředí
npm run mcp:dev
# Produkční prostředí
npm run mcp
# Pomocí npx (po instalaci balíčku)
freelo-mcp
# Pomocí npx (bez instalace)
npx freelo-mcp
# Lokální spuštění
node bin/freelo-mcp.js
Pro integraci s Cline (AI asistent podporující MCP) vytvořte soubor cline_mcp_settings.json
ve vašem domovském adresáři s následujícím obsahem:
{
"mcpServers": {
"freelo-mcp": {
"command": "node",
"args": ["bin/freelo-mcp.js"],
"env": {
"NODE_ENV": "production",
"FREELO_EMAIL": "vas@email.cz",
"FREELO_API_KEY": "VAS_API_KLIC",
"FREELO_USER_AGENT": "freelo-mcp"
},
"disabled": false,
"autoApprove": []
}
}
}
Ujistěte se, že:
- Cesta k souboru
bin/freelo-mcp.js
je správná (může se lišit podle způsobu instalace) - Autentizační údaje (
FREELO_EMAIL
,FREELO_API_KEY
) jsou správné - Po nastavení restartujte Cline, aby se změny projevily
Projekt obsahuje automatizované testy pro ověření funkčnosti MCP nástrojů. Testy používají mockování API pomocí knihovny nock
a nepotřebují reálné přihlašovací údaje.
npm test
npm test -- tests/mcp-tools-simple.test.js
npm test -- --coverage
Autentizace probíhá pomocí HTTP Basic Authentication. Jako uživatelské jméno se používá email pro přihlášení do Freelo a jako heslo API klíč.
Každý požadavek musí obsahovat hlavičku User-Agent.
Při použití MCP serveru je autentizace prováděna výhradně pomocí proměnných prostředí:
- Nastavte proměnné prostředí
FREELO_EMAIL
,FREELO_API_KEY
aFREELO_USER_AGENT
v souboru.env
nebo vcline_mcp_settings.json
- Všechny MCP nástroje automaticky použijí tyto hodnoty pro autentizaci s Freelo API
- Není potřeba předávat autentizační údaje v každém požadavku
Následující tabulka zobrazuje stav implementace jednotlivých MCP nástrojů na základě posledního testování:
Kategorie | Nástroj | Popis | Stav | Poznámka |
---|---|---|---|---|
Projekty | get_projects |
Získání vlastních projektů | ✅ | |
get_all_projects |
Získání všech projektů | ✅ | ||
create_project |
Vytvoření nového projektu | ✅ | ||
get_project_details |
Získání detailu projektu | ✅ | ||
archive_project |
Archivace projektu | ✅ | ||
activate_project |
Aktivace projektu | ✅ | ||
delete_project |
Smazání projektu | ✅ | ||
Úkoly | get_all_tasks |
Získání všech úkolů (globálně, s filtry) | Vrací úkoly ze všech projektů i při použití filtru projectId . |
|
create_task |
Vytvoření nového úkolu v tasklistu | ✅ | ||
get_task_details |
Získání detailu konkrétního úkolu | ✅ | ||
edit_task |
Úprava existujícího úkolu | ✅ | ||
delete_task |
Smazání úkolu | ✅ | ||
finish_task |
Dokončení úkolu | ✅ | ||
activate_task |
Aktivace úkolu | ✅ | ||
Tasklisty | get_project_tasklists |
Získání taskistů pro projekt | ✅ | |
create_tasklist |
Vytvoření nového tasklistu v projektu | ✅ | ||
get_tasklist_tasks |
Získání úkolů v tasklistu | ✅ | ||
Uživatelé | get_users |
Získání seznamu všech uživatelů | ✅ | |
remove_workers |
Odstranění pracovníků z projektu | ❌ | Selhává s chybou 404. | |
Soubory | get_all_files |
Získání seznamu všech souborů a dokumentů | ✅ | |
upload_file |
Nahrání souboru | ❌ | Selhává s chybou TypeError (očekává Blob místo Base64). |
|
download_file |
Stažení souboru | ❓ | Netestováno (závisí na upload_file ). |
|
Podúkoly | create_subtask |
Vytvoření nového podúkolu k úkolu | Vrací nesprávné task_id v odpovědi. |
|
get_subtasks |
Získání seznamu podúkolů úkolu | Vrací podúkoly z celého projektu místo filtrování dle taskId . |
||
Komentáře | create_comment |
Přidání komentáře k úkolu | ✅ | |
edit_comment |
Úprava komentáře | ✅ | ||
Štítky | add_labels_to_task |
Přidání štítků k úkolu | ✅ | |
remove_labels_from_task |
Odstranění štítků z úkolu | ✅ |
Legenda:
- ✅: Funkční
⚠️ : Funkční s problémy/neočekávaným chováním- ❌: Nefunkční
- ❓: Netestováno
Pokud chcete přispět k vývoji tohoto projektu, můžete vytvořit pull request nebo otevřít issue na GitHubu.
Návrhy na další vývoj:
- Implementace dalších MCP nástrojů pro pokrytí všech funkcí Freelo API
- Vylepšení dokumentace a příkladů použití
- Přidání podpory pro další funkce Freelo API (notifikace, štítky, atd.)
Tento projekt je licencován pod licencí MIT.
Chodeec (karlost)