Przejdź do głównej zawartości

Debugowanie produkcji z edytora: Sentry, Grafana, Datadog i PostHog MCP

Serwery MCP do obserwowalności pozwalają Claude Code, Codeksowi i Cursorowi czytać dowody wprost z produkcji: Sentry dostarcza błędy i ślady, Grafana i Datadog metryki, logi i alerty, a PostHog metryki produktowe. Podłączone tylko do odczytu zamieniają „napraw główny błąd produkcji” w pętlę, która zaczyna się od prawdziwego stack trace’a i kończy metryką potwierdzającą, że poprawka działa.

Ta strona jest dla programistów, którzy biorą dyżury, i dla tech leadów odpowiedzialnych za proces on-call. Alert się odpala, otwierasz Grafanę, żeby znaleźć skok, przechodzisz do Sentry po stack trace, kopiujesz go do agenta, czekasz na poprawkę, wdrażasz, a potem sprawdzasz trzy dashboardy, żeby zobaczyć, czy zadziałało. Agent napisał pięć linii kodu, a ty przez większą część godziny robiłeś za schowek między czterema systemami.

  • Sprawdzone polecenia instalacji Sentry, Grafany, Datadoga i PostHoga w trybie tylko do odczytu we wszystkich trzech agentach
  • Gotowy prompt, który prowadzi od najczęstszego nierozwiązanego błędu w Sentry do czerwonego testu i lokalnej poprawki
  • Pętlę incydentu: alert w Grafanie lub Datadogu, błąd w Sentry, poprawka, wdrożenie przez CI, weryfikacja metryki w PostHogu
  • Zmierzony koszt kontekstu każdej wtyczki dostawcy i wskazówkę, kiedy lepszy jest sam serwer
  • Pułapki: błędny pakiet Grafany, nagłówek Sentry, który nie jest Bearer, i narzędzia zapisu, które zostają włączone, dopóki ich nie wyłączysz

Który serwer MCP odpowiada na które pytanie o incydent?

Dział zatytułowany „Który serwer MCP odpowiada na które pytanie o incydent?”

Każdy serwer odpowiada na inne pytanie. Instaluj serwery usług, z których już korzystasz; żaden nie zastępuje innego.

SerwerNa jakie pytanie odpowiadaTransport i uwierzytelnianieKontrola trybu tylko do odczytuPopularność (2026-09-26)
Sentry MCP (Sentry)Który błąd, w którym miejscu kodu, od którego wydania?Zdalny https://mcp.sentry.dev/mcp, OAuth albo token Sentry-BearerDomyślnie inspect i seer; triage (rozwiązywanie, przypisywanie) jest wyłączony, dopóki go nie przyznasz★862; wtyczka 38 810 instalacji
Grafana MCP (Grafana Labs)Co robiły metryki, logi i alerty wokół incydentu?Lokalny uvx mcp-grafana z tokenem konta serwisowego albo zdalny Grafana Cloud--disable-write★3,5 tys.
Datadog MCP (Datadog, zarządzany)Który monitor się odpalił i co pokazują logi oraz ślady APM?Zdalny, osobny URL dla każdego regionu (site) Datadoga; OAuth, a wtyczka obsługuje też uwierzytelnianie kluczamiREADME nie opisuje przełącznika; zawęź narzędzia przez /ddtoolsets we wtyczce i rolę użytkownika Datadogadatadog-labs/mcp-server ★45 (repozytorium z dokumentacją; serwer jest zarządzany)
PostHog MCP (PostHog)Czy użytkownicy to odczuli i czy poprawka przywróciła lejek?Zdalny https://mcp.posthog.com/mcp, OAuth albo osobisty klucz APILista dozwolonych narzędzi do odczytu w ?tools=; README nie opisuje flagi tylko do odczytumonorepo PostHog/posthog ★39,9 tys.

Popularność to gwiazdki na GitHubie (GitHub API) i liczby instalacji z katalogu Claude Marketplace (claude.com/plugins), odczytane 26.09.2026. Gwiazdki mierzą uwagę poświęconą repozytorium, a nie użycie serwera.

Adresy URL i pakiety są takie same w każdym agencie; różni się tylko polecenie albo plik konfiguracji. Wpisy wspólne dla zespołu trzymaj w pliku projektu (.mcp.json, .cursor/mcp.json), żeby przechodziły przez review, a każde poświadczenie w zmiennej środowiskowej albo w pliku poza repozytorium.

