Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Mit Google anmelden, um Bewertungen zu schreiben.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

OneUptime

von OneUptimeVersion 14.0.106i★ 7.809iLäuft in der Cloud
Name in der Registrycom.oneuptime/mcp

So installierst du es

Überblick

Beschreibung vom Entwickler (englisches Original)

Manage incidents, alerts, monitors, status pages, on-call and telemetry in OneUptime.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft in der Cloud
  • Transport: Streamable HTTP
  • Kategorie: Sonstiges
  • Das musst du eintragen: x-api-key

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

4/5 Prüfungen bestanden · Was du fragst, läuft über den Server des Anbieters (oneuptime.com)

Zuerst: Welche KI nutzt du?

Wähle deine App, dann erscheinen die Schritte unten.

Klappt mit Claude · etwa 5 Min.

Du brauchst einen Schlüssel von OneUptime (auf der Seite des Anbieters registrieren, kann kosten) · Einmal auf claude.ai oder in der Desktop-App einrichten, dann im Chat nutzen · kostenlose Konten können 1 hinzufügen

  1. Bei OneUptime registrieren und Schlüssel erstellen

    Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Kann Geld kosten.

    Seite von OneUptime öffnen ↗

  2. Öffne die Connectors-Seite von Claude

    CustomizeConnectors

    CustomizeConnectors1+ Add2https://…3Add4
  3. Klicke „+ Add“ → „Add custom connector“ und fülle diese 2 Felder aus

    Kopiere jeden Wert in das gleichnamige Feld in Claude und klicke Continue

    Name · NameOneUptime
    Remote MCP server URL · Adressehttps://oneuptime.com/mcp

    Unter Request headers diesen Namen und Wert hinzufügen

    Header-Namex-api-key
    Wert<Schlüssel hier einfügen>

    Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem

    Authentication so lassen, wie Claude es erkannt hat, dann Add klicken

  4. Im Chat einschalten

    +ConnectorsOneUptime

  5. Ausprobieren

    Nutze OneUptime und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Claude sagt, dass es OneUptime nutzt, oder ein Werkzeug von OneUptime in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

ChatGPT kann OneUptime noch nicht verbinden

OneUptime braucht zum Verbinden deinen eigenen Schlüssel, aber die OpenAI-Hilfe beschreibt nur die Anmeldung per OAuth; eine Schlüssel-Option konnten wir nicht bestätigen

Das kannst du stattdessen tun

A · Eine App nutzen, die OneUptime verbinden kann

  • Du brauchst einen Schlüssel von OneUptime (auf der Seite des Anbieters registrieren, kann kosten) · Einmal auf claude.ai oder in der Desktop-App einrichten, dann im Chat nutzen · kostenlose Konten können 1 hinzufügen
  • Du brauchst einen Schlüssel von OneUptime (auf der Seite des Anbieters registrieren, kann kosten)
  • Du brauchst einen Schlüssel von OneUptime (auf der Seite des Anbieters registrieren, kann kosten)
  • Du brauchst einen Schlüssel von OneUptime (auf der Seite des Anbieters registrieren, kann kosten)

B · Andere in Sonstiges, die mit ChatGPT funktionieren

Aus den meistgenutzten derselben Kategorie, nur solche, die per Adresse ohne Schlüssel verbinden

Klappt mit Claude Code · etwa 5 Min.

Du brauchst einen Schlüssel von OneUptime (auf der Seite des Anbieters registrieren, kann kosten)

  1. Bei OneUptime registrieren und Schlüssel erstellen

    Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Kann Geld kosten.

    Seite von OneUptime öffnen ↗

  2. Terminal öffnen

    Mac: Command+Leertaste drücken und Terminal tippen · Windows: PowerShell öffnen

  3. Diesen Befehl einfügen und Enter drücken

    claude mcp add --transport http oneuptime https://oneuptime.com/mcp --header 'x-api-key: your-value'

    Ersetze „your-value“ vor dem Enter durch deinen Schlüssel

    Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem

  4. /mcp in Claude Code eingeben

    OneUptime sollte in der Liste als verbunden erscheinen

  5. Ausprobieren

    Nutze OneUptime und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Claude Code sagt, dass es OneUptime nutzt, oder ein Werkzeug von OneUptime in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Klappt mit Cursor · etwa 5 Min.

