create_team
Create Team
Create a Team. projectId comes from your credentials. Fields: oneuptime_describe_resource.
namerequiredprojectIddescriptioncustomFieldscom.oneuptimePublished by oneuptime.comOfficial publisherv14.0.105Updated Nov 7, 2026
Manage incidents, alerts, monitors, status pages, on-call and telemetry in OneUptime.
Remote OneUptime MCP server that lets an assistant manage incidents, alerts, monitors, status pages, on-call and telemetry in a OneUptime project.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/com.oneuptime%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"oneuptime": {
"type": "http",
"url": "https://oneuptime.com/mcp"
}
}
}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.
/mcp. The server is stateless — no session IDs are issued or required, so it is safe behind load balancers and multi-replica deployments.https://oneuptime.com/mcphttps://<your-host>/mcp (served by the App container behind Nginx)x-api-key header or Authorization: Bearer <key> (scheme is case-insensitive). There is no environment-variable API key — every request carries its own credential.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.
The rest of this section configures the same clients with an API key instead, for agents that run unattended.
Add to claude_desktop_config.json:
.vscode/mcp.json or the user MCP configuration:
.cursor/mcp.json:
For self-hosted instances, replace oneuptime.com with your OneUptime host in any of the above.
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.
The code is in OAuth/; each file opens with the reasoning behind it. The shape of it:
/mcp. https://<host>/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.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.OAuth/ClientIdMetadataDocument, fetched through the egress guard with private addresses always blocked) or Dynamic Client Registration (OAuth/RegistrationEndpoint). Nobody registers a client by hand.iss in the authorization response (RFC 9207), rotating refresh tokens with reuse detection, revocation (RFC 7009).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.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.mcp:read and mcp:write (write includes read). The consent screen can narrow what a client asked for, never widen it.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.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./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.
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.
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.
Purpose-built shortcuts for incident/alert response (packages/App/FeatureSet/MCP/Tools/WorkflowTools.ts):
acknowledge_incident, resolve_incidentacknowledge_alert, resolve_alertadd_incident_note (with visibility: "internal" | "public" — public notes post to the status page)add_alert_noteget_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-onlyoneuptime_help, oneuptime_list_resourcesoneuptime_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).get_public_status_page_overview, get_public_status_page_incidents, get_public_status_page_scheduled_maintenance, get_public_status_page_announcementsEvery 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.
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.{"_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.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 tools say less, or raise the budget in the same change and say why.
To find a resource's fields, call oneuptime_describe_resource with the resource or one of its tools. It answers with every field, its type and meaning, the operators each type takes and how each is written, and a worked example. Tests/DescribeResource.test.ts runs every field and operator it offers through the code the API runs on a query.
Query fields accept a direct value or an operator object:
Operators: EqualTo, NotEqual, IsNull, NotNull, EqualToOrNull, GreaterThan, LessThan, GreaterThanOrEqual, LessThanOrEqual, InBetween (with startValue and endValue), Search, Includes (with an array). Which a field takes depends on its type. A telemetry map field such as attributes is filtered by its keys: {"attributes": {"http.method": "GET"}}.
A filter written another way, such as MongoDB's {"$regex": "..."} or an operator OneUptime does not have, is refused before it reaches the API, with an error that names the field and says how an operator is written (Tools/FilterCheck.ts). The API would pass it on, and the database would compare a text column with the object's JSON and match nothing. A relation filtered by its own fields ({"currentIncidentState": {"isResolvedState": false}}) and a map filtered by its keys are filters, and pass.
Values are "ASC" or "DESC". Each telemetry tool names the time column to filter and sort on (time, startTime, windowStart or validFrom).
get_ and list_ tools take an optional select array of field names, telemetry's included (a { "field": true } object still works). By default all readable fields are returned except heavy ones (JSON / VeryLongText / HTML columns), which must be requested explicitly.
limit defaults to 10 (max 100); skip offsets into the result set. List responses return the full requested page with honest pagination metadata:
A typical incident-response loop an agent can run:
oneuptime_whoami — confirm which project the credential belongs to.list_incidents with {"sort": {"createdAt": "DESC"}, "limit": 5} — find the active incident.acknowledge_incident — take ownership.list_logs with a time-range filter ({"time": {"_type": "GreaterThan", "value": "..."}}) and list_exception_instances — investigate.add_incident_note with "visibility": "public" — post a status update for customers.resolve_incident — close it out.The server negotiates rather than rejects, so a client does not have to match the MCP SDK bundled in the App container exactly.
Protocol version. The MCP-Protocol-Version request header is negotiated down
to the highest version both sides support. A header sent twice is read as its
first value — Node collapses repeated headers into one comma-joined string, and
a version never contains a comma:
initialize gives;YYYY-MM-DD version at all, has no common ground. The request is answered with
400 and a JSON-RPC error that names the requested version and lists the
supported ones, instead of failing silently at the transport layer.An unusable header on an initialize request is dropped rather than rejected,
because that request negotiates the version in its body. A header that is
present but blank is dropped too: an empty string is not the same as an absent
header to the SDK, which would otherwise reject it like any other unknown
version.
GET /mcp and GET /mcp/health both list the supported versions, so a failing
handshake can be diagnosed without reading container logs.
Response format. A POST is answered with whatever the client's Accept header
allows: text/event-stream when the client asks for it by name or via the
text/* range (what spec-compliant MCP clients do), and a plain
application/json body otherwise — including for Accept: application/json, an
application/* or */* wildcard, or no Accept header at all. Both are valid
replies to a POST under the MCP spec. A client that accepts neither gets a 406
naming the media types the endpoint can produce.
Diagnostics. Negotiation logs describe the client: they are built from a snapshot taken before the headers are rewritten, so they report what was actually sent rather than the values this server normalised them to. Every field in them — header values and the JSON-RPC method alike — is stripped of control characters and length-capped, so a caller cannot forge log lines or flood the log through them. The API key or access token is never logged.
The MCP server ships as part of the App container and is served at /mcp behind Nginx — no separate deployment is needed. Its tools call the OneUptime API at the App's internal address - SERVER_APP_HOSTNAME and APP_PORT, the address Nginx proxies /api to (inherited from the App service's environment) - never through the public HOST, which the App container cannot always reach (with HOST=localhost it is the container itself). API keys are never configured on the server; clients supply them per request.
OAuth sign-in needs nothing configured either, but it does depend on HOST and HTTP_PROTOCOL being the address people actually use: the issuer, the token audience and every endpoint in the discovery documents are built from them. A reverse proxy in front of OneUptime has to forward /.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server (and everything under them) to the App along with /mcp; the bundled Nginx does.
OneUptime Cloud's server is listed in the official MCP Registry, which MCP clients and directories read, as com.oneuptime/mcp. server.json is the entry: streamable HTTP at https://oneuptime.com/mcp, signed in to with OAuth, or given a project API key in the optional x-api-key header. Its version is a placeholder, 0.0.0.
Every release publishes it at the release's version. The publish-mcp-registry job in .github/workflows/release.yml runs Scripts/MCP/PublishToMcpRegistry.sh once the GitHub release is published, and skips a version the registry already has, so re-running a release publishes nothing twice. A published version cannot be changed.
Only whoever controls oneuptime.com may publish under com.oneuptime. The job signs in with an Ed25519 private key whose public key is in a TXT record on oneuptime.com, and it fails, publishing nothing, until both are in place. To set them up (Ed25519 needs OpenSSL 3; on macOS, brew install openssl@3 and use its openssl, not the system LibreSSL):
Make a key pair:
Add a TXT record on oneuptime.com itself, not on a subdomain such as _mcp.oneuptime.com, with the value this prints:
In the repository's Settings → Environments, create mcp-registry-publish, limit its deployment branches to release, and give it the secret MCP_REGISTRY_PRIVATE_KEY: the private key in hex, which this prints:
Then delete mcp-registry-key.pem, or keep it somewhere safe: whoever has the key can publish, and overwrite, any entry under com.oneuptime. To change the key, replace the TXT record and the secret together; an old record left beside the new one is tried first and fails the sign-in.
To publish before the next release, run the script by hand from the repository root, with mcp-publisher and jq installed: PACKAGE_VERSION=<version> MCP_REGISTRY_PRIVATE_KEY=<hex key> bash Scripts/MCP/PublishToMcpRegistry.sh.
ChatGPTPlugin/ is the package OneUptime uploads to the ChatGPT plugin directory, which ChatGPT and Codex share: the listing, five positive and three negative review test cases, and mcp.json, which points at https://oneuptime.com/mcp and signs in with OAuth for read and write access. npm run build-chatgpt-plugin builds the ZIP, and adds the coding agent plugin's four skills, which ChatGPT and Codex load. Its README lists what else a submission needs: a verified developer identity, a domain-verification token served at https://oneuptime.com/.well-known/openai-apps-challenge, reviewer credentials for a demo project, and a demo video. Tests/ChatGPTPlugin.test.ts holds the package to the Agent Plugins schemas and OpenAI's limits, and checks that every tool a test case names is one this server has.
CodingAgentPlugin/ is the plugin OneUptime lists for coding agents in Cursor's Marketplace and the Claude directory. It holds the hosted server's address and four skills: adding OpenTelemetry, setting up monitors and a status page, investigating an incident, and using the CLI in scripts and CI. npm run build-coding-agent-plugin builds a folder with the Agent Plugins, Cursor and Claude manifests side by side, taking the listing's words, links and icon from ChatGPTPlugin/. Both directories read a plugin from a public Git repository of its own, OneUptime/oneuptime-agent-plugin. Each release that changes the plugin publishes it there, through the publish-coding-agent-plugin job in .github/workflows/release.yml. A maintainer creates the repository and its deploy key once, and submits it to the directories: the package's README lists those steps. Tests/CodingAgentPlugin.test.ts runs the build, checks the folder against the Agent Plugins schemas and each directory's rules, and checks every tool and JSON example a skill names against this server.
The MCP server lives in packages/App/FeatureSet/MCP and is mounted into the App service at startup (packages/App/Index.ts). Tests live in packages/App/FeatureSet/MCP/Tests and run as part of the App test suite:
New models are picked up automatically: decorate a database model with @EnableMCP (or set enableMCP on an analytics model) and the tool generator creates its tools on the next start.
Apache-2.0 - See LICENSE file for details.
Source: packages/App/FeatureSet/MCP/README.md at commit 1d23cd0
Create Team
Create a Team. projectId comes from your credentials. Fields: oneuptime_describe_resource.
namerequiredprojectIddescriptioncustomFieldsGet Team
Get one Team by ID.
idrequiredselectList Teams
List Teams, with the total count.
skipsortlimitqueryselectUpdate Team
Update one Team by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednamedescriptioncustomFieldsDelete Team
Permanently delete one Team by ID.
idrequiredCount Teams
Count Teams, all or those a filter matches.
queryCreate Label
Create a Label. projectId comes from your credentials. Fields: oneuptime_describe_resource.
namerequiredcolorrequiredprojectIdisArchiveddescriptionGet Label
Get one Label by ID.
idrequiredselectList Labels
List Labels, with the total count.
skipsortlimitqueryselectUpdate Label
Update one Label by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednamecolorisArchiveddescriptionDelete Label
Permanently delete one Label by ID.
idrequiredCount Labels
Count Labels, all or those a filter matches.
queryCreate Security Case
Create a Security Case. projectId comes from your credentials. Fields: oneuptime_describe_resource.
titlerequiredlabelsverdictentitiesprojectIdclosingNotedescriptioncustomFieldsmitreTacticsmitreTechniquesassignedToTeamIdassignedToUserId+2 moreGet Security Case
Get one Security Case by ID.
idrequiredselectList Security Cases
List Security Cases, with the total count.
skipsortlimitqueryselectUpdate Security Case
Update one Security Case by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequiredtitlelabelsverdictentitiesclosingNotedescriptioncustomFieldsmitreTacticsmitreTechniquesassignedToTeamIdassignedToUserId+2 moreDelete Security Case
Permanently delete one Security Case by ID.
idrequiredCount Security Cases
Count Security Cases, all or those a filter matches.
queryCreate Security Case Note
Create a Security Case Note. projectId comes from your credentials. Fields: oneuptime_describe_resource.
noterequiredprojectIdsecurityCaseIdrequiredGet Security Case Note
Get one Security Case Note by ID.
idrequiredselectList Security Case Notes
List Security Case Notes, with the total count.
skipsortlimitqueryselectUpdate Security Case Note
Update one Security Case Note by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednoteDelete Security Case Note
Permanently delete one Security Case Note by ID.
idrequiredCount Security Case Notes
Count Security Case Notes, all or those a filter matches.
queryCreate Security Case Task
Create a Security Case Task. projectId comes from your credentials. Fields: oneuptime_describe_resource.
titlerequiredisDoneprojectIdsecurityCaseIdrequiredassignedToUserIdGet Security Case Task
Get one Security Case Task by ID.
idrequiredselectList Security Case Tasks
List Security Case Tasks, with the total count.
skipsortlimitqueryselectUpdate Security Case Task
Update one Security Case Task by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequiredtitleisDoneassignedToUserIdDelete Security Case Task
Permanently delete one Security Case Task by ID.
idrequiredCount Security Case Tasks
Count Security Case Tasks, all or those a filter matches.
queryCreate Security Case Evidence
Create a Security Case Evidence. projectId comes from your credentials. Fields: oneuptime_describe_resource.
urlkindrequirednamerequiredfileIdprojectIddescriptionsecurityCaseIdrequiredGet Security Case Evidence
Get one Security Case Evidence by ID.
idrequiredselectList Security Case Evidence
List Security Case Evidence, with the total count.
skipsortlimitqueryselectUpdate Security Case Evidence
Update one Security Case Evidence by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednamedescriptionDelete Security Case Evidence
Permanently delete one Security Case Evidence by ID.
idrequiredCount Security Case Evidence
Count Security Case Evidence, all or those a filter matches.
queryCreate Security Case Priority
Create a Security Case Priority. projectId comes from your credentials. Fields: oneuptime_describe_resource.
namerequiredcolorrequiredorderprojectIdisArchiveddescriptionisLowPriorityisHighPriorityisMediumPriorityisCriticalPrioritycontainWithinInMinutesisInformationalPriority+1 moreGet Security Case Priority
Get one Security Case Priority by ID.
idrequiredselectList Security Case Priorities
List Security Case Priorities, with the total count.
skipsortlimitqueryselectUpdate Security Case Priority
Update one Security Case Priority by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednamecolororderisArchiveddescriptionisLowPriorityisHighPriorityisMediumPriorityisCriticalPrioritycontainWithinInMinutesisInformationalPriority+1 moreDelete Security Case Priority
Permanently delete one Security Case Priority by ID.
idrequiredCount Security Case Priorities
Count Security Case Priorities, all or those a filter matches.
queryCreate Security Case Status
Create a Security Case Status. projectId comes from your credentials. Fields: oneuptime_describe_resource.
namerequiredcolorrequiredorderprojectIdisArchiveddescriptionisNewStatusisClosedStatusisContainedStatusisAcknowledgedStatusGet Security Case Status
Get one Security Case Status by ID.
idrequiredselectList Security Case Statuses
List Security Case Statuses, with the total count.
skipsortlimitqueryselectUpdate Security Case Status
Update one Security Case Status by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednamecolororderisArchiveddescriptionisNewStatusisClosedStatusisContainedStatusisAcknowledgedStatusDelete Security Case Status
Permanently delete one Security Case Status by ID.
idrequiredCount Security Case Statuses
Count Security Case Statuses, all or those a filter matches.
queryCreate Security Detection
Create a Security Detection. projectId comes from your credentials. Fields: oneuptime_describe_resource.
Takes no parameters.
Get Security Detection
Get one Security Detection by ID.
idrequiredselectList Security Detections
List Security Detections, with the total count.
skipsortlimitqueryselectUpdate Security Detection
Update one Security Detection by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequiredDelete Security Detection
Permanently delete one Security Detection by ID.
idrequiredCount Security Detections
Count Security Detections, all or those a filter matches.
queryCreate Security Playbook
Create a Security Playbook. projectId comes from your credentials. Fields: oneuptime_describe_resource.
namerequiredstepstriggerisEnabledprojectIddescriptiondetectionSourcedetectionRuleIdsminimumSecurityCasePriorityIdGet Security Playbook
Get one Security Playbook by ID.
idrequiredselectList Security Playbooks
List Security Playbooks, with the total count.
skipsortlimitqueryselectUpdate Security Playbook
Update one Security Playbook by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednamestepstriggerisEnableddescriptiondetectionSourcedetectionRuleIdsminimumSecurityCasePriorityIdDelete Security Playbook
Permanently delete one Security Playbook by ID.
idrequiredCount Security Playbooks
Count Security Playbooks, all or those a filter matches.
queryCreate Data Store
Create a Data Store. projectId comes from your credentials. Fields: oneuptime_describe_resource.
kindrequirednamerequiredlabelspurposeisAiDataprojectIdretentiondescriptionenvironmentscanProbeIdwatchedPathsscanExclusions+6 moreGet Data Store
Get one Data Store by ID.
idrequiredselectList Data Stores
List Data Stores, with the total count.
skipsortlimitqueryselectUpdate Data Store
Update one Data Store by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednamelabelspurposeisAiDataretentiondescriptionenvironmentscanProbeIdwatchedPathsscanExclusionsconnectionString+5 moreDelete Data Store
Permanently delete one Data Store by ID.
idrequiredCount Data Stores
Count Data Stores, all or those a filter matches.
queryCreate Data Store Finding
Create a Data Store Finding. projectId comes from your credentials. Fields: oneuptime_describe_resource.
Takes no parameters.
Get Data Store Finding
Get one Data Store Finding by ID.
idrequiredselectList Data Store Findings
List Data Store Findings, with the total count.
skipsortlimitqueryselectUpdate Data Store Finding
Update one Data Store Finding by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequiredisConfirmedisSuppressedsuppressedReasonDelete Data Store Finding
Permanently delete one Data Store Finding by ID.
idrequiredCount Data Store Findings
Count Data Store Findings, all or those a filter matches.
queryCreate Data Store Access Entry
Create a Data Store Access Entry. projectId comes from your credentials. Fields: oneuptime_describe_resource.
Takes no parameters.
Get Data Store Access Entry
Get one Data Store Access Entry by ID.
idrequiredselectList Data Store Access Entries
List Data Store Access Entries, with the total count.
skipsortlimitqueryselectUpdate Data Store Access Entry
Update one Data Store Access Entry by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequiredDelete Data Store Access Entry
Permanently delete one Data Store Access Entry by ID.
idrequiredCount Data Store Access Entries
Count Data Store Access Entries, all or those a filter matches.
queryCreate Data Security Identity
Create a Data Security Identity. projectId comes from your credentials. Fields: oneuptime_describe_resource.
Takes no parameters.
Get Data Security Identity
Get one Data Security Identity by ID.
idrequiredselectList Data Security Identities
List Data Security Identities, with the total count.
skipsortlimitqueryselectUpdate Data Security Identity
Update one Data Security Identity by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequiredDelete Data Security Identity
Permanently delete one Data Security Identity by ID.
idrequiredCount Data Security Identities
Count Data Security Identities, all or those a filter matches.
queryCreate Data Flow
Create a Data Flow. projectId comes from your credentials. Fields: oneuptime_describe_resource.
Takes no parameters.
Get Data Flow
Get one Data Flow by ID.
idrequiredselectList Data Flows
List Data Flows, with the total count.
skipsortlimitqueryselectUpdate Data Flow
Update one Data Flow by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequiredDelete Data Flow
Permanently delete one Data Flow by ID.
idrequiredCount Data Flows
Count Data Flows, all or those a filter matches.
queryCreate Data Security Issue
Create a Data Security Issue. projectId comes from your credentials. Fields: oneuptime_describe_resource.
Takes no parameters.
Get Data Security Issue
Get one Data Security Issue by ID.
idrequiredselectList Data Security Issues
List Data Security Issues, with the total count.
skipsortlimitqueryselectUpdate Data Security Issue
Update one Data Security Issue by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequiredstatusacceptedUntilacceptedReasonassignedToTeamIdassignedToUserIdDelete Data Security Issue
Permanently delete one Data Security Issue by ID.
idrequiredCount Data Security Issues
Count Data Security Issues, all or those a filter matches.
queryCreate Data Security Scan
Create a Data Security Scan. projectId comes from your credentials. Fields: oneuptime_describe_resource.
Takes no parameters.
Get Data Security Scan
Get one Data Security Scan by ID.
idrequiredselectList Data Security Scans
List Data Security Scans, with the total count.
skipsortlimitqueryselectUpdate Data Security Scan
Update one Data Security Scan by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequiredDelete Data Security Scan
Permanently delete one Data Security Scan by ID.
idrequiredCount Data Security Scans
Count Data Security Scans, all or those a filter matches.
queryCreate Custom Data Type
Create a Custom Data Type. projectId comes from your credentials. Fields: oneuptime_describe_resource.
namerequiredpatterncategoryrequiredkeywordsisEnablednameHintsprojectIdvalidatorignoreCasedescriptionsensitivityrequiredrequiresKeywordGet Custom Data Type
Get one Custom Data Type by ID.
idrequiredselectList Custom Data Types
List Custom Data Types, with the total count.
skipsortlimitqueryselectUpdate Custom Data Type
Update one Custom Data Type by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednamepatterncategorykeywordsisEnablednameHintsvalidatorignoreCasedescriptionsensitivityrequiresKeywordDelete Custom Data Type
Permanently delete one Custom Data Type by ID.
idrequiredCount Custom Data Types
Count Custom Data Types, all or those a filter matches.
queryCreate Check Setting
Create a Check Setting. projectId comes from your credentials. Fields: oneuptime_describe_resource.
notecheckIdrequiredisEnabledprojectIdseverityOverrideGet Check Setting
Get one Check Setting by ID.
idrequiredselectList Check Settings
List Check Settings, with the total count.
skipsortlimitqueryselectUpdate Check Setting
Update one Check Setting by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednoteisEnabledseverityOverrideDelete Check Setting
Permanently delete one Check Setting by ID.
idrequiredCount Check Settings
Count Check Settings, all or those a filter matches.
queryCreate Residency Rule
Create a Residency Rule. projectId comes from your credentials. Fields: oneuptime_describe_resource.
namerequiredisEnabledprojectIddescriptionallowedRegionsrequireddataCategoriessubjectCountriesGet Residency Rule
Get one Residency Rule by ID.
idrequiredselectList Residency Rules
List Residency Rules, with the total count.
skipsortlimitqueryselectUpdate Residency Rule
Update one Residency Rule by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednameisEnableddescriptionallowedRegionsdataCategoriessubjectCountriesDelete Residency Rule
Permanently delete one Residency Rule by ID.
idrequiredCount Residency Rules
Count Residency Rules, all or those a filter matches.
queryCreate Data Security Setting
Create a Data Security Setting. projectId comes from your credentials. Fields: oneuptime_describe_resource.
projectIdnotifyOwnersallowedValuesalertSeverityIdmaxBytesPerScanmaxRowsPerTablemaxTablesPerScankeepMaskedSamplesmaxBytesPerObjectmaxObjectsPerScanincidentSeverityIddisabledDataTypeIds+8 moreGet Data Security Setting
Get one Data Security Setting by ID.
idrequiredselectList Data Security Settings
List Data Security Settings, with the total count.
skipsortlimitqueryselectUpdate Data Security Setting
Update one Data Security Setting by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednotifyOwnersallowedValuesalertSeverityIdmaxBytesPerScanmaxRowsPerTablemaxTablesPerScankeepMaskedSamplesmaxBytesPerObjectmaxObjectsPerScanincidentSeverityIddisabledDataTypeIds+8 moreDelete Data Security Setting
Permanently delete one Data Security Setting by ID.
idrequiredCount Data Security Settings
Count Data Security Settings, all or those a filter matches.
queryCreate Data Asset
Create a Data Asset. projectId comes from your credentials. Fields: oneuptime_describe_resource.
namerequiredlabelsassetKeyrequiredassetKindprojectIdschemaNamedataStoreIdrequireddescriptionfreshnessColumnGet Data Asset
Get one Data Asset by ID.
idrequiredselectList Data Assets
List Data Assets, with the total count.
skipsortlimitqueryselectUpdate Data Asset
Update one Data Asset by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequiredlabelsdescriptionfreshnessColumnDelete Data Asset
Permanently delete one Data Asset by ID.
idrequiredCount Data Assets
Count Data Assets, all or those a filter matches.
queryCreate Data Check
Create a Data Check. projectId comes from your credentials. Fields: oneuptime_describe_resource.
namerequiredpatterncheckTyperequiredcustomSqlisEnabledprojectIdcolumnNamedataAssetIdrequireddescriptionformatPresetsamplePercentsegmentColumn+6 moreGet Data Check
Get one Data Check by ID.
idrequiredselectList Data Checks
List Data Checks, with the total count.
skipsortlimitqueryselectUpdate Data Check
Update one Data Check by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednamepatterncheckTypecustomSqlisEnabledcolumnNamedescriptionformatPresetsamplePercentsegmentColumnacceptedValues+5 moreDelete Data Check
Permanently delete one Data Check by ID.
idrequiredCount Data Checks
Count Data Checks, all or those a filter matches.
queryCreate Data Pipeline
Create a Data Pipeline. projectId comes from your credentials. Fields: oneuptime_describe_resource.
Takes no parameters.
Get Data Pipeline
Get one Data Pipeline by ID.
idrequiredselectList Data Pipelines
List Data Pipelines, with the total count.
skipsortlimitqueryselectUpdate Data Pipeline
Update one Data Pipeline by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequireddescriptionDelete Data Pipeline
Permanently delete one Data Pipeline by ID.
idrequiredCount Data Pipelines
Count Data Pipelines, all or those a filter matches.
queryCreate Data Product
Create a Data Product. projectId comes from your credentials. Fields: oneuptime_describe_resource.
namerequiredconsumersprojectIddataAssetsdescriptionownerTeamIdownerUserIdfreshByTimeOfDaymaxDataAgeInMinutesslaTargetPercentageGet Data Product
Get one Data Product by ID.
idrequiredselectList Data Products
List Data Products, with the total count.
skipsortlimitqueryselectUpdate Data Product
Update one Data Product by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednameconsumersdataAssetsdescriptionownerTeamIdownerUserIdfreshByTimeOfDaymaxDataAgeInMinutesslaTargetPercentageDelete Data Product
Permanently delete one Data Product by ID.
idrequiredCount Data Products
Count Data Products, all or those a filter matches.
queryCreate BI Tool
Create a BI Tool. projectId comes from your credentials. Fields: oneuptime_describe_resource.
namerequiredtoolrequiredbaseUrlisEnabledprojectIdcredentialsGet BI Tool
Get one BI Tool by ID.
idrequiredselectList BI Tools
List BI Tools, with the total count.
skipsortlimitqueryselectUpdate BI Tool
Update one BI Tool by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednamebaseUrlisEnabledcredentialsDelete BI Tool
Permanently delete one BI Tool by ID.
idrequiredCount BI Tools
Count BI Tools, all or those a filter matches.
queryCreate BI Dashboard
Create a BI Dashboard. projectId comes from your credentials. Fields: oneuptime_describe_resource.
Takes no parameters.
Get BI Dashboard
Get one BI Dashboard by ID.
idrequiredselectList BI Dashboards
List BI Dashboards, with the total count.
skipsortlimitqueryselectUpdate BI Dashboard
Update one BI Dashboard by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequiredDelete BI Dashboard
Permanently delete one BI Dashboard by ID.
idrequiredCount BI Dashboards
Count BI Dashboards, all or those a filter matches.
queryCreate Warehouse Job
Create a Warehouse Job. projectId comes from your credentials. Fields: oneuptime_describe_resource.
Takes no parameters.
Get Warehouse Job
Get one Warehouse Job by ID.
idrequiredselectList Warehouse Jobs
List Warehouse Jobs, with the total count.
skipsortlimitqueryselectUpdate Warehouse Job
Update one Warehouse Job by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequiredDelete Warehouse Job
Permanently delete one Warehouse Job by ID.
idrequiredCount Warehouse Jobs
Count Warehouse Jobs, all or those a filter matches.
queryCreate Data Reconciliation
Create a Data Reconciliation. projectId comes from your credentials. Fields: oneuptime_describe_resource.
namerequiredprojectIdtolerancerequireddescriptionsourceMeasurerequiredtargetMeasurerequiredtoleranceTyperequiredsourceCustomSqltargetCustomSqlsourceColumnNametargetColumnNameintervalInMinutes+2 moreGet Data Reconciliation
Get one Data Reconciliation by ID.
idrequiredselectList Data Reconciliations
List Data Reconciliations, with the total count.
skipsortlimitqueryselectUpdate Data Reconciliation
Update one Data Reconciliation by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednametolerancedescriptionsourceMeasuretargetMeasuretoleranceTypesourceCustomSqltargetCustomSqlsourceColumnNametargetColumnNameintervalInMinutes+2 moreDelete Data Reconciliation
Permanently delete one Data Reconciliation by ID.
idrequiredCount Data Reconciliations
Count Data Reconciliations, all or those a filter matches.
queryCreate Data Observability Setting
Create a Data Observability Setting. projectId comes from your credentials. Fields: oneuptime_describe_resource.
projectIdkeepFailingRowswaitWhenDatabaseIsBusymaxGigabytesScannedPerCheckGet Data Observability Setting
Get one Data Observability Setting by ID.
idrequiredselectList Data Observability Settings
List Data Observability Settings, with the total count.
skipsortlimitqueryselectUpdate Data Observability Setting
Update one Data Observability Setting by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequiredkeepFailingRowswaitWhenDatabaseIsBusymaxGigabytesScannedPerCheckDelete Data Observability Setting
Permanently delete one Data Observability Setting by ID.
idrequiredCount Data Observability Settings
Count Data Observability Settings, all or those a filter matches.
queryCreate Status Page
Create a Status Page. projectId comes from your credentials. Fields: oneuptime_describe_resource.
namerequiredthemelabelscustomCSSpageTitleprojectIdfooterHTMLheaderHTMLisArchivedlogoFileIddescriptionipWhitelist+62 moreGet Status Page
Get one Status Page by ID.
idrequiredselectList Status Pages
List Status Pages, with the total count.
skipsortlimitqueryselectUpdate Status Page
Update one Status Page by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednamethemelabelscustomCSSpageTitlefooterHTMLheaderHTMLisArchivedlogoFileIddescriptionipWhitelist+62 moreDelete Status Page
Permanently delete one Status Page by ID.
idrequiredCount Status Pages
Count Status Pages, all or those a filter matches.
queryCreate On-Call Policy
Create a On-Call Policy. projectId comes from your credentials. Fields: oneuptime_describe_resource.
namerequiredlabelsprojectIdisArchiveddescriptioncustomFieldsacknowledgementTimeoutInMinutesrepeatPolicyIfNoOneAcknowledgesrepeatPolicyIfNoOneAcknowledgesNoOfTimesGet On-Call Policy
Get one On-Call Policy by ID.
idrequiredselectList On-Call Duty Policies
List On-Call Duty Policies, with the total count.
skipsortlimitqueryselectUpdate On-Call Policy
Update one On-Call Policy by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednamelabelsisArchiveddescriptioncustomFieldsacknowledgementTimeoutInMinutesrepeatPolicyIfNoOneAcknowledgesrepeatPolicyIfNoOneAcknowledgesNoOfTimesDelete On-Call Policy
Permanently delete one On-Call Policy by ID.
idrequiredCount On-Call Duty Policies
Count On-Call Duty Policies, all or those a filter matches.
queryCreate Monitor
Create a Monitor. projectId comes from your credentials. Fields: oneuptime_describe_resource.
namerequiredhostslabelsservicesiotFleetsprojectIdisArchiveddescriptiondockerHostsmonitorTyperequiredpodmanHostscephClusters+23 moreGet Monitor
Get one Monitor by ID.
idrequiredselectList Monitors
List Monitors, with the total count.
skipsortlimitqueryselectUpdate Monitor
Update one Monitor by ID: only the fields sent change. Fields: oneuptime_describe_resource.
idrequirednamehostslabelsservicesiotFleetsisArchiveddescriptiondockerHostspodmanHostscephClusterscustomFields+17 moreDelete Monitor
Permanently delete one Monitor by ID.
idrequiredCount Monitors
Count Monitors, all or those a filter matches.
queryCreate Monitor Status
Create a Monitor Status. projectId comes from your credentials. Fields: oneuptime_describe_resource.
namerequiredcolorrequiredpriorityprojectIdisArchiveddescriptionisOfflineStateisOperationalStateGet Monitor Status
Get one Monitor Status by ID.
idrequiredselect90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare a license in the repository or the registry entry.
claude mcp add --transport http oneuptime https://oneuptime.com/mcp{ "servers": { "oneuptime": { "type": "http", "url": "https://oneuptime.com/mcp" } } }{ "mcpServers": { "oneuptime": { "transport": "streamable-http", "url": "https://oneuptime.com/mcp", "headers": { "x-api-key": "your-api-key-here" } } }}claude mcp add --transport http oneuptime https://oneuptime.com/mcp \ --header "x-api-key: your-api-key-here"{ "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 } ]}{ "mcpServers": { "oneuptime": { "url": "https://oneuptime.com/mcp", "headers": { "x-api-key": "your-api-key-here" } } }}{ "query": { "title": { "_type": "Search", "value": "database" }, "createdAt": { "_type": "GreaterThan", "value": "2026-07-01T00:00:00.000Z" } }}{ "sort": { "createdAt": "DESC" } }{ "returnedCount": 10, "totalCount": 42, "skip": 0, "limit": 10, "hasMore": true, "data": ["..."]}openssl genpkey -algorithm Ed25519 -out mcp-registry-key.pemecho "v=MCPv1; k=ed25519; p=$(openssl pkey -in mcp-registry-key.pem -pubout -outform DER | tail -c 32 | base64)"openssl pkey -in mcp-registry-key.pem -noout -text | grep -A3 "priv:" | tail -n +2 | tr -d ' :\n'cd packages/Appnpm installnpx jest ./FeatureSet/MCP/Tests --runInBand