Superlog
Superlog: наблюдение и разбор инцидентов приложения через ассистента
Что умеет
- Искать и фильтровать логи, трейсы и метрики
- Настраивать и проверять алерты по условиям
- Создавать и редактировать дашборды с виджетами
- Переключаться между проектами и сервисами
- Собирать список сервисов и активных алертов
Какие данные видит
Ассистент видит телеметрию подключённых проектов пользователя — логи, трейсы, метрики и настройки алертов.
Нужен ли аккаунт
Не нужен: сервер работает без входа
Superlog — открытый агент наблюдаемости, который даёт доступ к логам, трейсам и метрикам приложения на базе OpenTelemetry. Ассистент может искать ошибки, строить дашборды, настраивать алерты и разбираться в инцидентах прямо в чате.
Как подключить
Как подключить Superlog к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://superlog-mcp--superlog.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить Superlog к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://superlog-mcp--superlog.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить Superlog к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://superlog-mcp--superlog.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (48)
Технические названия из tools/list. Нужны только разработчикам.
| query_logs | Search OpenTelemetry logs. Targets the session's active project unless project_id is given. Error rows include flattened exception_type, exception_message, and exception_stacktrace fields when present. |
| query_traces | Search OpenTelemetry spans. Targets the session's active project unless project_id is given. Spans with exception events include flattened exception_type, exception_message, and exception_stacktrace fields when present. |
| query_metrics | Fetch recent metric points across gauge/sum/histogram/summary tables. Targets the session's active project unless project_id is given. Each point includes its data-point `attributes` (the per-series dimensions like route/status/tenant) and `resource_attrs`. gauge/sum points carry a scalar `value`; histogram/summary points carry `count` and `sum` (plus `min`/`max` for histograms) instead, since they have no scalar value. |
| list_services | List distinct service.name values emitting telemetry in the given window. |
| list_projects | List every project the authenticated user can access, across all of their orgs. The active project is marked. |
| get_active_project | Return the project that tools default to when project_id is omitted. |
| set_active_project | Change the default project for subsequent tool calls in this session. Persists for the lifetime of the access token. |
| list_alerts | List all alerts in the active project (or the project_id you pass). |
| get_alert | Fetch a single alert plus its 50 most recent firings. |
| create_alert | Create an alert. For logs/traces sources aggregation must be 'count'; for metric source it must be 'sum' or 'avg' and metric_name is required. |
| update_alert | Patch an alert. Provide only the fields you want to change. Validation runs on the merged result. |
| delete_alert | Delete an alert by id. |
| preview_alert | Evaluate a draft alert spec against current data without saving. Returns whether it would breach right now. |
| test_alert | Re-evaluate a saved alert against current data and return the result. |
| get_home | Fetch the active project's shared home command center, including built-ins, data widgets, links, and grid layouts. |
| set_home_builtin | Show or hide one of the built-in home widgets: setup_todos, active_incidents, or service_map. |
| add_home_widget | Add a chart, table, or markdown widget directly to the shared project home. Uses the same widget config and 12-column layout as dashboards. |
| add_home_link | Add a shared link card to project home. URLs must be absolute and use http or https. |
| update_home_layout | Update positions and sizes for home items on the 12-column grid. Read get_home first and send the items that should move. |
| remove_home_item | Remove a built-in, data widget, or link from project home. Read get_home first to discover item ids. |
| list_dashboards | List dashboards in the active project (or project_id). |
| get_dashboard | Fetch a dashboard with its widgets. |
| create_dashboard | Create a dashboard. Slug is generated from the name. Optionally seed template variables (see `variables`) so widget filters can reference them with $name. |
| update_dashboard | Rename a dashboard. |
| set_dashboard_variables | Replace a dashboard's template-variable list. Pass the FULL set you want to keep — this overwrites the existing list (read the current one with get_dashboard first). Variables let one dropdown drive filters across many widgets: define a variable here, then point widget filters at it with value:"$name". Dashboard template variables — a named picklist that drives widget filters. Each entry is { name, options[], defaultValue?, label?, attributeKey? }. A widget filter references a variable by putting the token "$name" (or "${name}") in a filter value — e.g. resourceAttrs: [{ key: "deployment.environment", value: "$env" }]. At view time the dashboard shows a dropdown per variable and substitutes the selected option into every filter that references it, so one variable can drive filters across many widgets on any attribute key. `options` is the selectable list (empty = free-form); `defaultValue` must be one of `options` when `options` is non-empty; `attributeKey` is optional and only powers a one-click 'filter by this variable' shortcut in the web editor. Variable names must start with a letter and contain only letters, digits, or underscores. |
| delete_dashboard | Delete a dashboard and all its widgets. |
| add_dashboard_widget | Append a widget to a dashboard. Widget types: timeseries_count, timeseries_metric, trace_table, log_table, markdown. Omit `layout` to use the standard size for the type — recommended. The grid is 12 columns wide, so x is 0-11 and w is 1-12; the standard sizes are w:6 h:4 for timeseries charts (half-width), w:12 h:6 for trace_table/log_table (full-width), and w:4 h:5 for markdown. Only pass `layout` when you deliberately want a non-standard size or position. A filter value may reference a dashboard variable with the token "$name" (or "${name}") — e.g. config.filter.resourceAttrs: [{ key: "deployment.environment", value: "$env" }] — which is substituted with the viewer's selected option at view time. Define variables with set_dashboard_variables (or create_dashboard). |
| update_dashboard_widget | Patch a widget's title, config, or layout. As with add_dashboard_widget, a filter value may reference a dashboard variable with the token "$name" (or "${name}"). |
| delete_dashboard_widget | Remove a widget from a dashboard. |
| get_incident | Fetch one incident by its id — the uuid at the end of a superlog.sh/org/<org>/project/<project>/incidents/<id> link — and everything needed to explain it. No project_id is required; the project is resolved from the incident. Returns: the incident summary with the agent's findings (root_cause_text, agent_summary, estimated_impact_text) and its project_id; every linked issue with a stored telemetry `sample` (trace_id, span_id, stacktrace, span/log/resource attributes); and a pointer to the latest investigation run. To pull live telemetry, take a sample's trace_id and call query_traces, or filter query_logs/query_traces by the issue's service + exception type — passing the returned project_id. |
| search_incidents | Search incidents in the active project (or project_id). Incidents are auto-grouped error/anomaly investigations; each row carries the agent's findings (agent_summary, root_cause_text) when available. Filter by status, severity, service, a free-text substring over title/codename, and a last_seen time window. Results are newest-activity-first. By default agent-classified noise (status='autoresolved_noise') is hidden; pass status='all' to include it or status='autoresolved_noise' to inspect just the noise pile. Use get_incident to drill into a single incident's linked issues and telemetry. |
| list_agent_mcp_servers | List the custom MCP servers available to new investigation and Slack-agent sessions for this project. Credentials are always redacted. |
| add_agent_mcp_server | Add a trusted HTTPS Streamable HTTP MCP server to this project. Admin only. Authentication accepts none, bearer/API token, arbitrary API-key header, or OAuth. Credential inputs are write-only and never returned. |
| update_agent_mcp_server | Update a project MCP server. Admin only. Omit auth to preserve its credential; supplying auth replaces it. A changed URL must be explicitly trusted. |
| remove_agent_mcp_server | Remove a custom MCP server from this project. Admin only. |
| start_agent_mcp_oauth | Start OAuth authorization-code authentication with discovery, PKCE, resource binding, and dynamic client registration when needed. Admin only. Open the returned authorizationUrl in a browser. |
| connect_agent_mcp_client_credentials | Exchange the configured OAuth client ID and secret using client_credentials, but only when advertised by the authorization server. Admin only. |
| disconnect_agent_mcp_oauth | Erase stored OAuth tokens and disable this custom MCP server. Admin only. |
| test_agent_mcp_server | Connect to a configured MCP server, initialize the protocol, and list its tools. Admin only. Secrets are never returned. |
| get_issue_filter | Read the project's issue filter: per-kind include/exclude attribute clauses that decide which ERROR events become issues/incidents. Excludes win; a non-empty include list means an event must match at least one clause. |
| update_issue_filter | Update the issue filter. Each bucket you provide REPLACES that bucket; omit a bucket to leave it unchanged; pass [] to clear it. Use this to quiet recurring noise (add an exclude clause) or to scope investigations to specific services/routes (add an include clause). Call get_issue_filter first if you want to add to the existing rules rather than overwrite them. |
| preview_issue_filter | Preview which recent ERROR events (last 24h) would still become issues under a candidate filter, WITHOUT saving. Buckets you pass are merged over the project's current filter (same semantics as update_issue_filter); omit all buckets to preview the current saved filter. Returns sample matching events. |
| get_project_context | Read the project's freeform context — the human-written description of the system (architecture, conventions, key services) that the investigation agent reads on every run. |
| set_project_context | Overwrite the project's freeform context (max 8000 chars; longer input is truncated). This REPLACES the whole field — call get_project_context first and edit the returned text if you want to preserve existing content. Use for durable, system-level facts that apply to every investigation; for narrower learnings prefer create_agent_memory. |
| list_agent_memories | List the investigation agent's stored memories for the project — durable learnings (feedback, terminology, infra, project facts) that are injected into future investigations. |
| create_agent_memory | Record a durable, reusable learning so future investigations inherit it. Record a memory whenever you discover something worth remembering across investigations — a root-cause pattern, a piece of infra/architecture, a domain term, or a user correction about how to investigate. Keep the title a short handle and the body the specific, reusable fact (not a one-off incident narrative). |
| update_agent_memory | Patch a stored memory. Provide only the fields you want to change. Set status='archived' to retire a memory without deleting it (archived memories stop being injected into investigations). |
| delete_agent_memory | Permanently delete a stored memory by id. To retire one reversibly, prefer update_agent_memory with status='archived'. |