Du brauchst einen Schlüssel von OneUptime (auf der Seite des Anbieters registrieren, kann kosten)

  1. Bei OneUptime registrieren und Schlüssel erstellen

    Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Kann Geld kosten.

    Seite von OneUptime öffnen ↗

  2. Mit diesem Button Cursor öffnen

    In Cursor öffnen

    Cursor fragt nach einer Bestätigung; klicke Install

  3. Schlüssel eintragen

    In den Einstellungen von OneUptime ist x-api-key leer; trag deinen Schlüssel ein und speichere

    Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem

  4. KI-Chat in Cursor im Agent-Modus öffnen

  5. Ausprobieren

    Nutze OneUptime und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Cursor sagt, dass es OneUptime nutzt, oder ein Werkzeug von OneUptime in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Cursor abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Klappt mit VS Code · etwa 5 Min.

Du brauchst einen Schlüssel von OneUptime (auf der Seite des Anbieters registrieren, kann kosten)

  1. Bei OneUptime registrieren und Schlüssel erstellen

    Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Kann Geld kosten.

    Seite von OneUptime öffnen ↗

  2. Mit diesem Button VS Code öffnen

    In VS Code öffnen

    VS Code fragt nach einer Bestätigung; klicke Install

  3. Schlüssel eintragen

    In den Einstellungen von OneUptime ist x-api-key leer; trag deinen Schlüssel ein und speichere

    Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem

  4. KI-Chat in VS Code im Agent-Modus öffnen

  5. Ausprobieren

    Nutze OneUptime und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn VS Code sagt, dass es OneUptime nutzt, oder ein Werkzeug von OneUptime in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von VS Code abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Andere Apps mit MCP, etwa Windsurf, Zed oder Gemini CLI, fügen Server unterschiedlich hinzu. Sieh in der App-Liste nach

Alle Apps mit MCP ansehen →

Adresse für Apps, die über das Web verbinden

Adressehttps://oneuptime.com/mcp

JSON-Einstellungen stehen unten unter „Für Entwickler“

Hängst du fest? Frag Leute, die OneUptime nutzen💬 Diskussion →
Für Entwickler: Terminal-Befehle und JSON-Einstellungen

Über das Web

Claude Code

claude mcp add --transport http oneuptime https://oneuptime.com/mcp --header 'x-api-key: your-value'

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "oneuptime": {
      "url": "https://oneuptime.com/mcp",
      "headers": {
        "x-api-key": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "oneuptime": {
      "type": "http",
      "url": "https://oneuptime.com/mcp",
      "headers": {
        "x-api-key": "your-value"
      }
    }
  }
}

Werte, die du selbst einträgst

  • x-api-key geheim HTTP header
    Optional. A OneUptime project API key, for agents that run unattended. Leave it empty to sign in with your OneUptime account instead.

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Auf einen Blick

Downloads pro Wochei
Nicht auf npm/PyPI
Bestätigte Domain
✓ oneuptime.com
Lizenzi
Keine Lizenz angegeben
Verbindung
Läuft in der Cloud
Transport
streamable-http
Neueste Versioni
14.0.106
Kategoriei
Sonstiges
In der Registry veröffentlichti
11. Nov. 2026
Code zuletzt geänderti
11. Nov. 2026
Entwickler
OneUptime
Registry-Status
Aktiv

Welche Apps ihn nutzen können

Basierend darauf, wie sich dieser Server verbindet, und auf der eigenen Doku jeder App, geprüft am 10. Nov. 2026.

Verbinden sich über das Internet in

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast

Alle Apps, mit Vor- und Nachteilen →

Was er kann

