Podłączenie
Logowanie kontem Mediflo dla Claude Code i Claude Desktop oraz gotowe fragmenty konfiguracji z kluczem API dla Cursora, VS Code i surowego JSON-RPC.
Adres serwera jest jeden i zawsze ten sam:
https://app.mediflo.ai/api/external/mcpDo uwierzytelnienia prowadzą dwie drogi, a wybór jest prosty:
- Logowanie kontem Mediflo (OAuth) — rekomendowane dla ludzi. Claude Code, Claude Desktop i claude.ai same odkrywają nasz serwer autoryzacji, otwierają przeglądarkę i proszą Cię o zgodę. Nie ma klucza do skopiowania ani do zgubienia, a asystent dostaje dokładnie te uprawnienia, które masz w aplikacji.
- Klucz API — dla serwerów, integracji, zadań CI i klientów, które nie otworzą przeglądarki (Cursor, VS Code, curl). Klucz działa z uprawnieniami osoby, która go utworzyła: gdy jej konto zostanie dezaktywowane albo usunięte, klucz przestaje działać (tak samo jak unieważniony). Klucz dla integracji produkcyjnej twórz więc z konta, które w organizacji zostaje.
Logowanie kontem Mediflo
Jedna komenda — bez nagłówka z kluczem:
claude mcp add --transport http mediflo https://app.mediflo.ai/api/external/mcpPotem w sesji wpisz /mcp, wybierz mediflo i Authenticate. Otworzy się karta przeglądarki: zaloguj się kontem Mediflo i kliknij Allow. Po powrocie /mcp wypisuje narzędzia widoczne dla Twoich uprawnień.
Uprawnienia
Asystent podłączony przez logowanie działa jako Ty: zakresy API wyliczamy z Twoich uprawnień w aplikacji, więc nie zrobi niczego, czego sam nie możesz zrobić w Mediflo. Zmiana uprawnień dociera do asystenta w ciągu godziny.
Samo podłączenie wymaga uprawnienia „Łączenie asystentów AI przez MCP” (mcp.connect). Administratorzy i supervisorzy mają je domyślnie; konsultantowi trzeba je nadać. Bez niego strona zgody wyjaśni, czego brakuje, i nie wyda żadnego tokenu.
Podłączonych asystentów widać w aplikacji: Ustawienia → Integracje → MCP → Połączeni asystenci. Każdego odłączysz jednym kliknięciem — dostęp znika natychmiast, nie po wygaśnięciu tokenu. Administrator (uprawnienie api-keys.manage) widzi i odłącza asystentów całej organizacji.
Nie ma tu żadnego sekretu do przechowania
Token dostępowy żyje godzinę i odnawia się sam, a odświeżenie ponownie wylicza zakresy z Twoich aktualnych uprawnień. Nic nie ląduje w pliku w repozytorium.
Klucz API
Klucz wygenerujesz w aplikacji: Ustawienia → Integracje → Klucze API. Pokazujemy go raz, więc zapisz go od razu w menedżerze sekretów swojego klienta. Nadaj mu minimalny zestaw zakresów — to one decydują, które narzędzia zobaczy agent.
Klucz to nie plik w repozytorium
Konfiguracje poniżej trzymają klucz w pliku. .cursor/mcp.json i .vscode/mcp.json bardzo łatwo trafiają do gita. Dodaj je do .gitignore albo użyj podstawienia zmiennej środowiskowej, które oferuje Twój klient.
W każdym fragmencie podmień TWOJ_KLUCZ_API na własny klucz.
Utwórz .cursor/mcp.json w katalogu projektu (albo ~/.cursor/mcp.json, jeśli chcesz mieć serwer we wszystkich projektach):
{
"mcpServers": {
"mediflo": {
"url": "https://app.mediflo.ai/api/external/mcp",
"headers": {
"Authorization": "Bearer TWOJ_KLUCZ_API"
}
}
}
}Serwer zdalny rozpoznaje się po polu url — command jest tylko dla serwerów lokalnych. Klucz możesz też podstawić ze zmiennej środowiskowej zapisem "Bearer ${env:MEDIFLO_API_KEY}". Status połączenia widać w Ustawieniach Cursora w sekcji MCP.
Wymagania transportu
| Reguła | Szczegół |
|---|---|
| Metoda | Tylko POST. GET dostaje 405 i nagłówek Allow: POST — bez sesji nie ma czego streamować. |
Nagłówek Accept | Musi zawierać application/json oraz text/event-stream. |
Nagłówek Authorization | Bearer mflo_live_… (klucz API) albo Bearer mflo_oat_… (token z logowania). Brak lub błędny nagłówek to 401 z nagłówkiem WWW-Authenticate, po którym klient sam rozpoczyna logowanie. |
| Wersja protokołu | Od 2024-10-07 do 2025-11-25 w każdej organizacji — m.in. 2025-11-25, 2025-06-18 i 2025-03-26 działają jak dotąd, a istniejące połączenia nie wymagają ponownego łączenia. Wersję 2026-07-28 włączamy per organizacja (poproś o to wsparcie Mediflo). Bez niej żądanie w tej wersji dostaje 400 i -32000, a klient wraca do 2025-11-25. |
| Wsadowe JSON-RPC | Nieobsługiwane. Tablica w ciele żądania dostaje -32600 — batching zniknął ze specyfikacji MCP w wersji 2025-06-18. |
| Rozmiar ciała | Maksymalnie 1 MB. |
Wersja protokołu 2026-07-28
Dotyczy organizacji z włączoną wersją 2026-07-28. Klienty MCP, które ją obsługują, spełniają poniższe reguły same — przydają się przy surowych żądaniach.
- Bez
initializei bez sesji. Klient zwykle zaczyna odserver/discover, żeby ustalić wersję, ale to krok opcjonalny:tools/listitools/callz kopertą działają od pierwszego żądania. - Koperta w każdym żądaniu.
params._metamusi zawieraćio.modelcontextprotocol/protocolVersion("2026-07-28") iio.modelcontextprotocol/clientCapabilities(obiekt, może być pusty).io.modelcontextprotocol/clientInfojest zalecane, nie wymagane. - Nagłówki lustrzane do ciała.
MCP-Protocol-Versionz tą samą wersją co koperta,Mcp-Methodz nazwą metody z ciała, a przytools/calltakżeMcp-Namez nazwą narzędzia (params.name). Niezgodność nagłówka z ciałem, a także brakMcp-MethodalboMcp-Name, to400i-32020. - Bez strumienia zmian.
subscriptions/listendostaje404— serwer jest bezstanowy i ogłaszalistChanged: false.
curl -X POST https://app.mediflo.ai/api/external/mcp \
-H "Authorization: Bearer TWOJ_KLUCZ_API" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2026-07-28" \
-H "Mcp-Method: tools/call" \
-H "Mcp-Name: get_server_info" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_server_info","arguments":{},"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientCapabilities":{}}}}'Pierwsze wywołanie
Poproś agenta o wywołanie get_server_info. Odpowiedź zawiera wersję serwera, negocjowane wersje protokołu, zakresy Twojego połączenia i listę narzędzi, którą ono widzi — to najszybsze potwierdzenie, że połączenie i uprawnienia są w porządku. Potem list_bots pokaże boty Twojej organizacji.
Coś nie działa? Zajrzyj do rozwiązywania problemów.