https://core.ravenna.ai/mcp.
Authenticate using OAuth sign-in. Your client redirects you to sign in to Ravenna with your existing account. No API keys needed.
Sign in with OAuth
OAuth-capable MCP clients discover Ravenna’s authorization server automatically from the MCP endpoint. When you add the server, your client opens a browser window for you to sign in to Ravenna. After sign-in, the client receives an access token scoped to your user and organization, and uses it for every MCP request. When to use OAuth:- Your MCP client supports OAuth (for example, ChatGPT or the latest versions of Claude and Cursor).
- You want to authenticate as yourself rather than share a workspace-level API key.
- You do not have permission to create API keys in your workspace.
Add the MCP server URL
https://core.ravenna.ai/mcp. Do not set an Authorization header. Your client handles the token automatically once OAuth completes.Complete the sign-in flow
Verify the connection
Configure your AI client
ChatGPT
ChatGPT connects to Ravenna using OAuth sign-in. You add the MCP server URL in ChatGPT’s connector settings, then sign in to Ravenna in a browser pop-up. No API key required.- Name:
Ravenna - MCP Server URL:
https://core.ravenna.ai/mcp - Leave the authentication field set to OAuth.
Claude Code
Claude Code supports OAuth authentication for MCP servers. A single terminal command registers the Ravenna server and initiates the OAuth flow.Add the MCP server
--callback-port 56567 option is critical for the OAuth callback.Complete OAuth sign-in
Start a new session
Verify the connection
/mcp to check the server status.Codex
Codex supports OAuth authentication for MCP servers. Configuration is stored in aconfig.toml file.
Open your config file
config.toml in your Codex home directory. Create the file if it does not exist.- macOS and Linux:
~/.codex/config.toml - Windows:
%USERPROFILE%\.codex\config.toml
CODEX_HOME environment variable, Codex uses $CODEX_HOME/config.toml instead.Add the MCP server configuration
config.toml. Place mcp_oauth_callback_port at the top of the file, above any [table] headers, so Codex reads it as a global setting.http://127.0.0.1:56567/callback/R1_hNylnFZtJ. The last part of the path is an ID that Codex derives from the server URL, so it is the same for everyone who connects to https://core.ravenna.ai/mcp. Ravenna’s sign-in page only accepts callbacks on port 56567. If Codex picks a random port, sign-in fails with a Callback URL mismatch error.Authenticate with OAuth
Verify the connection
OpenCode
OpenCode supports OAuth authentication for remote MCP servers. Configuration is stored in anopencode.json file.
Open your config file
opencode.json. Create the file if it does not exist.- Global (all projects):
~/.config/opencode/opencode.json - Single project:
opencode.jsonin the project root
Add the MCP server configuration
opencode.json:19876) is not accepted by Ravenna’s sign-in page, so set redirectUri exactly as shown.Authenticate with OAuth
Verify the connection
opencode mcp debug ravenna to see where the OAuth flow stops.Claude Desktop
Claude Desktop can connect to Ravenna using themcp-remote package, which bridges the remote HTTP MCP server to Claude Desktop’s stdio-based MCP protocol.
Locate your configuration file
claude_desktop_config.json. The location depends on your platform:- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add the Ravenna MCP server
claude_desktop_config.json:Restart Claude Desktop
Complete OAuth sign-in
Verify the connection
Cursor
Cursor supports OAuth authentication for MCP servers. Add the Ravenna server to.cursor/mcp.json and Cursor handles the OAuth sign-in flow automatically the first time you connect.
Open the configuration file
.cursor/mcp.json in your project root. For global access across all projects, use ~/.cursor/mcp.json in your home directory instead.Add the Ravenna MCP server
Authorization header. Cursor handles OAuth automatically once you sign in.Enable the server in Cursor settings
Complete OAuth sign-in
Verify the connection
VS Code
VS Code supports OAuth authentication for MCP servers through GitHub Copilot. The OAuth callback URL ishttp://127.0.0.1:33418/ and is automatically handled by VS Code.
Create the configuration file
.vscode/mcp.json in your project root. For global access across all projects, add the configuration to your VS Code User Settings JSON instead.Add the Ravenna MCP server
.vscode/mcp.json:Authorization header. VS Code handles OAuth authentication automatically.Reload VS Code
Complete OAuth sign-in
Verify the connection
Other MCP clients
If your MCP client is not listed above, you can still connect it to Ravenna as long as it supports OAuth and remote HTTP servers. If you’re using a client that does not yet support OAuth for remote MCP servers, reach out to us at support@ravenna.ai to discuss alternative authentication methods.Custom MCP clients
Any MCP-compatible client that supports OAuth and remote HTTP servers can connect to Ravenna. Use these connection details:- URL:
https://core.ravenna.ai/mcp - Transport: Streamable HTTP (may be labeled
httporstreamable-http) - Authentication: OAuth 2.0 with automatic discovery
- Callback URL: Most clients handle this automatically. Common defaults:
- VS Code:
http://127.0.0.1:33418/ - Claude Code: Configurable via
--callback-port - Codex:
http://127.0.0.1:56567/callback/R1_hNylnFZtJ, set withmcp_oauth_callback_port = 56567inconfig.toml - OpenCode:
http://127.0.0.1:56567/oauth/callback, set withoauth.redirectUriinopencode.json - Cursor:
cursor://anysphere.cursor-mcp/oauth/callback
- VS Code:
/mcp endpoint uses Streamable HTTP and automatically discovers OAuth authorization server metadata. Ravenna’s OAuth implementation supports the standard callback URLs used by popular MCP clients.Test your connection
Check tool availability
Run a simple query
Verify results
Troubleshooting
Tools not appearing
Tools not appearing
- Verify your configuration file is in the correct location for your client.
- Check that the JSON is valid (no trailing commas, correct nesting).
- Restart your AI client completely after making configuration changes.
- Confirm the server URL is exactly
https://core.ravenna.ai/mcp.
Authentication errors
Authentication errors
- Check that your API key is correct and has not been revoked.
- Verify the
Authorizationheader uses theBearerprefix with a space before the token. - Ensure there are no extra spaces or newline characters in your key value.
- If your key has Allowed IP ranges configured, confirm your client’s public egress IP is inside one of those ranges. Requests from outside the allowlist return
403 Forbiddenand do not include aWWW-Authenticateheader, and the error deliberately does not reveal that the key is IP-scoped. See Restrict a key to specific IP ranges.
Callback URL mismatch
Callback URL mismatch
unauthorized_client: Callback URL mismatch. The error shows the URL your client sent.For clients that use port 56567 (Codex, OpenCode, Claude Code, and Claude Desktop with mcp-remote), Ravenna accepts these callback URLs:http://127.0.0.1:56567/callbackhttp://localhost:56567/callbackhttp://127.0.0.1:56567/callback/R1_hNylnFZtJ(Codex)http://localhost:56567/callback/R1_hNylnFZtJ(Codex)http://127.0.0.1:56567/oauth/callbackhttp://localhost:56567/oauth/callback
- Wrong port: Set the callback port to
56567. In Codex, addmcp_oauth_callback_port = 56567at the top ofconfig.toml. In OpenCode, setoauth.redirectUritohttp://127.0.0.1:56567/oauth/callback. In Claude Code, pass--callback-port 56567. - Codex ignores the setting: Confirm you edited the
config.tomlCodex actually reads (~/.codex/config.toml, or$CODEX_HOME/config.toml). Confirmmcp_oauth_callback_portsits above any[table]header. Update Codex to the latest version, then runcodex mcp login ravennaagain. - Different ID after
/callback: Codex builds the ID from the server URL, so a different URL (for example, one with a trailing slash) produces a different ID. Set the server URL to exactlyhttps://core.ravenna.ai/mcp, then runcodex mcp login ravennaagain.
No data returned
No data returned
- Confirm your API key is scoped to the workspace you expect.
- Verify that your user account has the necessary permissions to access the requested data.
- Try a simple operation like “get current user” to isolate whether the issue is with authentication or with a specific tool.
Forbidden or insufficient role errors
Forbidden or insufficient role errors
- Some tools require an Admin role in the target workspace. Member or Guest accounts cannot call them.
- A few tools (such as creating users) require organization admin privileges.
- Confirm your role in the target workspace from Settings → Members in the Admin, and ask a workspace admin to upgrade your role if needed.
Wrong workspace or workspace not found
Wrong workspace or workspace not found
workspaceId on each call.- If your assistant targets the wrong workspace, name the workspace explicitly in your prompt (for example, “In the IT Support workspace, …”).
- If you connected with an API key, your session is pinned to the workspace that issued the key. Calls to any other workspace are rejected even if you are a member. Switch to OAuth to work across multiple workspaces.
- A “workspace membership not found” error means your user account is not a member of the workspace you targeted. Add yourself to the workspace, or pick one you belong to.
Connection drops or timeouts
Connection drops or timeouts
- Some clients maintain a persistent connection to the server. If your network is interrupted, restart the client to reconnect.
- If the connection drops after a period of inactivity, this is expected. Start a new conversation or restart the client.
- Check that your network allows long-lived HTTPS connections and does not have aggressive idle timeouts.