Connect your AI assistant to your live SaaS management data
Select your AI assistant below. Each tab walks you through getting your API key and completing the OAuth connection.
claude mcp add --transport http cloudeagle https://mcp.cloudeagle.ai/mcp
/mcp in Claude Code and confirm cloudeagle shows as connected. Then try: "List my CloudEagle applications."
claude mcp add --transport http cloudeagle https://mcp.cloudeagle.ai/mcp — the browser sign-in page will open again.
{
"mcpServers": {
"cloudeagle": {
"type": "http",
"url": "https://mcp.cloudeagle.ai/mcp"
}
}
}
Fully quit and reopen Claude Desktop.
.cursor/mcp.json in your home directory (or project root):
{
"mcpServers": {
"cloudeagle": {
"url": "https://mcp.cloudeagle.ai/mcp"
}
}
}
Restart Cursor.
Automated agents (Claude API, LangChain, LangGraph, custom scripts) cannot open a browser for OAuth. Instead, pass a CloudEagle API key directly as a Bearer token — no OAuth dance required.
Authorization: Bearer in the MCP client headers. Replace {tenant} with your CloudEagle tenant slug.
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-4-5",
max_tokens=4096,
tools=[{"type": "mcp", "server_label": "cloudeagle",
"server_url": "https://mcp.cloudeagle.ai/{tenant}",
"headers": {"Authorization": "Bearer YOUR_API_KEY"}}],
messages=[{"role": "user", "content": "List my SaaS applications."}],
betas=["mcp-client-2025-04-04"],
)
from mcp.client.streamable_http import streamablehttp_client
async with streamablehttp_client(
"https://mcp.cloudeagle.ai/{tenant}",
headers={"Authorization": "Bearer YOUR_API_KEY"}
) as (read, write, _):
# tools are discovered automatically
...
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transport = new StreamableHTTPClientTransport(
new URL("https://mcp.cloudeagle.ai/{tenant}"),
{ requestInit: { headers: { "Authorization": "Bearer YOUR_API_KEY" } } }
);
# ~/.claude/mcp.json
{
"mcpServers": {
"cloudeagle": {
"type": "http",
"url": "https://mcp.cloudeagle.ai/{tenant}",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Authorization header:
from mcp.client.streamable_http import streamablehttp_client
async with streamablehttp_client(
"https://mcp.cloudeagle.ai/mcp",
headers={"Authorization": "Bearer YOUR_API_KEY"}
) as (read, write, _):
# tools are discovered automatically
...
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transport = new StreamableHTTPClientTransport(
new URL("https://mcp.cloudeagle.ai/mcp"),
{ requestInit: { headers: { "Authorization": "Bearer YOUR_API_KEY" } } }
);
YOUR_API_KEY with the key copied in step 1. Keys expire after 90 days — update this value when you generate a new one.
https://mcp.cloudeagle.ai/mcp/mcp to reconnect; re-run claude mcp add --transport http cloudeagle https://mcp.cloudeagle.ai/mcp if neededmcp.cloudeagle.aiclaude mcp add --transport http cloudeagle https://mcp.cloudeagle.ai/mcp to reset the connectionclaude mcp add --transport http cloudeagle https://mcp.cloudeagle.ai/mcpMCP_API_KEY_AUTH=true is set on the serverMCP_API_KEY_AUTH=true — this feature is off by defaultAuthorization: Bearer YOUR_API_KEY (not X-API-Key or another format)/{tenant} path