Skip to main content
Capabilities Catalog
The Capabilities Catalog is a centralized registry of tools and capabilities available to AI agents in your organization. It includes MCP servers, functions, file search, skills, guardrails, memory providers, and sub-agents.

Capability Types

Categories

Organize capabilities into functional categories:

MCP Servers

Model Context Protocol (MCP) servers expose tools to AI agents through a standardized interface.

Adding an MCP Server

  1. Go to Capabilities in the sidebar
  2. Click Add Capability
  3. Select type MCP
  4. Configure:
  1. Click Create

Example Configuration

The example above uses a single, org-wide credential baked into the headers — every end user reaches the MCP with the same token. Use this when access is shared. When each end user must log in personally — OAuth (Notion, GitHub, Outlook…) or a per-user API key — switch to the per-user authentication pattern below.

Per-user authentication

Add an auth block to the capability so the platform handles connect / disconnect / status checks per end user. Two patterns are supported:

Required auth fields

The capability hosts these three endpoints itself (typically as a Builder workspace alongside the MCP server). The platform never stores the credential in agent-factory or in the agent — only inside the capability’s own workspace.

Example: MCP server with JSON auth

config_schema defines the fields the Agent Builder fills in when adding the capability to an agent in the Agent Creator product (server URL, tool name, scope…). config_schema is not for end users — never use it for credentials.

Implementing the three webhooks

Each auth.*_url points at one webhook automation in the capability’s own workspace. Here is the minimum each must do, mirroring the SharePoint MCP reference implementation:

status_url — am I connected?

Triggered by Chat per turn whenever the agent might call the tool. Reads the current end user’s stored credential and returns whether it’s still valid.
Must return { "connected": true | false }. Add anything else you want to surface to the UI (expiresAt, email, etc.) — Chat ignores unknown fields safely.

connect_url — start the flow

For OAuth, generate PKCE + state and redirect to the provider. For JSON auth, render or redirect to a small form that collects the credential.
The OAuth callback (a separate webhook, e.g. oauthCallback) exchanges the auth code for tokens and stores them via the secrets module with scope: user:

disconnect_url — revoke

Deletes the per-user secret and any state stored in user scope:
Reference: full SharePoint MCP implementation in the sharepoint-mcp workspace template.

Where credentials live

End-user credentials never leave the capability’s own workspace. Two layers exist, depending on whose credential it is:

Per-user credentials (the user’s OAuth token, personal API key)

  • Stored via the secrets module with scope: user — encrypted at rest, isolated per user, only readable from inside the capability’s own workspace.
  • The MCP server’s tool implementations are the only code allowed to read these secrets. They retrieve the calling user’s token at call time, attach it to the outbound API request, and discard it.
  • The agent never sees the user’s token or credential. It only sees the tool’s response (or the structured error if connected: false). Likewise, agent-factory, secure-chat, and the LLM gateway have no read access — they only know whether the user is connected, never what the credential is.

Infrastructure credentials (the OAuth client secret, upstream API keys, webhook signing keys)

These are not user-specific — they belong to the capability itself (e.g. the OAuth client_secret issued by Microsoft for your SharePoint app, the static API token your MCP uses to talk to its upstream).
  • Pulled from the platform’s infrastructure secret store — Azure Key Vault, AWS Secrets Manager, Google Secret Manager, or HashiCorp Vault, depending on your deployment.
  • Referenced inside automations as {{secrets.YOUR_SECRET_NAME}} and rotated centrally by infra.
  • Same containment rule: only the capability’s own workspace can resolve them. They never appear in agent context, prompts, or logs.
Use the right layer for the right credential: This matters when picking which provider gets a per-user MCP: you trust the capability workspace’s code, not the agent or the LLM, with the credential.

Limiting what the agent can do — service accounts

Per-user authentication controls the third party side (which user the MCP acts as). To limit the platform side (what the agent itself can do across Prisme.ai workspaces), each agent runs under its own service account with a role.
  • Every agent gets a service account on first call, slug agentfactory_{agent_id}.
  • The role defaults to agent-standard. Org admins can set a different default in Agent Creator’s defaultAgentSARoleSlug config, or the Agent Builder can override per-agent.
  • The service account’s permissions decide which workspaces and actions the agent can reach — so an agent with a “read-only” SA cannot mutate other workspaces’ data, even if its own MCP could.
Two-layer mental model: The two layers compose: an agent with a “read-only” SA can still write to a third-party API if the user’s OAuth token has write scopes — and vice versa.

What happens next

  • Agent Builder (in the Agent Creator product) picks the capability from the catalog and configures the config_schema fields. They never see end-user credentials. → see Agent Capabilities.
  • End User runs the agent through the Store or through a dedicated Chat (Secure Chat). They are prompted to connect their personal account — proactively from the agent home view, or just-in-time when the agent calls the tool. The connect button opens the provider’s flow (or the JSON form), then the agent resumes automatically. → see MCP Connections & OAuth.

Functions

Functions are custom HTTP endpoints that agents can call as tools.

Adding a Function

  1. Click Add Capability
  2. Select type Function
  3. Configure:

Example Configuration

Connect vector stores for knowledge base search.
  1. Click Add Capability
  2. Select type File Search
  3. Configure:
File search integrates with Knowledges vector stores.

Skills

Skills are reusable instruction sets that modify agent behavior.

Adding a Skill

  1. Click Add Capability
  2. Select type Skill
  3. Configure:

Example Skill

Name: summarize Purpose: Summarize long documents into key points Instructions:

Guardrails

Guardrails validate inputs, outputs, or actions to ensure safety and compliance.

Guardrail Types

Adding a Guardrail

  1. Click Add Capability
  2. Select type Guardrail
  3. Configure:

Example Guardrail

Memory Providers

Memory providers store conversation history and long-term context.

Adding Memory

  1. Click Add Capability
  2. Select type Memory
  3. Configure:

Sub-Agents

Sub-agents are other agents that can be invoked as tools, enabling agent composition.

Adding a Sub-Agent

  1. Click Add Capability
  2. Select type Sub-Agent
  3. Configure:

Built-in vs Custom

Capabilities are marked as:
  • Built-in: Provided by the platform, cannot be edited or deleted
  • Custom: Created by your organization, fully editable
Use the toolbar to find capabilities:
  • Search: Filter by name or description
  • Type: Filter by capability type (MCP, Function, etc.)
  • Category: Filter by functional category

Best Practices

Descriptive Names

Use clear, action-oriented names for tools

Secure Authentication

Store credentials in secrets, reference as {{secrets.KEY}}

Document Parameters

Provide detailed descriptions in JSON Schema

Test Before Deploy

Verify capabilities work before enabling for all agents

Next Steps

Model Governance

Control which models agents can use

Observability

Monitor capability usage and errors