Skip to main content

Connected Apps Management

Written by Kadri - RichAPI Support Team

Connected Apps is the RichAPI dashboard page that lists every AI client authorized to call RichAPI tools through MCP. Each row shows the client name, the client host, the connect date, and the last active time. Every active connection has a Rename button and a Disconnect button.

What is a connected app in RichAPI?

A connected app is one AI client that a workspace member authorized through the RichAPI OAuth consent screen. Claude Desktop, Claude Code, Cursor, and Windsurf are connected apps. RichAPI creates one row for each authorization. When the same member authorizes the same client again, the new row replaces the old one, and the old row moves to Revoked. Every request that a connected app sends is billed to the organization balance, through the workspace that owns the connection.

Where is the Connected Apps page?

Page element

What it shows

Sidebar group

API Platform

Sidebar item

Connected Apps

URL

/home/<account-slug>/connected-apps

Page title

Connected Apps

Browser tab title

Connected Apps — RichAPI

Which apps can connect to RichAPI?

RichAPI accepts any MCP client that supports the remote HTTP transport. The MCP Setup page names four options.

Client

Where the server URL goes

Claude Desktop

Settings → Connectors → Add custom connector

Claude Code

One terminal command — no JSON

Cursor

~/.cursor/mcp.json or project-level .cursor/mcp.json

Other (Windsurf, Zed, …)

Any MCP client that supports remote HTTP transport

RichAPI holds no fixed allowlist of clients. The name in the list comes from the client_name field that the client sends during dynamic client registration (RFC 7591). If the client sends no name, RichAPI derives the name from the redirect URI.

Redirect scheme or host

Name that RichAPI records

cursor, or a host that contains cursor

Cursor

vscode, vscode-insiders, or a host that contains vscode

VS Code

windsurf, or a host that contains windsurf or codeium

Windsurf

zed, or the host zed.dev

Zed

claude, claudedesktop, or a host that contains claude.ai or anthropic

Claude

chatgpt, com.openai.chat, or a host that contains openai or chatgpt

ChatGPT

The host continue.dev

Continue

Any other value

The bare host, or the scheme, or MCP client

How to connect an app to RichAPI

CAUTION: Create an API key before you start. When the account has no active API key, the consent screen refuses the authorization.

  1. Open the API Keys page and make sure that the workspace has an active key.

  2. Copy the RichAPI MCP server URL: https://mcp.richapi.ai/mcp.

  3. Open your AI client and add the URL as a custom connector or remote MCP server.

  4. Set the transport to http. Some clients call it Streamable HTTP.

  5. The client opens RichAPI in your browser. Sign in to RichAPI.

  6. Read the Connect RichAPI consent screen. Confirm the client name and the account name.

  7. Click Allow.

  8. The browser returns to your AI client. The RichAPI tools are available.

  9. Open Connected Apps and confirm that a new row appears under Active connections.

Claude Code

claude mcp add --transport http richapi https://mcp.richapi.ai/mcp

Cursor

{
"mcpServers": {
"richapi": {
"url": "https://mcp.richapi.ai/mcp"
}
}
}

What does the consent screen grant?

The consent screen is titled Connect RichAPI. It names the client under Requesting access. Under Signed in as, it shows your email address, the workspace name, and Using API key with the prefix of the API key that the connection will use. A note states that the connection has the same access as that API key, and that revoking the key disconnects the client too.

The two buttons are Deny and Allow.

What OAuth scope does a connection use?

RichAPI supports one scope. The MCP server advertises scopes_supported: ["mcp"] in both /.well-known documents. A client that sends no scope receives mcp.

OAuth setting

RichAPI rule

Scope

mcp

Grant types

authorization_code, refresh_token

PKCE

S256, mandatory

Client authentication

none (public client)

Authorization code lifetime

10 minutes

Access token lifetime

1 hour

Refresh token lifetime

30 days, non-rotating

What does RichAPI store for each connection?

RichAPI stores one record for each authorization. Each row on the Connected Apps page shows these details.