Tool-Namen und -Beschreibungen genau so, wie der Server sie am 10. Nov. 2026 gemeldet hat. Geschrieben hat sie der Entwickler, nicht wir; wir zeigen sie als reinen Text.

  • create_team

    Create a Team. projectId comes from your credentials. Fields: oneuptime_describe_resource.

  • get_team

    Get one Team by ID.

  • list_teams

    List Teams, with the total count.

  • update_team

    Update one Team by ID: only the fields sent change. Fields: oneuptime_describe_resource.

  • delete_team

    Permanently delete one Team by ID.

  • count_teams

    Count Teams, all or those a filter matches.

  • create_label

    Create a Label. projectId comes from your credentials. Fields: oneuptime_describe_resource.

  • get_label

    Get one Label by ID.

  • list_labels

    List Labels, with the total count.

  • update_label

    Update one Label by ID: only the fields sent change. Fields: oneuptime_describe_resource.

  • delete_label

    Permanently delete one Label by ID.

  • count_labels

    Count Labels, all or those a filter matches.

  • create_security_case

    Create a Security Case. projectId comes from your credentials. Fields: oneuptime_describe_resource.

  • get_security_case

    Get one Security Case by ID.

  • list_security_cases

    List Security Cases, with the total count.

  • update_security_case

    Update one Security Case by ID: only the fields sent change. Fields: oneuptime_describe_resource.

  • delete_security_case

    Permanently delete one Security Case by ID.

  • count_security_cases

    Count Security Cases, all or those a filter matches.

  • create_security_case_note

    Create a Security Case Note. projectId comes from your credentials. Fields: oneuptime_describe_resource.

  • get_security_case_note

    Get one Security Case Note by ID.

  • list_security_case_notes

    List Security Case Notes, with the total count.

  • update_security_case_note

    Update one Security Case Note by ID: only the fields sent change. Fields: oneuptime_describe_resource.

  • delete_security_case_note

    Permanently delete one Security Case Note by ID.

  • count_security_case_notes

    Count Security Case Notes, all or those a filter matches.

  • create_security_case_task

    Create a Security Case Task. projectId comes from your credentials. Fields: oneuptime_describe_resource.

  • get_security_case_task

    Get one Security Case Task by ID.

  • list_security_case_tasks

    List Security Case Tasks, with the total count.

  • update_security_case_task

    Update one Security Case Task by ID: only the fields sent change. Fields: oneuptime_describe_resource.

  • delete_security_case_task

    Permanently delete one Security Case Task by ID.

  • count_security_case_tasks

    Count Security Case Tasks, all or those a filter matches.

  • create_security_case_evidence

    Create a Security Case Evidence. projectId comes from your credentials. Fields: oneuptime_describe_resource.

  • get_security_case_evidence

    Get one Security Case Evidence by ID.

  • list_security_case_evidence

    List Security Case Evidence, with the total count.

  • update_security_case_evidence

    Update one Security Case Evidence by ID: only the fields sent change. Fields: oneuptime_describe_resource.

  • delete_security_case_evidence

    Permanently delete one Security Case Evidence by ID.

  • count_security_case_evidence

    Count Security Case Evidence, all or those a filter matches.

  • create_security_case_priority

    Create a Security Case Priority. projectId comes from your credentials. Fields: oneuptime_describe_resource.

  • get_security_case_priority

    Get one Security Case Priority by ID.

  • list_security_case_priorities

    List Security Case Priorities, with the total count.

  • update_security_case_priority

    Update one Security Case Priority by ID: only the fields sent change. Fields: oneuptime_describe_resource.

  • delete_security_case_priority

    Permanently delete one Security Case Priority by ID.

  • count_security_case_priorities

    Count Security Case Priorities, all or those a filter matches.

  • create_security_case_status

    Create a Security Case Status. projectId comes from your credentials. Fields: oneuptime_describe_resource.

  • get_security_case_status

    Get one Security Case Status by ID.

  • list_security_case_statuses

    List Security Case Statuses, with the total count.

  • update_security_case_status

    Update one Security Case Status by ID: only the fields sent change. Fields: oneuptime_describe_resource.

  • delete_security_case_status

    Permanently delete one Security Case Status by ID.

  • count_security_case_statuses

    Count Security Case Statuses, all or those a filter matches.

  • create_security_detection

    Create a Security Detection. projectId comes from your credentials. Fields: oneuptime_describe_resource.

  • get_security_detection

    Get one Security Detection by ID.

  • list_security_detections

    List Security Detections, with the total count.

  • update_security_detection

    Update one Security Detection by ID: only the fields sent change. Fields: oneuptime_describe_resource.

  • delete_security_detection

    Permanently delete one Security Detection by ID.

  • count_security_detections

    Count Security Detections, all or those a filter matches.

  • create_security_playbook

    Create a Security Playbook. projectId comes from your credentials. Fields: oneuptime_describe_resource.

  • get_security_playbook

    Get one Security Playbook by ID.

  • list_security_playbooks

    List Security Playbooks, with the total count.

  • update_security_playbook

    Update one Security Playbook by ID: only the fields sent change. Fields: oneuptime_describe_resource.

  • delete_security_playbook

    Permanently delete one Security Playbook by ID.

  • count_security_playbooks

    Count Security Playbooks, all or those a filter matches.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 11. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde über die Domain oneuptime.com bestätigt (die Registry prüft, wem die Domain gehört)

  • ✓ Bestanden

    Wird noch gepflegt

    Code zuletzt geändert: heute

  • ! Vorsicht

    Hat eine Lizenz

    GitHub konnte die Lizenzart nicht erkennen; öffne die Datei, um nachzusehen

  • ✓ Bestanden

    Endpunkt antwortet

    Antwort in 129 ms (HTTP 200)

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Keine Anmeldung nötig

  • ✓ Bestanden

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Wir haben 60 Tool-Beschreibungen gelesen und keine versteckten Anweisungen an die KI gefunden

