Skip to main content
The Hyperstack MCP server lets AI assistants and other MCP clients work in your organization. It uses the Model Context Protocol. The assistant calls tools to read and manage credentials, groups, designs, recipients and more. The server URL is:
To connect a specific assistant step by step, see AI Assistants. This page is for developers who build or set up an MCP client.

How it works

  • The assistant acts as the member who connected it, in one organization. It has that member’s roles and the organization’s plan features, and nothing more.
  • Roles are checked on every tool call. If an admin changes the member’s roles, the next call uses the new roles.
  • Each tool runs the same Studio endpoint that the matching Studio page uses. The same rules, limits and audit logs apply.
  • A connection is not an API key. The REST API refuses MCP tokens.

Transport

Send the access token in the Authorization header of every request, and accept both JSON and event streams:
A request with no token, or with a token that is not valid, gets a 401. The WWW-Authenticate header points to the discovery document, so the client can start sign-in:

Authentication

The server uses OAuth 2.1 with the authorization code flow and PKCE. Most MCP clients do all of this for you once you give them the server URL.

Endpoints

All endpoints are on https://api.thehyperstack.com.

Client registration

Clients register themselves at /register. You don’t need to ask Hyperstack for a client ID.
  • grant_types must include authorization_code. Add refresh_token to refresh.
  • response_types must include code.
  • token_endpoint_auth_method can be none (a public client with no secret), client_secret_post or client_secret_basic. If you leave it out, you get client_secret_post and a client secret. private_key_jwt is not supported.
  • PKCE uses S256 only.

Tokens

When the access token expires, get a new one with the refresh token. Each refresh also returns a new refresh token, valid for another 90 days. Store it and use it for the next refresh, because the old one stops working. If you send the same refresh token again within 60 seconds (for example, two refreshes at once, or a retry after a lost response), it still works. The connection lasts as long as it is used. If no refresh happens for 90 days, the member must connect again. To end a connection from your client, send the access token or the refresh token to /revoke. Either one ends the whole connection. /authorize sends the member to a Hyperstack page. There they:
  1. Sign in, if they are not signed in already.
  2. See the assistant’s name, the access it asks for, and where they will be sent back to.
  3. Pick the organization the assistant can work in. The page shows the member’s roles in each organization.
  4. Click Allow or Deny.
The consent link works for 10 minutes. If the member clicks Deny, the client gets error=access_denied.

Scopes

A client asks for scopes when it registers or when it starts sign-in. If it asks for none, it gets all three. The consent page shows the scopes. The member allows or denies them all together. A scope never adds to the member’s roles. To issue a credential, the connection needs the issue scope and the member needs the Issuer role.

Manage connections

Admins see every connection of the organization in the Studio, under Settings → AI assistants. Each row shows the assistant, the member who connected it and when.
  • Click Disconnect to end a connection at once. The next request with its token gets a 401.
  • When a member leaves the organization, their connections stop working.
What an assistant does is written to the audit logs as the member who connected it, the same as when that member uses the Studio. Connecting and disconnecting an assistant are logged too.

Confirmation before changes

The server gives every client these instructions:
  • Issuing creates credentials under review. Nothing is sent yet.
  • Publishing emails each recipient and uses one credit per new recipient (by email). A recipient who is already covered uses no credit.
  • Before it publishes, suspends, revokes or changes anything in bulk, the assistant must tell the user exactly what will happen and get a clear yes.
Tools also carry MCP annotations: read-only tools are marked read-only, and tools such as revoke_credentials are marked destructive. Clients can use these to ask the user before a call.
publish_credentials emails recipients and uses credits. resend_credentials emails recipients. After set_auto_issue turns auto-issue on, each course completion issues a credential, emails the learner and uses a credit. revoke_credentials can’t be undone.

Tools

Each tool needs one scope, a role, and sometimes a plan feature. The Admin role includes every other role. Call get_organization to see the member’s roles and the plan’s features. There are no tools to delete groups, designs or credentials, to change billing, or to manage API keys.

Organization

Credential groups

Designs

Attributes

Credentials

The bulk tools (publish_credentials to export_credentials) take either a list of credential keys, or all_matching: true with the same filters as list_credentials.

Recipients

Reviews

Insights

Email templates

Pathways

Directories

Apps

These tools work with apps from the marketplace. Install and connect an app in the Studio first.

Audit logs

Resources and prompts

The server also offers three resources that clients can attach as context: And three prompts, ready-made tasks a client can offer:

Errors

When a tool fails, the call returns a normal MCP result with isError: true. The text says what went wrong and starts with the tool’s name:
The server tells assistants to report these errors to the user, and not to retry. Keys come from other tools. List or search first, then use the key in the result. Arguments that don’t match a tool’s input schema also return isError: true, with the details. A connection that was revoked, or whose member left the organization, gets a 401 on every request, and its refresh token is refused. Connect again to get a new connection.
Last modified on October 20, 2026