Jak externí AI klienti (MCP klienti, skripty, jiné nástroje) integrují s AITM přes MCP servery a REST/GraphQL API.
AITM MCP a API
MCP servery
AITM vystavuje dva MCP servery:
- aitm-core (35 nástrojů) — projekty (
onboarding,list_projects,get_project_status), CRUD tasků (create_task,list_tasks,get_task,update_task,delete_task,search_tasks), životní cyklus (run_task,stop_task,stop_project_tasks,stop_all_tasks,resume_task,skip_step,requeue_task— destruktivní,archive_task,restore_task,reorder_task), data tasku (get_task_result,get_task_console,get_task_logs,get_pipeline_status), optimalizaci promptu (optimize_prompt,apply_optimization), vyhledávání v archivu (search_archive), nastavení (get_settings,update_settings), licenci (license_status,license_activate,license_deactivate,license_upload_offline_token,license_remove_offline_token) aserver_restart/server_stop. - aitm-extended (43 nástrojů) — testovací prostředí (
test_env_status,test_app_build,test_app_start,test_app_stop,test_project_pull,get_test_history), screenshoty (get_screenshot_manifest,get_screenshot,get_screenshot_history), kontrakty (search_contracts,get_contract_detail,get_module_summary,find_precedent_tasks,get_danger_zones,investigate_variable,blast_radius,context_for,contracts_health,contracts_resync), dokumentace a proměnné (search_docs,get_docs_for_variable,get_behavior_chain,search_variables,get_variable_tree,get_dom_page,search_dom), selfcheck (run_selfcheck) a zálohu (create_backup), konverzace (list_conversations,get_conversation,delete_conversation), chat/brainstorm zprávy (send_chat_message,send_brainstorm_message), skills (list_skills,skill_create,skill_list,skill_search,skill_get,skill_update,skill_delete), frontu na merge (get_merge_queue),resolve_conflicta zdraví služeb (get_service_health).
Transporty: stdio (lokální, výchozí pro oba servery) a Streamable HTTP na portu 3335 (výchozí, přepsatelné --mcp-port) s povinným bearer tokenem (AITM_MCP_TOKEN nebo config.mcp.httpAuthToken, fail-closed — server se bez něj v HTTP režimu odmítne spustit) a volitelným TLS (--tls-cert/--tls-key). V tomto repozitáři je ve výchozím .mcp.json registrovaný jen aitm-core (stdio); aitm-extended se spouští samostatně (volitelně s --http).
Příklad: připojení MCP klienta (stdio)
{
"mcpServers": {
"aitm-core": {
"command": "npx",
"args": ["tsx", "src/mcp/AitmCoreMcpServer.ts", "--rest-url", "http://localhost:3333"]
}
}
}
Příklad: vzdálený MCP klient (HTTP)
{
"mcpServers": {
"aitm-core-remote": {
"url": "https://your-host:3335",
"headers": { "Authorization": "Bearer <AITM_MCP_TOKEN>" }
}
}
}
REST API
Základ http://localhost:3333, JSON. Porty: 3333 REST/GraphQL/UI, 3334 HTTPS, 3335 MCP Streamable HTTP.
| Endpoint | Účel |
|---|---|
GET /api/onboarding | Sebe-inicializace agenta |
GET /api/tasks | Výpis tasků (projectId?, limit?) |
GET /api/tasks/all | Stránkovaný/filtrovatelný výpis tasků |
POST /api/tasks | Vytvoření tasku |
POST /api/tasks/chain | Vytvoření řetězce závislých tasků |
GET /api/tasks/:id | Detail tasku |
PATCH /api/tasks/:id | Částečná úprava tasku |
DELETE /api/tasks/:id | Trvalé smazání tasku |
POST /api/tasks/:id/run | Spuštění čekajícího tasku |
POST /api/tasks/:id/stop | Zastavení jednoho tasku |
POST /api/tasks/stop-all | Globální stop (volitelně tabId/projectId) |
POST /api/projects/:projectId/tasks/stop-all | Zastavení všech tasků daného projektu |
POST /api/tasks/:id/resume | Obnovení selhaného/zastaveného/konfliktního tasku |
POST /api/tasks/:id/skip | Přeskočení konkrétního kroku pipeline |
POST /api/tasks/:id/archive | Archivace dokončeného tasku |
POST /api/tasks/:id/restore | Obnovení archivovaného tasku (odmítnuto, pokud je větev už mergnutá/smazaná) |
POST /api/tasks/:id/requeue, /reorder | Zařazení zpět do fronty / změna pořadí |
GET /api/tasks/:id/result|console|logs|pipeline | Výsledek, konzole, logy a stav pipeline tasku |
GET /api/archive | Vyhledávání v archivovaných taskách |
GET /api/status | Stav tabů/projektů (stale-while-revalidate cache) |
GET /api/projects | Výpis tabů/projektů |
GET/PUT/PATCH /api/settings | Čtení a úprava nastavení |
POST /api/backup/create | Vytvoření zálohy |
GET /api/merge/queue | Stav fronty na merge |
GET /api/service-health | Zdraví sledovaných služeb |
GET /api/version | Verze serveru (semver, build datum, release mode) |
GET /api/license/status | Stav licence |
POST /api/license/activate | Aktivace licence (licenseKey, instanceLabel, email) |
POST /api/server/restart|stop | Restart nebo zastavení serveru |
POST /graphql | Znalostní endpoint — kontrakty, proměnné, dokumentace |
Toto je výběr nejpoužívanějších endpointů, ne kompletní seznam — REST API má přes 100 endpointů napříč src/rest/RestApi.ts a dedikovanými routery (skills, kontrakty, DOM tagy, i18n, screenshoty, testovací infrastruktura, releases atd.).
Referenční parametry — nejpoužívanější operace
| Operace | Parametry |
|---|---|
POST /api/tasks | tabId, projectId, title (≤ 60 znaků), prompt (≤ 50 KB), volitelně priority (low|medium|high, výchozí medium), useWorktree/usePipeline/autoMergeDev (výchozí true), skipSteps, dependsOn, overridePreFlight |
POST /api/tasks/chain | pole objektů se stejným tvarem jako POST /api/tasks — každá další položka automaticky získá dependsOn:[id předchozí] |
POST /api/tasks/:id/stop | reason? |
POST /api/tasks/:id/resume | fromStepIndex?, instructions?, skipSteps? — bez fromStepIndex se automaticky detekuje první selhaný/zastavený krok |
POST /api/tasks/:id/skip | stepIndex nebo stepName (jedno povinné) — krok musí být pending, nebo failed/stopped na neběžícím tasku |
POST /api/tasks/:id/archive | force?, reason? — jen ze statusů finished/stopped/failed/conflict |
POST /api/tasks/:id/restore | bez těla — jen archivované tasky; 409, pokud je větev už merged nebo branch-missing |
| MCP nástroj | Parametry |
|---|---|
create_task | title, prompt, tabId, projectId (povinné), volitelně priority, useWorktree, usePipeline, autoMergeDev, skipSteps[], dependsOn[] |
list_tasks | status?, tabId?, projectId? |
get_task | id |
run_task | id |
resume_task | id, volitelně fromStepIndex, instructions, skipSteps |
Příklad: vytvoření tasku
curl -X POST http://localhost:3333/api/tasks \
-H 'Content-Type: application/json' \
-d '{"title":"Fix auth bug","prompt":"READ CLAUDE.md first...","tabId":"ctm","projectId":"ctm-dashboard","priority":"high","useWorktree":true,"usePipeline":true,"autoMergeDev":true}'
Poznámka: title max. 60 znaků, prompt max. 50 KB; výchozí hodnoty useWorktree/usePipeline/autoMergeDev jsou true, výchozí priority je medium.
Příklad: řetězec závislých tasků
curl -X POST http://localhost:3333/api/tasks/chain \
-H 'Content-Type: application/json' \
-d '[
{"title":"Add DB column","prompt":"...","tabId":"ctm","projectId":"ctm-dashboard"},
{"title":"Use column in API","prompt":"...","tabId":"ctm","projectId":"ctm-dashboard"}
]'
Druhý task čeká, dokud první nezmergne do dev, protože každá další položka automaticky dostane dependsOn:[id předchozí].
Příklad: zastavení a obnovení tasku
curl -X POST http://localhost:3333/api/tasks/42/stop \
-H 'Content-Type: application/json' -d '{"reason":"manual stop"}'
curl -X POST http://localhost:3333/api/tasks/42/resume \
-H 'Content-Type: application/json' -d '{}'
Tipy
- Pro lokální integraci (stejný stroj) použijte stdio transport — je jednodušší a nevyžaduje token.
- Pro vzdálený přístup vždy nastavte
AITM_MCP_TOKEN— server je bez něj fail-closed a odmítne se spustit v HTTP režimu. - Pro objevování kontraktů a proměnných preferujte nástroje
aitm-extendedpřed ručním voláním/graphql. GET /api/statusodpovídá okamžitě z cache a osvěžuje se na pozadí — nečekejte, že vždy odráží úplně nejnovější stav.