Clarion exposes a workspace-scoped Model Context Protocol (MCP) server so external clients can — without the Clarion web UI — read issues, tasks, monitors, signals, and signal rules; inspect agent-run records and transcripts; run assistant chats; operate the scheduler; author and edit agents and skills; browse and instantiate templates; and manage the workspace’s default agent instructions. There are two ways to connect: OAuth (for IDE/agent clients) and long-lived API tokens (for headless ones).
Where it lives
In Clarion, go to Settings > MCP access. The page has two tabs:- API tokens — mint, list, and revoke long-lived bearer tokens. One row per token; the plaintext is shown exactly once at creation time.
- OAuth setup — copy-paste snippets for Claude Code and Claude Desktop, plus a generic note for other MCP clients. No secrets to manage.
https://<your-clarion-host>/api/mcp (the OAuth setup tab fills in the right URL for your environment).
Choosing a flow
If a client supports OAuth, use it. The browser flow handles re-auth automatically when access expires; long-lived tokens never rotate and stay valid until revoked.
Connecting via OAuth
Claude Code (CLI)
-
Open Settings > MCP access > OAuth setup and copy the
claude mcp addcommand shown there. It already contains the right URL for your workspace. -
Run it:
- Start a session. On the first tool call Claude Code opens the Clarion OAuth grant page — pick the workspace and approve. The token is captured by Claude Code’s local callback.
Claude Desktop
- Open Settings > MCP access > OAuth setup and copy the JSON snippet.
-
Paste it into
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) or the equivalent path on Windows/Linux: - Restart Claude Desktop. The first tool call triggers the same browser grant flow as the CLI.
Other MCP clients
Point any MCP client that speaks the Streamable HTTP transport athttps://<your-clarion-host>/api/mcp. The first unauthenticated request returns a WWW-Authenticate challenge that points at /.well-known/oauth-protected-resource; any spec-compliant client follows the metadata to discover the authorization server and complete the OAuth flow without extra config.
Connecting via a long-lived API token
Use this when the client can’t drive an interactive browser sign-in.- In Settings > MCP access > API tokens, click New token.
-
Give it a label that lets you recognize it later (e.g.
CI nightly drift check,Cron worker). - Click Create token. The dialog swaps to a one-time reveal — copy the plaintext now. Once you close the dialog the secret is gone for good.
-
Paste the token into your MCP client config as a
Bearercredential:
Revoking a token
In the API tokens tab, click the revoke icon on the row, confirm, and the token stops authenticating immediately. Any client still using it gets a 401 on its next request. Revocation is one-way; revoked rows stay in the list with a “Revoked” badge so you can audit who created them and when.Available tools
After connecting, the client sees the following workspace-scoped tools under theclarion server (so each one appears as mcp__clarion__<tool>). Every tool is scoped to the token’s workspace: reads filter by workspace, cross-workspace lookups return an error rather than another tenant’s data, and mutations are attributed to the operator who minted the token.
Read & triage
Issueslist_issues— paginated list, filterable by status / severity / search.status: ["escalated"]narrows to the confirmed problems.get_issue— full issue detail by display number, including its parent issue and related child issuescomplete_remediation_item— toggle a checklist item on an issue’s remediation listretrigger_issue— re-run triage agents for an issue (e.g. after deploying a fix)
list_tasks— paginated list, filter by status / priority / searchget_task— single task by id
list_monitors,get_monitor— the workspace’s ingestion sources, with sanitized per-type config (webhook secrets stripped)list_integrations,get_integration_health— integration sync health (consecutive failures, pause state, auth errors); credentials are never returned
list_signals,get_signal— the raw ingested events that feed issues, before any alert filter fires
list_signal_rules,get_signal_rule— the detections that turn signals into alerts, per monitor or workspace-wide (the matching sequence is returned byget_signal_rule)
get_agent_job— the execution record of a single agent run (status, error, model, token usage, timing, and what it ran for: a triage investigation, an assistant chat, or a scheduled run)get_agent_job_transcript— the poll-friendly, step-by-step transcript of an agent run (assistant turns, tool calls, tool results), oldest first
list_chats— the workspace’s assistant chatsget_chat_transcript— a chat’s messages and tool activitystart_chat— open a new assistant chat with a first user message (optionally booting a specific agent persona); returns an agent-run id to pollsend_chat_message— post a follow-up message into an existing chat
list_schedules,get_schedule— discover what’s running in the workspacelist_schedule_runs,get_schedule_run— poll-friendly run snapshotsrun_schedule_once— fire a schedule out-of-band without changing its cron cadencecancel_schedule_run— cancel a pending or running executioncreate_schedule,update_schedule,set_schedule_enabled,delete_schedule— full CRUD on recurring tasks
Configure the workspace
Skill and instruction content is exchanged as markdown (with inline
<tool type="…" name="…"> pills) and converted to/from Clarion’s rich-text format automatically — you never handle the raw editor JSON.list_agents,get_agent— the workspace’s triage agents and their linked skills/monitorscreate_agent,update_agent— manage an agent’s name, active state, linked skills, and linked existing monitors. Monitor creation stays in the Clarion UI — it involves webhook secrets and registration that aren’t exposed over MCP.
list_skills,get_skill— reusable workspace skills, instructions returned as markdowncreate_skill,update_skill— author or edit a skill from markdown; tools are extracted from the inline<tool>pills, and edits snapshot a new version
list_skill_templates,get_skill_template— browse the curated skill-template catalogcreate_skill_from_template— instantiate a skill template into a managed workspace skill (auto-updates when the template changes; idempotent — returns the existing copy if already instantiated)list_agent_templates,get_agent_template— browse the published agent-template catalogcreate_agent_from_template— scaffold an agent plus its managed skills from a template, created inactive so you can review before it runs
list_workspace_tools— the action tools currently available to agents in this workspace. Only tools whose backing integration (and any required credentials or pauser config) is actually connected are returned — unconfigured ones are omitted — so this reflects what a skill can reference today. Includes the workspace’s custom MCP servers, custom API/CLI toolsets, and Microsoft Sentinel tools.get_workspace_instructions,set_workspace_instructions— read or replace the default agent instructions (markdown) applied to every agent in the workspace
Templates are a shared, platform-curated catalog. These tools only browse it and instantiate copies into your workspace — creating, editing, or deleting templates is admin-only and is not exposed over MCP.
Asset catalog & curated knowledge (Brain)
These tools are only registered when the workspace has the asset-catalog (Brain) feature enabled. If it’s off, none of them appear in the client’s tool list. Writes to curated knowledge require the
assets:write permission.list_assets,get_asset— the resources (compute, datastores, repos, services, DNS records, cloud accounts, …) discovered across connected integrationslist_systems— the auto-correlated, cross-provider groupings of those assetsget_business_context— durable org-level facts (industry, tech stack, regulatory posture, …)
annotate_asset— record durable, attributed notes/attributes on a resourceannotate_workspace— propose a workspace-level business fact (held for human review)record_inferred_asset— persist a triage-inferred narrative asset (attacker IP, involved user, vulnerable package, …) into the catalog
search_knowledge— text-search knowledge names, page bodies, and referenceslist_knowledge_elements,get_knowledge_element— the hand-curated architecture nodes (systems, services, platforms, …) and their linked assets and referenceslist_knowledge_references— curated external references filtered by semantic tag (access_control,runbook,architecture, …)
propose_knowledge_element,update_knowledge_element,remove_knowledge_element— create/enrich, edit, or delete a curated knowledge nodelink_knowledge_asset,unlink_knowledge_asset— connect or disconnect a catalog asset and a knowledge nodeadd_knowledge_fact,update_knowledge_fact,delete_knowledge_fact— weave, supersede, or retract an atomic claim in a knowledge node’s recap
The agent-side MCP server used by Clarion’s own triage agents has a separate (broader) tool surface — agents see integration tools like
mcp__slack__*, mcp__okta__*, mcp__cloudtrail__* etc. that aren’t exposed externally. External MCP clients only see the workspace tools listed above. list_workspace_tools surfaces the names of the available integration tools so a skill you author can reference them by their <tool> type, but those tools still execute agent-side during triage.