Skip to content

Search docs

Find pages, headings, and concepts. Press ⌘K or Ctrl+K to toggle.

Connect Alumia via MCP

Drive Alumia from Claude Desktop, Codex, Gemini, or any MCP-aware client.

Alumia ships a hosted Model Context Protocol (MCP) server so any MCP-aware client (Claude Desktop, Cursor, Codex CLI, Gemini CLI, custom agents) can list, inspect, and operate on resources inside your Alumia organization.

Two transports are supported:

  • Streamable HTTP — point the client at https://app.alumia.com/mcp with a Bearer header. No install.
  • stdio — run the @hasna/alumia CLI MCP server (alumia mcp --stdio) and let the client spawn it. The stdio server exposes a broader automation surface (alumia_exec, billing, tasks, schedules, webhooks, knowledge search, and more) than the hosted HTTP server — see Terminal CLI.

Org-registered MCP servers for in-product agents are documented at MCP servers API. REST API calls use https://alumia.com/api/v1; the hosted MCP endpoint uses app.alumia.com.

1. Create an API key

Open /<orgSlug>/developersAPI Keys tab and click Create key. Keys look like alm_live_… or alm_test_…. Keep them out of public bundles and source control. Mint keys from the dashboard with step-up — API keys cannot be created through MCP.

Hosted HTTP MCP tools enforce MCP-layer read and write scopes on each tool call. Dashboard key minting today issues org API scopes such as models:read by default — not the MCP read/write pair. For full automation with a dashboard-minted key, prefer the stdio path below (alumia mcp --stdio uses the same REST credentials without MCP scope gating).

MCP write tools cannot perform browser-only dashboard mutations (workspace changes, project sharing, org settings, memory deletes). Use the app for those operations.

2. Hosted (HTTP)

Pass the key as Authorization: Bearer alm_live_…. Example client config (most desktop clients accept this shape):

{
  "mcpServers": {
    "alumia": {
      "url": "https://app.alumia.com/mcp",
      "headers": {
        "Authorization": "Bearer alm_live_xxx"
      }
    }
  }
}

For clients that only speak stdio, use ALUMIA_BASE_URL (not ALUMIA_API_URL):

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "alumia": {
      "command": "bunx",
      "args": ["-y", "@hasna/alumia", "mcp", "--stdio"],
      "env": {
        "ALUMIA_API_KEY": "alm_live_xxx",
        "ALUMIA_BASE_URL": "https://alumia.com"
      }
    }
  }
}

Or install into local agent clients with alumia mcp install --target claude|codex|gemini.

Codex CLI

~/.codex/config.toml

[mcp_servers.alumia]
command = "bunx"
args = ["-y", "@hasna/alumia", "mcp", "--stdio"]
env = { ALUMIA_API_KEY = "alm_live_xxx", ALUMIA_BASE_URL = "https://alumia.com" }

Gemini CLI

~/.gemini/extensions/alumia/gemini-extension.json

{
  "name": "alumia",
  "version": "1.0.0",
  "mcpServers": {
    "alumia": {
      "command": "bunx",
      "args": ["-y", "@hasna/alumia", "mcp", "--stdio"],
      "env": {
        "ALUMIA_API_KEY": "alm_live_xxx",
        "ALUMIA_BASE_URL": "https://alumia.com"
      }
    }
  }
}

4. Tools (hosted HTTP)

ToolMCP scope
alumia_get_balanceread
alumia_list_agentsread
alumia_list_projectsread
alumia_list_sessionsread
alumia_list_filesread
alumia_search_memoriesread
alumia_list_connectorsread
alumia_get_connector_catalogread
alumia_create_memorywrite
alumia_create_sessionwrite

Mutating tools fail closed if the key lacks the MCP write scope. Every invocation is audit-logged (mcp.tool.invoked or mcp.tool.invoked.mutating) so operators can replay the trail.

Resources and prompts

NameKindPurpose
alumia_org_snapshotresource (alumia://org)Counts of agents, projects, and sessions in the calling org.
alumia_summarize_orgpromptStarter prompt for summarizing org activity.

5. Discovery

The server descriptor is published at /.well-known/mcp.json. Tooling that follows the MCP discovery spec can auto-configure from that.