Okno terminala
# Terminal, katalog główny repo. --transport http jest wymagany; bez niego Claude Code zapisze wpis stdio
claude mcp add -s project --transport http sentry https://mcp.sentry.dev/mcp
claude mcp login sentry # albo /mcp wewnątrz sesji

Token zamiast OAuth (CI albo praca w trybie headless). Pojedyncze cudzysłowy zostawiają zmienną nierozwiniętą w .mcp.json; Claude Code rozwija ją przy starcie:

Okno terminala
claude mcp add -s project --transport http sentry https://mcp.sentry.dev/mcp \
-H 'Authorization: Sentry-Bearer ${SENTRY_ACCESS_TOKEN}'

Na ekranie OAuth zostaw odznaczone Triage Issues i Manage Projects & Teams. Domyślne uprawnienia, inspect i seer, czytają zgłoszenia, zdarzenia, ślady, nagrania sesji i wydania oraz uruchamiają analizę Seer; update_issue należy do triage. Z tokenem serwer przyznaje wszystkie uprawnienia, więc zawęź je w URL: https://mcp.sentry.dev/mcp?skills=inspect,seer.

Sentry wydaje też dwie wtyczki i wybierasz jedną z nich. sentry@claude-plugins-official (źródło getsentry/plugin-claude, w Codeksie codex plugin add sentry@openai-curated, w Cursorze getsentry/plugin-cursor w ustawieniach wtyczek) łączy hostowany serwer ze skillami sentry-for-ai, między innymi sentry-debug-issue i sentry-fix-stack-traces. sentry-mcp@sentry-mcp (najpierw claude plugin marketplace add getsentry/sentry-mcp) dodaje zamiast tego subagenta sentry-mcp, który trzyma duże zdarzenia poza głównym kontekstem. Instalacja obu rejestruje serwer dwukrotnie. Skille pochodzą z repozytorium źródłowego getsentry/sentry-for-ai, które według Sentry instaluje się przez jedną z tych wtyczek, a nie bezpośrednio.

Oficjalny serwer to pakiet PyPI mcp-grafana (1.6.0), uruchamiany przez uvx. Utwórz konto serwisowe z rolą Viewer, zapisz jego token w pliku poza repozytorium i wskaż ten plik w GRAFANA_SERVICE_ACCOUNT_TOKEN_FILE. Serwer czyta plik przy każdym żądaniu, więc rotacja tokenu nie wymaga restartu.

Okno terminala
claude mcp add -s project grafana \
-e GRAFANA_URL=https://yourstack.grafana.net \
-e 'GRAFANA_SERVICE_ACCOUNT_TOKEN_FILE=${HOME}/.config/grafana/mcp-token' \
-- uvx mcp-grafana --disable-write

--disable-write usuwa aktualizację dashboardów, tworzenie incydentów, zmiany reguł alertów i wyciszeń, adnotacje i snapshoty. Usuwa też narzędzia surowego SQL dla źródeł danych, query_sql i query_influxdb, bo wykonują każde polecenie, na które pozwalają poświadczenia źródła; dodaj --enable-query, żeby je zachować, gdy te poświadczenia są tylko do odczytu. Usuwa też dwa narzędzia Sift, find_error_pattern_logs i find_slow_requests, bo tworzą rekordy dochodzeń. Żeby je zachować, dodaj --enable-write-tools=find_error_pattern_logs,find_slow_requests; wymagają roli Editor. W Grafana Cloud możesz pominąć lokalny proces: https://mcp.grafana.com/mcp to endpoint z wtyczki Grafany grafana-cloud-mcp (claude mcp add --transport http grafana-cloud https://mcp.grafana.com/mcp). Flagi z tej strony dotyczą lokalnego serwera, więc zanim uznasz hostowany endpoint za tylko do odczytu, sprawdź przez /mcp, jakie narzędzia udostępnia.

Okno terminala
# US1. Dla UE zamień host na mcp.datadoghq.eu; pozostałe regiony mają własny host
claude mcp add -s project --transport http datadog https://mcp.datadoghq.com/v1/mcp

Albo claude plugin install datadog@claude-plugins-official (wersja preview) i /ddsetup, które przeprowadzi cię przez wybór regionu (site) Datadoga. Nie instaluj obu.