Diskussion

Fragen, Tipps teilen oder melden, dass etwas nicht geht. Sortiert nach „hilfreich“.

Noch keine Beiträge. Stell die erste Frage oder teile einen Tipp.

Beiträge hier stammen von Nutzern, nicht vom PopNx-Team.

Mit Google anmelden, um zu posten

Nutzerbewertungen

Noch keine Bewertungen

Mit Google anmelden, um zu bewerten

Im Vergleich mit anderen in Sonstigesi

  • Mehr Sterne als 100 % der anderen 19188 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 100 % der anderen 19188 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 45 % der anderen 19188 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist OneUptime sicher?

Er hat 4 von 5 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: x-api-key

Läuft er auf meinem Computer oder in der Cloud?

Er läuft in der Cloud des Entwicklers. Du verbindest dich übers Internet, ohne etwas zu installieren, aber was du sendest, läuft über die Server des Entwicklers.

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt heute geändert, und die neueste Version (14.0.106) kam heute in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL und funktioniert daher auch in Apps mit Remote-MCP, etwa ChatGPT Business und höher.

Was kann ich stattdessen nutzen?

In derselben Kategorie: World Monitor, Claude Flow, Tldraw

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

World Monitor

Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.

von koala73Weit verbreitet★ 90.457Aktualisiert vor 6 Tagen

Läuft in der Cloud✓ worldmonitor.app

Claude Flow

AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.

von ruvnetWeit verbreitet↓ 13.513/Wo.★ 81.393Aktualisiert vor 14 Monaten

Läuft auf deinem Computer

Tldraw

Draw and visually collaborate with your agents on tldraw's canvas.

von tldrawWeit verbreitet★ 51.444Aktualisiert vor 8 Monaten

Läuft in der Cloud

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

OneUptime MCP Server

A Model Context Protocol (MCP) server that exposes OneUptime to AI agents. It lets MCP-compatible clients (Claude, VS Code with Copilot, Cursor, and others) manage incidents, alerts, monitors, status pages, on-call, and telemetry through about 290 tools.

How it works

  • Transport: Streamable HTTP at /mcp. The server is stateless — no session IDs are issued or required, so it is safe behind load balancers and multi-replica deployments.
  • Hosted endpoint: https://oneuptime.com/mcp
  • Self-hosted endpoint: https:// /mcp (served by the App container behind Nginx)
  • Auth: sign in with OneUptime (OAuth 2.1, per the MCP authorization specification), or a per-request API key via the x-api-key header or Authorization: Bearer (scheme is case-insensitive). There is no environment-variable API key — every request carries its own credential.

Connecting a client

By signing in

Give the client the URL and nothing else. The first call to a tool that needs an identity is answered 401 with a WWW-Authenticate challenge; the client discovers the authorization server from it, opens the consent screen in the user's browser, and gets tokens for the project the user picks.

claude mcp add --transport http oneuptime https://oneuptime.com/mcp
{ "servers": { "oneuptime": { "type": "http", "url": "https://oneuptime.com/mcp" } } }

The rest of this section configures the same clients with an API key instead, for agents that run unattended.

Claude Desktop

Add to claude_desktop_config.json:

{

"mcpServers": { "oneuptime": { "transport": "streamable-http", "url": "https://oneuptime.com/mcp", "headers": { "x-api-key": "your-api-key-here" } } } }

Claude Code
claude mcp add --transport http oneuptime https://oneuptime.com/mcp \

--header "x-api-key: your-api-key-here"

VS Code (GitHub Copilot)

.vscode/mcp.json or the user MCP configuration:

