Skip to main content
View as Markdown

MCP Overview

The Model Context Protocol is an open standard for connecting AI assistants to tools and data. Sovrium speaks it in both directions, and the two directions are unrelated pieces of configuration that happen to share a name.

Direction What happens Configured by Needs an LLM on Sovrium?
Server mode External clients connect to your app and call generated tools over your own data. Operator (env) No — the model lives at the client
Client mode Your agents call tools hosted on someone else's MCP server. Schema author Yes — AI_PROVIDER must be set

Server mode is the one most people mean. It turns a Sovrium app into something Claude Desktop, Claude Code, Cursor or ChatGPT Dev Mode can operate: tables become CRUD tools, manual automations become invocable, action templates become callable.

Server Mode

The MCP server is off by default and the route only mounts when the operator says so. Nothing you write in the schema turns it on — aiAccess declares eligibility, MCP_ENABLED grants it.

Variable Default Purpose
MCP_ENABLED false Master switch. The /mcp route exists only when true.
MCP_TRANSPORT streamable-http streamable-http for remote clients, stdio for a local IDE.
MCP_MOUNT_PATH /mcp Route prefix under streamable-http.
MCP_AUTH_STRATEGY oauth2 if app.auth, else token How clients authenticate.
MCP_RATE_LIMIT_PER_MINUTE 60 Requests per minute, per credential.
MCP_RATE_LIMIT_PER_DAY 5000 Requests per day, per credential.
MCP_AUDIT_ENABLED true Record every tool call.
MCP_EXPOSE_INTERNALS true Give admins read-only tools over auth and system tables.
MCP_CONFIRM_DESTRUCTIVE true Mark deletes and non-idempotent calls as needing confirmation.
>_ terminal
MCP_ENABLED=true
MCP_TRANSPORT=streamable-http
MCP_AUTH_STRATEGY=token
MCP_TOKEN_ADMIN=$(openssl rand -hex 32)
MCP_TOKEN_VIEWER=$(openssl rand -hex 32)

That is the whole enablement story. What gets exposed, and to whom, is three further pages:

Startup validation catches the two ways this can be inconsistent: MCP_AUTH_STRATEGY=token with no MCP_TOKEN_* set, and oauth2 without app.auth. Both fail the boot rather than mounting an unreachable or unguarded route.

Client Mode

Moved to Client Mode — letting an agent call tools on an external MCP server.

Which One Do You Want

The question that separates them is where the model runs.

If you want to ask Claude about your data, or have it file a record for you, you want server mode — your app publishes tools and someone else's assistant calls them. If you want an agent inside your app to search the web or fetch a document as part of its own work, you want client mode — your app is the caller and the tools are elsewhere.

They compose. An app can serve tools to Claude Desktop while its own agents consume tools from a search provider; neither configuration knows about the other.

Last updated August 11, 2026

This documentation was written with AI, so errors or outdated content are possible. Sovrium is in beta. Contributions and corrections are welcome.

Built with Sovrium