MCP Server
Connect an AI agent to Uptend over the Model Context Protocol — a curated set of tools backed by your Uptend account.
Uptend ships a Model Context Protocol (MCP) server so AI agents — Claude, Cursor, and any MCP-capable client — can read your workspaces through a curated set of tools. The server is a thin client over the Uptend API: every tool call is authenticated with a Uptend credential and enforced by the same permissions as a direct HTTP call.
It's a hosted Streamable-HTTP endpoint at https://mcp.uptend.io/mcp — nothing to install. Point any MCP-capable client at the URL and connect one of two ways:
- Sign in with OAuth — one click, no token to manage. Recommended for clients that support remote-MCP authorization (Claude and others).
- Use a bearer token — paste a Uptend API token. Works with any client that lets you set an
Authorizationheader, and with scripts and programmatic clients.
Tools
The surface is deliberately small — the jobs an agent actually needs, not a 1:1 mirror of every API endpoint:
| Tool | What it does |
|---|---|
get_me | Identify the authenticated user. |
list_organizations | List the organizations you belong to. |
list_workspaces · get_workspace | Discover and inspect workspaces. |
search | Search across a workspace. |
Every tool shipped today is read-only — there are no write or destructive tools yet. As write tools land they will be flagged so clients can prompt for confirmation, and a deployment will be able to drop them wholesale — see Read-only and toolset gating.
Connect with OAuth
Clients that support remote-MCP authorization can connect without you ever handling a token — Uptend is a full OAuth 2.1 authorization server (PKCE, dynamic client registration, and refresh tokens). Add the server URL and the client runs the handshake for you:
- In your client, add an MCP server with the URL
https://mcp.uptend.io/mcp— leave the token blank. - The client discovers Uptend's authorization server and opens your browser.
- Sign in to Uptend (if you aren't already), then review the consent screen — it lists exactly which permissions the app is requesting (for example, Read workspaces).
- Approve, and the client receives short-lived access tokens automatically and refreshes them in the background. There's nothing to copy or paste.
Beyond the URL there's nothing to configure: the client finds the authorization server, registers itself, and walks the consent flow on its own.
What the app can do
The consent screen only ever offers a subset of your own permissions — you can hand an agent read-only access even if you can write. An app can never do more than you can: every tool call is re-checked against your live workspace role, so if your access is later reduced — or you leave the workspace — the app's reach narrows at the same moment, with no stale token to wait out.
Like a personal access token, an OAuth grant is user-level and spans every workspace you belong to, so the agent chooses a workspace per call — see Binding a workspace.
Review and disconnect
Every app you authorize appears under Settings → Account → Connected Apps in the admin dashboard, with the scopes it holds and when it was last active. Disconnect revokes its tokens immediately — the agent stops working on its next call.
Connect with a token
For clients that don't support OAuth — or for scripts and programmatic use — supply a Uptend API token as a bearer credential. Issue one from Settings → Developer → API keys in the admin; see Authentication for the difference between the two token types:
- A personal access token (
uptend_pat_…) acts as you across every workspace you belong to. - A workspace API key (
uptend_sk_…) is bound to a single workspace.
The token is forwarded to the Uptend API and re-verified on every tool call, so a tool can never do more than the token's holder could do directly. A malformed or missing token is rejected at connect time with a 401; a well-formed but revoked or unauthorized token connects but returns an UNAUTHORIZED error on the first tool call.
Binding a workspace
A workspace API key (uptend_sk_…) is already scoped to one workspace — nothing else to do.
A user-level credential — a personal access token (uptend_pat_…) or an OAuth grant — spans every workspace you belong to, so workspace-scoped tools (get_workspace, search, …) need to know which workspace to act on. Provide it either way:
- Send a
Uptend-Workspace-Idheader on the connection. - Or pass a
workspaceIdargument on an individual tool call, which overrides the connection default for that call.
Call list_workspaces first if you don't know the id.
Read-only and toolset gating
Two environment variables narrow what the server exposes on a deployment:
UPTEND_READ_ONLY=1drops every write tool, leaving a read-only surface. Useful for agents that should never mutate state. Because no write tools ship yet, setting it today changes nothing — it is the switch to flip ahead of time if you want a deployment to stay read-only as the surface grows.UPTEND_TOOLSETS=workspaces,searchrestricts the surface to a comma-separated allow-list of toolsets. Valid toolsets areaccount,organizations,workspaces, andsearch; an unknown name fails fast at startup.
Gating is a convenience that keeps an agent focused — it is not the security boundary. Permissions are always enforced server-side by the Uptend API regardless of which tools were advertised.