Detail on the row

What it shows

Client name

The name that the client sent, or a name that RichAPI derived from the redirect URI. You can rename it.

Client host

The host of the client redirect URI. A desktop app can show no host.

Connect date

The date and time of the authorization.

last active

The time of the last tool call. The page shows never until the first call.

using API key

The prefix of the API key that the connection uses.

disconnected

The disconnect time. Only a revoked row shows it.

RichAPI also records the member who authorized the connection. The page does not show it.

How does the Connected Apps page group connections?

Section

Heading

Count label

Buttons on a row

Active

Active connections

1 app or N apps

Rename, Disconnect

Revoked

Revoked

1 entry or N entries

None

A workspace with at least one revoked connection also shows a Revoked section. An active row carries a Connected badge. A revoked row carries a Revoked badge and shows the disconnect date.

When the workspace has no active connection, the page shows this text: "No active connections. Go to Claude Desktop / Cursor / Windsurf, add a Custom Connector with the URL https://mcp.richapi.ai/mcp, and follow the sign-in flow to authorize your first connection."

How to rename a connection

When two members connect the same client, both rows carry the same name. A label tells them apart.

  1. Open the Connected Apps page.

  2. Find the connection under Active connections.

  3. Click Rename.

  4. Type the new label in the Name field. The limit is 80 characters.

  5. Click Save, or press Enter.

The dialog rejects an empty name with the message Name cannot be empty. It rejects a longer name with the message Name must be 80 characters or fewer.

How to disconnect an app

CAUTION: Disconnect an app only to stop its calls. The AI client loses every RichAPI tool and returns an error until a member authorizes it again.

  1. Open the Connected Apps page.

  2. Find the connection under Active connections.

  3. Click Disconnect.

  4. Read the browser confirmation dialog and click OK.

  5. Wait up to about one minute.

  6. Reload the page and confirm that the connection appears under Revoked.

The confirmation dialog reads: "Disconnect this app? Its access to your RichAPI account will be revoked shortly and may take up to about a minute to fully take effect."

A second disconnect on the same connection returns success and changes nothing.

What happens to work in progress after a disconnect?

A disconnect marks the connection as revoked. The MCP server caches the "not revoked" verdict for 60 seconds. A tool call that already passed the check runs to the end. The next call fails after the cache expires.

Action after the disconnect

Result

A tool call that already passed the revocation check

The call finishes normally and bills the workspace.

A new tool call, within 60 seconds

The call can still succeed. The cached verdict is not yet expired.

A new tool call, after 60 seconds

RichAPI returns 403 with the message that the connection was disconnected.

A refresh token exchange

RichAPI returns invalid_grant with status 403.

The connection row

The row stays in the list under Revoked. RichAPI deletes nothing.

RichAPI cannot re-enable a revoked connection. Authorize the client again to restore access.

What else stops a connected app?

Event

Effect on the connection

A member revokes or deletes the API key behind the connection

The tool calls fail. The row still shows Connected, with a red note that the API key no longer works. Disconnect the row and authorize the client again.

The refresh token reaches its 30-day expiry

The client must authorize again. RichAPI does not rotate the refresh token.

The workspace runs out of credits

The tool calls fail for lack of credits. The connection stays active.

A client that sends the RichAPI API key in an x-api-key header creates no connection row. That client never appears on the Connected Apps page, and a disconnect does not stop it. To stop that client, revoke its API key on the API Keys page.

Are connections scoped to a workspace or to a user?

Connections are scoped to a workspace. Every member of that workspace sees every connection and can rename or disconnect any of them. The owner role is not required.

Question

Answer

Who sees a connection?

Every member of the workspace that owns it.

Who can disconnect a connection?

Every member of the workspace that owns it.

Who pays for its calls?

The organization balance, through the workspace that owns it.

Which member authorized the connection?

RichAPI records it, but the page does not show it.

What happens after a workspace deletion?

The connection rows are deleted with the workspace.

