The admin guide to setting up OAuth providers, configuring MCP servers and controlling what your organization's agents can access.
|
|
The admin guide to setting up OAuth providers, configuring MCP servers, and controlling what your Organization's Charms can access.
Your Role as Organization Owner
Everything your Organization's Charms can connect to flows through you. You define which external services are available, configure the credentials that make connections possible and set the ceiling on what those connections are permitted to do. Users authorize their own individual accounts — but they can only authorize connections to services you've set up.Two concepts to understand before configuring anything:Integrations — Your Organization's registered OAuth application with a provider (Google, GitHub, Slack, etc.). Created once. Shared across all users who connect to that provider.MCP Server Definitions — The specific endpoints your Charms call. Each MCP server is tied to an Integration (for OAuth-protected services) or uses a static token or no authentication. You control which tools each MCP server exposes to your Organization.
Setting Up an Integration
Before users can authorize connections to an external service, you need to register your Organization's OAuth application with that provider and create an Integration in CharmIQ.
Register your application with the external provider (Google Cloud Console, GitHub OAuth Apps, etc.) to get a Client ID and Client Secret
In CharmIQ's admin settings, create a new Integration
Select the provider and enter your Client ID and Client Secret
Set the default scopes (permissions) the Integration will request
CharmIQ supports 34 built-in providers plus a Custom option for any OAuth-compliant service.The client secret is stored encrypted and is never visible after creation. If you need to rotate it, create a new Integration and migrate your MCP server definitions to it.
Configuring MCP Servers
With an Integration in place, you can add MCP server definitions — the actual endpoints your Charms will call.Each MCP server definition includes:
URL — The MCP endpoint (e.g., https://bigquery.googleapis.com/mcp)
Authentication type — OAuth (linked to an Integration), Static Token, or None
Allowed tools — Optionally restrict which tools this server can expose to your Organization
The allowed tools setting is a ceiling, not a floor. Users can further restrict which tools individual Charms use — but they can never exceed what you've configured at the Organization level.Authentication types:
Type
When to Use
OAuth
Most cloud services (Google, GitHub, Slack, etc.) — requires an Integration
Static Token
Services that use API keys rather than OAuth
None
Public endpoints or services that authenticate through other means
Controlling What Charms Can Do
When you define an MCP server, you can specify exactly which tools it exposes to your Organization. A server might offer 40 tools; you might permit 10. Users can narrow that further when configuring individual Charms — but they can't go beyond what you've allowed.The effective set of tools any Charm can use is always the intersection of three things:
What the MCP server actually provides
What you've permitted at the Organization level
What the user has configured at the Charm level
Tighter ceilings mean cleaner audits. If your use case only needs read access, don't permit write tools.
Managing Inbound OAuth Clients
When external tools connect to CharmIQ (Claude Code, VS Code, Zapier, custom integrations), they appear as OAuth clients. Two types require your attention:Dynamic clients — Created automatically when MCP-compatible tools like Claude Code connect. They self-register and are cleaned up after 90 days of inactivity. No action needed from you.Organization-scoped clients — Created by you for custom integrations that need a client secret (server-to-server flows). You create these in CharmIQ's admin settings, issue the Client ID and Secret, and distribute them to whoever is building the integration.You can review all connected clients and revoke access to any of them at any time.
Cascade Effects
Some administrative actions have downstream consequences:
Disabling or deleting an Integration — All user connections through that Integration are revoked immediately. Users must re-authorize if you re-enable or replace it.
Deleting an MCP server definition — All user connections associated with that server are revoked. The server is no longer available to any Charm.
Revoking an OAuth client — The external tool loses access immediately.
These are clean breaks — no orphaned credentials.
Patterns
One Integration per provider. All users share your Organization's registered OAuth application. You don't need separate Integrations for different MCP servers that use the same provider.
Set tool ceilings deliberately. Don't expose every tool an MCP server offers if your use case only needs a subset. Narrower permissions are easier to audit and harder to misuse.
Rotate secrets, don't reuse them. If a client secret may be compromised, create a new Integration, move your MCP server definitions to it and delete the old one.
Audit connected clients periodically. Dynamic clients clean up automatically. Organization-scoped clients persist until you remove them. Review them quarterly.