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) a server_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_conflict a 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/onboardingSebe-inicializace agenta
GET /api/tasksVýpis tasků (projectId?, limit?)
GET /api/tasks/allStránkovaný/filtrovatelný výpis tasků
POST /api/tasksVytvoření tasku
POST /api/tasks/chainVytvoření řetězce závislých tasků
GET /api/tasks/:idDetail tasku
PATCH /api/tasks/:idČástečná úprava tasku
DELETE /api/tasks/:idTrvalé smazání tasku
POST /api/tasks/:id/runSpuštění čekajícího tasku
POST /api/tasks/:id/stopZastavení jednoho tasku
POST /api/tasks/stop-allGlobální stop (volitelně tabId/projectId)
POST /api/projects/:projectId/tasks/stop-allZastavení všech tasků daného projektu
POST /api/tasks/:id/resumeObnovení selhaného/zastaveného/konfliktního tasku
POST /api/tasks/:id/skipPřeskočení konkrétního kroku pipeline
POST /api/tasks/:id/archiveArchivace dokončeného tasku
POST /api/tasks/:id/restoreObnovení archivovaného tasku (odmítnuto, pokud je větev už mergnutá/smazaná)
POST /api/tasks/:id/requeue, /reorderZařazení zpět do fronty / změna pořadí
GET /api/tasks/:id/result|console|logs|pipelineVýsledek, konzole, logy a stav pipeline tasku
GET /api/archiveVyhledávání v archivovaných taskách
GET /api/statusStav tabů/projektů (stale-while-revalidate cache)
GET /api/projectsVýpis tabů/projektů
GET/PUT/PATCH /api/settingsČtení a úprava nastavení
POST /api/backup/createVytvoření zálohy
GET /api/merge/queueStav fronty na merge
GET /api/service-healthZdraví sledovaných služeb
GET /api/versionVerze serveru (semver, build datum, release mode)
GET /api/license/statusStav licence
POST /api/license/activateAktivace licence (licenseKey, instanceLabel, email)
POST /api/server/restart|stopRestart nebo zastavení serveru
POST /graphqlZnalostní 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

OperaceParametry
POST /api/taskstabId, 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/chainpole 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/stopreason?
POST /api/tasks/:id/resumefromStepIndex?, instructions?, skipSteps? — bez fromStepIndex se automaticky detekuje první selhaný/zastavený krok
POST /api/tasks/:id/skipstepIndex nebo stepName (jedno povinné) — krok musí být pending, nebo failed/stopped na neběžícím tasku
POST /api/tasks/:id/archiveforce?, reason? — jen ze statusů finished/stopped/failed/conflict
POST /api/tasks/:id/restorebez těla — jen archivované tasky; 409, pokud je větev už merged nebo branch-missing
MCP nástrojParametry
create_tasktitle, prompt, tabId, projectId (povinné), volitelně priority, useWorktree, usePipeline, autoMergeDev, skipSteps[], dependsOn[]
list_tasksstatus?, tabId?, projectId?
get_taskid
run_taskid
resume_taskid, 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-extended před ručním voláním /graphql.
  • GET /api/status odpovídá okamžitě z cache a osvěžuje se na pozadí — nečekejte, že vždy odráží úplně nejnovější stav.