MCP overview
The Oxagen MCP server: capabilities as tools, API-key authentication, org and workspace scope.
The Oxagen MCP server puts the Oxagen capability set in front of any MCP client: Claude Code, Cursor, Claude Desktop, Codex, VS Code, ChatGPT, and Windsurf. Every call to an Oxagen tool passes the same invoke() kernel as the in-app agent, so a rule answers each call and the record keeps the answer.
MCP server URL: https://mcp.oxagen.sh/mcp
Transport: Streamable HTTP (the current MCP standard). SSE is not used.
What the MCP server provides
Every capability declared with surfaces: ['mcp'] in the contract registry is an MCP tool. That includes workspace memory review, conversation management, asset upload, and plugin management. A connection from an enrolled machine also lists the tools of the workspace's own MCP servers. See External MCP servers.
The kernel answers a tool call when the call is made, not when the client fetches the list. When the caller's role does not allow a tool, the invoke() kernel denies the call and records a capability.invoke_denied event.
Connect a client
The server speaks streamable HTTP, so any client that accepts a remote MCP URL and a custom header can connect. Create a key on the workspace's Settings → API keys tab, then put it in place of the key placeholder. The key tells Oxagen which workspace each call runs in. It is not a credential for any system an agent reaches.
claude mcp add --transport http oxagen https://mcp.oxagen.sh/mcp \
--header "Authorization: Bearer $OXAGEN_API_KEY"Authentication and scoping
The MCP server accepts an Oxagen API key and nothing else. The key sets three things:
- The organization every call belongs to
- The workspace every call runs in. An organization key names no workspace, so its calls run at the organization level.
- The role and key purpose that govern the call. A workspace key acts as a Member of its workspace, or as a custom role on Enterprise, and never as the person who created it. See Authentication.
The URL carries no org or workspace segment. The key carries the scope.
What happens on a tool call
The server refuses an app sign-in token before any tool runs. Only an Oxagen API key carries the org and workspace a tool call runs in.
The record
Every call to an Oxagen tool passes the same invoke() kernel boundary as API and in-app calls:
- Every call leaves one security event:
capability.invoke_allowed,capability.invoke_denied, orcapability.invoke_error. Read them under Organization → Audit. - Billing records each successful call to a billed capability as a governed action. See Billing.
The record shows which tool was called, when, from which surface, and which answer the call got.
Parity with the REST API
Most tools are also REST API routes. A capability that declares surfaces: ['api', 'mcp'] is both an API route and an MCP tool. A few are tools only, such as record_reflection, and some routes are not tools.
See Tools for the current tool list and any known parity gaps.
Client configuration
Use the client snippets on Connecting to MCP with a key from the workspace's Settings → API keys tab.