{

"servers": { "oneuptime": { "type": "http", "url": "https://oneuptime.com/mcp", "headers": { "x-api-key": "${input:oneuptime-api-key}" } } }, "inputs": [ { "type": "promptString", "id": "oneuptime-api-key", "description": "OneUptime API Key", "password": true } ] }

Cursor

.cursor/mcp.json:

{

"mcpServers": { "oneuptime": { "url": "https://oneuptime.com/mcp", "headers": { "x-api-key": "your-api-key-here" } } } }

For self-hosted instances, replace oneuptime.com with your OneUptime host in any of the above.

Authentication

API key

Create a project API key in OneUptime under Project Settings → Advanced → API Keys and grant it the least privilege the agent needs (read-only keys work for all get_/list_/count_ tools). The project is inferred from the key — create tools never need a projectId argument.

Warning — never give an AI agent a master key. A OneUptime *master* API key is also accepted on this header and grants instance-wide admin access. Always use a project-scoped API key with least privilege for AI agents.

Public status page tools and oneuptime_help / oneuptime_list_resources / oneuptime_describe_resource work without any credential.

OAuth sign-in

The code is in OAuth/; each file opens with the reasoning behind it. The shape of it:

  • One issuer under `/mcp`. https:// /mcp is both the protected resource (RFC 9728) and the authorization server's issuer (RFC 8414). Every endpoint sits under /mcp/oauth, and every URL is built from HOST / HTTP_PROTOCOL, never from the request.
  • Lazy, at the HTTP layer. OAuth/RequestGate runs before the MCP SDK sees a request. initialize, tools/list and the public tools pass with no credential; a call to a tool that needs an identity is refused 401 (or 403 insufficient_scope for a read-only grant calling a write tool) with a Bearer challenge. It cannot live in a tool handler: a refusal from inside the SDK is a 200, and a client only starts signing its user in on a real 401.
  • Clients identify themselves. A Client ID Metadata Document (OAuth/ClientIdMetadataDocument, fetched through the egress guard with private addresses always blocked) or Dynamic Client Registration (OAuth/RegistrationEndpoint). Nobody registers a client by hand.
  • Authorization code + PKCE (S256 only), resource indicators (RFC 8707), iss in the authorization response (RFC 9207), rotating refresh tokens with reuse detection, revocation (RFC 7009).
  • Opaque tokens, stored as hashes. oumcp_ac_… / oumcp_at_… / oumcp_rt_…; only the SHA-256 is kept (McpOAuthToken). A grant (McpOAuthGrant) is one member letting one client act for them in one project; revoking is deleting the grant, which cascades to its tokens.
  • Only an access token is a credential. x-api-key carries an API key and nothing else; Authorization carries an API key or an access token. Any other oumcp_ secret presented in either header — a refresh token, a code, a client secret, or an access token in x-api-key — is refused 401 invalid_token by OAuth/RequestGate and is never passed on to the API as an API key.
  • Scopes mcp:read and mcp:write (write includes read). The consent screen can narrow what a client asked for, never widen it.
  • The API never sees the client's token. Having accepted an access token, the MCP layer calls the REST API with a 60-second signed *delegation token* (Common/Server/Utils/Mcp/McpDelegationToken). Common/Server/Middleware/McpDelegationAuthorization turns that into a request authorized as the member — never as a master admin — in the grant's project, with their live permissions, and marked read-only when the grant is. A stolen access token is therefore worth exactly what the MCP tools can do with it.
  • Checked on every use. Common/Server/Utils/Mcp/McpOAuthGrantAccess re-evaluates the grant per request and per token exchange: the member still exists, is not blocked, still belongs to the project, is not on a team that blocks AuthorizeMcpClient, and still satisfies the project's SSO requirement.
  • Consent is the Accounts page /accounts/mcp-authorize; managing connected clients is Settings → MCP Server in the Dashboard.

Two settings: DISABLE_MCP_OAUTH=true switches the whole thing off (the routes answer 404 and an unauthenticated tool call gets the in-band "API key is required" result it always got), and DISABLE_MCP_OAUTH_CLIENT_ID_METADATA_DOCUMENTS=true is for instances that cannot make outbound requests.

Tool catalog

Database resources — full CRUD

Each of these 27 models gets six tools: create_, get_, list_, update_, delete_, count_ (e.g. create_incident, get_incident, list_incidents, update_incident, delete_incident, count_incidents):