Dopasuj host MCP do regionu z adresu Datadoga: app.datadoghq.eu oznacza mcp.datadoghq.eu. README Datadoga nie opisuje przełącznika tylko do odczytu (sprawdzone 26.09.2026), więc loguj się jako użytkownik Datadoga z rolą dopasowaną do zadania, a we wtyczce wyłącz niepotrzebne grupy narzędzi przez /ddtoolsets. W CI i sesjach bez przeglądarki wtyczka przyjmuje też uwierzytelnianie kluczami: przed uruchomieniem Claude Code ustaw DD_MCP_DOMAIN (sam host, np. mcp.datadoghq.com, bez https://), DD_API_KEY i DD_APPLICATION_KEY. DD_MCP_TOOLSETS przypina włączone zestawy narzędzi jako listę rozdzieloną przecinkami i ma pierwszeństwo przed ustawieniem z /ddtoolsets, więc to jedyny nieinteraktywny sposób na zawężenie narzędzi Datadoga (README wtyczki, sprawdzone 26.09.2026).

npx @posthog/wizard@latest mcp add (kreator 2.78.0) zapisuje wpis dla Cursora, Claude Code, Claude, VS Code i Zeda. Codeksa nie ma na tej liście. Na potrzeby pętli incydentu przypnij zamiast pełnego zestawu narzędzi listę dozwolonych narzędzi do odczytu:

Okno terminala
claude mcp add -s project --transport http posthog \
'https://mcp.posthog.com/mcp?mode=tools&tools=query-funnel,query-trends,query-error-tracking-issue,insights-list,insight-get,dashboard-get,read-data-schema,execute-sql'

Domyślnie serwer działa w trybie cli, z wyjątkiem Cursora, dla którego serwer sam wybiera tryb tools. W trybie cli jedno narzędzie posthog obejmuje wszystkie polecenia, więc reguła po stronie klienta nie zablokuje osobno update-feature-flag. Przypięcie mode=tools sprawia, że każdy klient działa tak samo: serwer rejestruje osobne narzędzie MCP dla każdego narzędzia PostHoga, a tools= udostępnia tylko wymienione, same odczyty (execute-sql wykonuje zapytania HogQL). PostHog nie opisuje przełącznika tylko do odczytu, więc to lista dozwolonych narzędzi jest twoją kontrolą. Filtry w stylu ?features=flags,dashboards stosuj wtedy, gdy chcesz całych obszarów produktu. Projekty w UE używają hosta mcp-eu.posthog.com, żeby OAuth trafił do instancji europejskiej.

Zmierz, zanim ustandaryzujesz. Wiersze wtyczek pochodzą z claude plugin details w Claude Code 2.1.283, a wiersz Grafany z wywołania MCP tools/list na mcp-grafana 1.6.0. Wszystko odczytano 26.09.2026:

InstalacjaKoszt kontekstuCo się ładuje
sentry@claude-plugins-official 1.4.0~1064 tokeny w każdej sesji8 skilli oraz serwer Sentry (schematy niepoliczone)
posthog@posthog 1.1.66~29 443 tokeny w każdej sesji164 skille, agent error-analyzer, 2 hooki oraz serwer PostHoga
uvx mcp-grafana --disable-write 1.6.075 983 znaki schematów narzędzi, czyli około 19 000 tokenów, jeśli załadują się wszystkie65 narzędzi, najwięcej na tej stronie
Zdalny serwer DatadogaNiezmierzoneSerwer jest zarządzany i pokazuje narzędzia dopiero po zalogowaniu do Datadoga, a środowisko autora nie miało konta

Wiersz PostHoga zmierzyliśmy dla wtyczki z marketplace’u samego PostHoga (claude plugin marketplace add PostHog/ai-plugin, potem claude plugin install posthog@posthog); wpis posthog@claude-plugins-official wskazuje to samo repozytorium PostHog/ai-plugin. README wtyczki PostHoga mówi o „30+ task-specific skills”; wersja 1.1.66 instaluje 164. Pętla incydentu potrzebuje ośmiu narzędzi do odczytu, więc URL z listą dozwolonych narzędzi kosztuje ułamek tej kwoty. Wtyczkę zostaw do pracy z analityką produktową albo włączaj ją tylko w takich sesjach. Liczba dla Grafany to górna granica, oszacowana jako cztery znaki na token, a nie odczytana z /context: Claude Code i Codex ładują narzędzia MCP przez tool search, więc schemat trafia do kontekstu dopiero wtedy, gdy agent go pobierze. Schematy serwerów dochodzą do liczb dla wtyczek; uruchom /context przed każdym claude mcp add i po nim, także dla Datadoga. W Codeksie enabled_tools i disabled_tools we wpisie serwera filtrują to, co widzi model. Więcej technik znajdziesz w artykule o ograniczaniu kosztu tokenów MCP.

Od tego przykładu warto zacząć. Korzysta tylko z Sentry, nic nie zapisuje i kończy się testem, który dowodzi poprawki. Zobaczysz wywołanie search_issues, potem search_sentry_tools/execute_sentry_tool uruchamiające get_issue_details, get_event_stacktrace albo get_trace_details, a opcjonalnie analyze_issue_with_seer. Serwer udostępnia narzędzia szczegółowe przez tę parę narzędzi katalogu, a nie pod ich własnymi nazwami.

Co powinieneś zobaczyć: krótkie podsumowanie zgłoszenia, mapowanie ramek na pliki, nowy test, który pada z tym samym typem wyjątku i komunikatem co zdarzenie w Sentry, a potem diff i zielony przebieg. Jeśli agent nie potrafi odtworzyć błędu, mówi to wprost i wymienia, czego mu brakuje, najczęściej tagu albo stanu feature flagi. Nie powinien zgadywać poprawki.

Przy nieznanym błędzie dodaj Seer jako drugą opinię:

Przeprowadź pętlę incydentu: alert, błąd, poprawka, wdrożenie, weryfikacja

Dział zatytułowany „Przeprowadź pętlę incydentu: alert, błąd, poprawka, wdrożenie, weryfikacja”

Powyższy przykład zaczyna się od Sentry. Prawdziwy incydent zaczyna się od alertu, a kończy, gdy metryka pokazuje, że użytkownicy znów mają się dobrze. Agent wykonuje wyszukiwania na każdym kroku; bramki należą do ciebie i do CI.

  1. Odczytaj alert. Agent pobiera aktywny alert i metryki wokół niego z Grafany albo Datadoga i ustala okno incydentu.

    W Datadogu ta sama prośba brzmi: „Show the monitor that fired for service checkout, the matching APM traces with errors, and what changed in the 30 minutes before.”

  2. Znajdź błąd. Przekaż okno do Sentry: „Find issues in checkout-api whose events spike inside that window, sorted by event count, and tell me which release introduced each.” Alert daje czas i objaw, Sentry daje miejsce w kodzie i wydanie.

  3. Odtwórz i napraw lokalnie. Uruchom prompt o głównym błędzie z poprzedniej sekcji, przypięty do tego zgłoszenia. Czerwony test jest kryterium akceptacji.

  4. Wdrażaj przez CI, nie z edytora. Agent otwiera pull request, który linkuje zgłoszenie w Sentry i alert oraz zawiera test najpierw czerwony, potem zielony. Review przebiega według zasad przeglądu pull requestów od agenta; właściciel serwisu zatwierdza, a zwykły pipeline wdraża. Serwery MCP przez cały czas zostają w trybie tylko do odczytu.

  5. Sprawdź metrykę. Po wdrożeniu agent sprawdza trzy rzeczy względem progów ustalonych przed poprawką: zgłoszenie w Sentry nie ma nowych zdarzeń w nowym wydaniu, warunek alertu w Grafanie lub Datadogu wrócił poniżej progu, a metryka widoczna dla użytkownika w PostHogu wróciła do poziomu bazowego.

  6. Zamyka człowiek. Gdy wszystkie trzy sprawdzenia przejdą, dyżurny inżynier rozwiązuje zgłoszenie w Sentry i pisze notatkę z incydentu. Agent może przygotować jej szkic z zebranych dowodów; sam proces obsługi incydentu opisuje artykuł o reagowaniu na incydenty z pomocą AI.

Pętla jest taka sama w każdym agencie. Różni się sposób jej prowadzenia:

Kroki 1–3 prowadź w trybie planowania (Plan Mode), żeby zatwierdzić plan, zanim agent zacznie edytować pliki. Z sentry-mcp@sentry-mcp Claude deleguje wyszukiwania w Sentry do subagenta sentry-mcp, a w głównym kontekście zostaje tylko podsumowanie. Narzędzia zapisu, których nigdy nie chcesz wywoływać, zablokuj w .claude/settings.json:

{ "permissions": { "deny": ["mcp__sentry__update_issue", "mcp__posthog__update-feature-flag"] } }

Traktuj to jako zabezpieczenie zapasowe. Prawdziwą kontrolą tylko do odczytu w Sentry jest zakres OAuth albo ?skills=inspect,seer, bo execute_sentry_tool wywołuje narzędzia katalogu po nazwie, a blokada samego update_issue może nie objąć zapisu wysłanego tą drogą.

Sprawdzasz dowody, a nie podsumowanie agenta:

  • Istnieje test odtwarzający błąd i najpierw był czerwony. Na starym kodzie test musi paść z tym samym wyjątkiem co zdarzenie w Sentry. Test, który tylko przechodzi, niczego nie dowodzi o tym incydencie.
  • Pull request linkuje źródła. Identyfikator zgłoszenia w Sentry, alert i okno incydentu są w opisie, więc recenzent sprawdza poprawkę względem dowodów i nie musi ich odtwarzać.
  • Bramki CI zostają obowiązkowe. Testy, sprawdzanie typów i lint działają przed scaleniem, jak przy każdej zmianie. Serwery obserwowalności dodają dowody, ale nie zastępują bramek.
  • Progi ustalasz przed wdrożeniem. Warunek zaliczenia (zero zdarzeń w nowym wydaniu, odsetek błędów poniżej celu, lejek w granicach tolerancji) wpisz do pull requesta i sprawdź w kroku 5. Ustawianie poprzeczki po obejrzeniu liczb to sposób, w jaki częściowa poprawka zostaje uznana za skończoną.
  • Rozwiązuje człowiek. Dyżurny inżynier rozwiązuje zgłoszenie w Sentry i zatwierdza zamknięcie incydentu. Wyłączony triage sprawia, że to reguła wymuszona technicznie, a nie umowna.
  • Wycofanie jest gotowe. Jeśli krok 5 nie przejdzie, wycofaj zmianę zwykłym pipeline’em i wróć do kroku 2.

Co psuje się w MCP do obserwowalności i jak to naprawić?

Dział zatytułowany „Co psuje się w MCP do obserwowalności i jak to naprawić?”

claude mcp add sentry https://mcp.sentry.dev/mcp do niczego się nie łączy. Bez --transport http Claude Code 2.1.283 przyjmuje to polecenie i zapisuje serwer stdio, którego komendą jest URL. Usuń go przez claude mcp remove sentry -s project i dodaj ponownie z flagą.

Sentry odrzuca twój token. Sprawdź, czy nie wysłałeś Authorization: Bearer. Sentry rezerwuje Bearer dla tokenów OAuth MCP; tokeny bezpośrednie używają Sentry-Bearer. W Codeksie oznacza to env_http_headers, a nie --bearer-token-env-var.

Grafana startuje, ale wywołania narzędzi się nie udają. GRAFANA_URL wskazuje zły stack albo konto serwisowe nie ma odpowiedniej roli. Viewer wystarcza do dashboardów, zapytań do źródeł danych i incydentów; narzędzia Sift wymagają roli Editor. GRAFANA_API_KEY jest przestarzały, używaj tokenu konta serwisowego.

Brakuje find_error_pattern_logs. Usunęła je flaga --disable-write. Dodaj --enable-write-tools=find_error_pattern_logs,find_slow_requests, jeśli akceptujesz, że Sift tworzy rekordy dochodzeń.

Zapytania do Lokiego przekraczają limit czasu albo zwracają zalew danych. Szeroki selektor w długim przedziale czasu skanuje dużo danych. Proś o wąski selektor strumienia i krótkie okno, a na serwerze ustaw --loki-guardrail-mode=enforce, żeby odrzucał zapytania bez ograniczeń i podpowiadał agentowi, jak je zawęzić.

Logowanie do Datadoga się nie udaje albo zapytania nic nie zwracają. Najpierw sprawdź region: host MCP musi pasować do regionu twojego Datadoga. Popraw URL i zaloguj się ponownie. We wtyczce /ddsetup pomaga ustawić region, a /ddconfig sprawdza region, uwierzytelnianie i dostęp sieciowy.

Sesja zwalnia, a agent zapomina instrukcje. Schematy narzędzi i skille wtyczek zapełniają kontekst. Sprawdź /context, zastąp wtyczkę PostHoga adresem z listą dozwolonych narzędzi i użyj wtyczki Sentry z subagentem.

Agent wykonuje polecenia z treści komunikatu błędu. Komunikaty zdarzeń, breadcrumbs i linie logów zawierają dane od użytkowników i trafiają do modelu jako tekst, który może potraktować jak instrukcje. Trzymaj narzędzia zapisu wyłączone, nie łącz w sesjach produkcyjnych innych serwerów z prawem zapisu i przeczytaj artykuł o bezpieczeństwie MCP, zanim podłączysz produkcję. Zdarzenia mogą też zawierać dane osobowe, które potem zostają w transkrypcie sesji. Usuwaj je w SDK, zanim trafią do Sentry.

Ogólne problemy z połączeniem opisuje artykuł o problemach z połączeniem MCP.