The consent screen binds the connection to the workspace that holds your most recently created active API key, across all your workspaces. A user who belongs to several workspaces must check the workspace name on the consent screen before the approval.

How does RichAPI protect the stored credentials?

The connection record holds no API key and no readable token.

Control

How RichAPI applies it

API key

The client never receives the API key. The connection gets its own token, and RichAPI stores only a hash of that token.

Signature check

RichAPI compares signatures in constant time.

Authorization request integrity

The consent request is signed and expires after 10 minutes. A modified request is rejected.

Proof of possession

PKCE with S256 is mandatory at the token endpoint.

Access

Only members of the owning workspace can see, rename, or disconnect a connection.

Conversation data

RichAPI never sees the conversations inside your AI assistant.

How much does a connected app cost?

A connected app costs nothing. RichAPI charges credits for the tool calls that the app sends, at the same price as a direct API call. 1 credit costs $0.02 on the 1,000 and 5,000 credit packs, and less on larger packs.

The enrich_profile tool costs 1 credit per call, or 2 credits when the call asks for social metrics.

Calls

Credits

Cost

100

100

$2.00

500

500

$10.00

1,000

1,000

$20.00

How to fix a failed connection

What you see

Cause

What to do

No API key yet on the consent screen

The account has no active API key.

Create a key on the API Keys page. The link returns you to the consent screen.

This team has no active API key yet. Create one in Settings → API Keys, then return to your MCP client and try connecting again.

The chosen workspace has no active key.

Create a key in that workspace, then authorize again.

The row says the API key no longer works

Somebody revoked or deleted the API key that the connection uses.

Disconnect the row, then authorize the client again. The new connection uses the newest active key.

Invalid authorization request

The consent page opened without a valid MCP authorization request.

Return to your AI client and connect again.

Authorization request expired or tampered with

The signed request passed its 10-minute limit.

Return to your AI client and connect again.

403 with the text that the connection was disconnected

A member clicked Disconnect, or the same member authorized the same client again and the new connection replaced this one.

Add the connector again and click Allow.

403 with the text that the token matches no known connection

The bearer token points at a row that no longer exists.

Add the connector again and click Allow.

The client still works after a disconnect

The 60-second revocation cache is not yet expired.

Wait one minute, then send another tool call.

The new connection is missing from the list

The consent screen bound the connection to another workspace.

Switch workspace with the account picker, then open Connected Apps again.

MCP connection not found after Rename or Disconnect

The connection belongs to another workspace, or it was deleted.

Reload the page and repeat the action.

Access denied

You are not a member of the workspace.

Ask an owner for an invitation.

Frequently asked questions

Does a disconnect delete the connection from Connected Apps?

No. A disconnect moves the connection into the Revoked section of the Connected Apps page. The row stays visible with its connect date, its last active time, and its disconnect date.

How long does a RichAPI disconnect take to work?

A disconnect takes up to about one minute. The RichAPI MCP server caches the "not revoked" verdict for 60 seconds, so a tool call inside that window can still succeed. After the cache expires, the connection returns 403.

Can another member of my workspace disconnect an app that I connected?

Yes. Connections belong to the workspace, not to the person who authorized them. Every member of the workspace can see, rename, and disconnect every connection in it. The owner role is not required.

Does a connected app receive my RichAPI API key?

No. The AI client receives an OAuth bearer token. The token works with the access of an API key of the workspace, but it does not contain the key. RichAPI stores only a hash of the token.

Which OAuth scope does a RichAPI connection request?

RichAPI supports one scope, named mcp. The MCP server advertises scopes_supported: ["mcp"] in its authorization server metadata and in its protected resource metadata. A client that sends no scope receives mcp.

How do I tell two connections from the same client apart?

Use the Rename button. The rename dialog sets a label of up to 80 characters on one connection. The row also shows the client host, which separates a desktop build from a local development build.

Does a connected app need its own credits?

No. A connected app spends from the organization balance, through the workspace that owns the connection. The consent screen names that account before you click Allow.

Related articles

Did this answer your question?