Incident, Alert, Incident Alert, Monitor, Status Page, Scheduled Maintenance Event, Team, Monitor Status, On-Call Policy, Incident State, Incident Severity, Alert State, Alert Severity, Incident State Timeline, Alert State Timeline, Incident Public Note, Incident Internal Note, Alert Internal Note, Status Page Announcement, Scheduled Maintenance State, Scheduled Maintenance State Timeline, Label, Monitor Status Event, Security Case, Security Case Note, Security Detection, Security Playbook.

Telemetry resources — read-only

Log, Metric, Span, Exception Instance, Monitor Log, Security Event, Change Event, Kubernetes Cost Allocation, and Threat Intel Indicator get list_ and count_ tools only (e.g. list_logs, count_spans, list_exception_instances). There are no create tools for telemetry — ingestion happens via OpenTelemetry.

Workflow tools

Purpose-built shortcuts for incident/alert response (packages/App/FeatureSet/MCP/Tools/WorkflowTools.ts):

  • acknowledge_incident, resolve_incident
  • acknowledge_alert, resolve_alert
  • add_incident_note (with visibility: "internal" | "public" — public notes post to the status page)
  • add_alert_note
  • get_data_table_freshness — whether a table Data Observability watches is fresh: fresh or late by its own rhythm, when it last changed, its open alerts, and its writers' latest runs (read-only)
  • oneuptime_whoami — returns the project (ID and name) the credential belongs to; for an OAuth sign-in, also who is signed in, through which client, and whether the connection is read-only
Helper and public tools
  • oneuptime_help, oneuptime_list_resources
  • oneuptime_describe_resource — one resource's fields: what each means, the filter operators its type takes, and whether it can be sorted or must be selected. Accepts the resource's name or any of its tool names (Incident, list_incidents).
  • No credential needed: get_public_status_page_overview, get_public_status_page_incidents, get_public_status_page_scheduled_maintenance, get_public_status_page_announcements
Annotations and results

Every tool has a title and states all three MCP hints, set in Tools/ToolAnnotations.ts, so clients can auto-approve safe calls and confirm the rest:

  • readOnlyHint: true on the tools that change nothing: get_, list_, count_, oneuptime_whoami, the helper tools and the public status page tools.
  • destructiveHint: true on every tool that changes something: create, update and delete tools, acknowledging and resolving, and adding notes. Most writes overwrite or delete a record, change an incident's or alert's state, page someone on call or post to a status page, and the directories allow false only for a write that adds and sends nothing.
  • openWorldHint: true only on the public status page tools, which read any public status page on the instance. Every other tool stays inside the caller's project.

MCP directories require them: the Claude Connectors Directory flags any tool without a title or a readOnlyHint/destructiveHint, and ChatGPT's requires all three hints as booleans. Tests/ToolAnnotationsForDirectories.test.ts fails on a tool that lacks one, or that breaks the rules above. On the server itself, MCP_ALLOW_DESTRUCTIVE=false removes the delete tools only, and MCP_READ_ONLY=true removes every tool that is not read-only (Tests/WritePolicy.test.ts). Tool results include structuredContent alongside the JSON text. Errors come back as in-band tool results (isError: true) with statusCode, details, and a suggestion — not as protocol errors.

The size of tools/list

Many clients load every tool definition before the first question, so tools/list is paid for on every connection. On 2026-11-02 oneuptime.com answered it with 283 tools in 1,202,028 bytes (about 300,000 tokens at four characters a token), more than many models hold: each list_ and count_ tool listed every field of its model with its operators and an example. On the code that changed this, the answer went from 289 tools in 1,228,155 bytes to 290 tools in 237,400 bytes (about 59,000 tokens):

  • list_ and count_ tools take any field in query and sort and say how a filter is written; oneuptime_describe_resource gives the fields on demand, one resource at a time.
  • Generated schemas carry no examples. A typed value such as a date ({"_type": "DateTime", "value": ...}) or a color keeps its shape as schema, since its example was the only place that stated it.
  • create_ tools explain only the fields a call cannot leave out, and update_ tools name and type their fields without explaining them. Every field is still listed and typed, so a client that validates a call still can.
  • Tool names, titles and annotations are unchanged.

Tests/ToolListBudget.test.ts reads tools/list through the SDK's client and fails above 250,000 bytes, or for any tool above 5,000 bytes. A new model adds about 4 KB. When a change goes over, make the t

Nur der Anfang wird gezeigt; den Rest findest du im Repo