Konfiguracja

Włączenie serwera i uwierzytelnienie klienta

  1. Włączanie
  2. Ograniczanie tego, co mogą agenci
  3. Strona MCP
  4. Uwierzytelnianie

Włączanie

Ustaw ENABLE_MCP na 1 albo włącz go w Ustawienia > Połączenia > MCP (zobacz Strona MCP). Przełącznik zmieniony na stronie ustawień obowiązuje od razu, bez restartu. Dopóki jest wyłączony, endpoint odpowiada 404. Endpoint to:

POST <your url>/api/v2/mcp

Używa bezstanowego Streamable HTTP ze zwykłymi odpowiedziami JSON, więc GET i DELETE zwracają 405.


Ograniczanie tego, co mogą agenci

Dwa kolejne przełączniki zawężają serwer MCP dla każdego klienta. Podobnie jak ENABLE_MCP obowiązują bez restartu:

Zmienna Przy 1
MCP_READ_ONLY Serwer nie oferuje żadnego z narzędzi, które uruchamiają, planują lub zmieniają (launch_job, relaunch_job, plan_job, create_schedule, delete_schedule, store_job, delete_stored_job), i odrzuca je. Agenci mogą wyświetlać, czytać i wypełniać formularze, czytać harmonogramy i zapisane zadania oraz śledzić zadania, ale niczego nie uruchamiają ani nie zmieniają: to bezpieczny sposób na wypróbowanie agenta.
MCP_CHAT_FORMS_ONLY Agenci widzą tylko formularze z ustawionym enableForChat: true, czyli tę samą listę co asystent czatu. Każdy inny formularz i każde jego zadanie odpowiada jak nieznalezione.

Oba są domyślnie wyłączone: agenci widzą każdy formularz, na który pozwalają role użytkownika, i mogą go uruchamiać.


Strona MCP

Ustawienia > Połączenia > MCP zawiera ustawienia serwera MCP w dwóch kartach.

  • Ogólne ma trzy przełączniki, ENABLE_MCP, MCP_READ_ONLY i MCP_CHAT_FORMS_ONLY, zapisywane przyciskiem Zapisz. Dwa pozostałe można zmieniać tylko wtedy, gdy serwer MCP jest włączony.
  • Konfiguracja klienta pokazuje Punkt końcowy, z przyciskiem do skopiowania, oraz gotową konfigurację dla Claude Code (.mcp.json lub polecenie claude mcp add), Cursor (~/.cursor/mcp.json), VS Code (.vscode/mcp.json, który pyta o token przy pierwszym uruchomieniu serwera) i Codex (~/.codex/config.toml, z tokenem w zmiennej środowiskowej ANSIBLEFORMS_TOKEN). Każda ma swój przycisk kopiowania; zastąp <your-token> własnym tokenem, utworzonym przez link Utwórz token.

Punkt końcowy jest budowany z adresu URL aplikacji (Ustawienia > URL), gdy jest ustawiony, a w przeciwnym razie z adresu przeglądarki.


Uwierzytelnianie

Każde żądanie wymaga tokenu dostępu AnsibleForms:

Authorization: Bearer <token>

Uzyskaj go w zwykły sposób (POST /api/v2/auth/login lub przepływy OIDC / Entra ID) i odświeżaj przez POST /api/v2/token. Celowo nie ma narzędzia logowania: hasło przekazane jako argument narzędzia trafiłoby do kontekstu modelu językowego i do historii czatu.

Role użytkownika muszą też zezwalać na serwer MCP, przez opcję roli allowMcp. Gdy żadna rola użytkownika jej nie ustawia, przyjmuje wartość allowChat, która jest domyślnie włączona. Użytkownik, któremu odmówiono dostępu, dostaje 403 na każde żądanie.

  • Backend czatu sam loguje użytkownika, przechowuje token odświeżania i przekazuje token dostępu przy każdym wywołaniu MCP.
  • Klient IDE potrzebuje tokenu, który żyje wystarczająco długo, aby skonfigurować go raz. Mając rolę z opcją allowApiTokens, utwórz go w Profil > Tokeny API albo zaloguj się z ?expiryDays=<n> w adresie URL logowania, aby uzyskać token ważny przez podaną liczbę dni.

Aby połączyć agenta programistycznego za pomocą takiego tokenu:

Dodaj serwer z tokenem jako nagłówkiem:

claude mcp add --transport http ansibleforms https://af.example.com/api/v2/mcp \
  --header "Authorization: Bearer <token>"