Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
cpg_thinkA

Ephemeral reasoning scratchpad. Optionally promote to an OBSERVATION node when the thought captures directly perceived data (tool output, file read, etc). Use promote_to='observation' with obs_type to persist. Predictions and hypotheses go through record_belief, not here.

cpg_queryA

Hybrid FTS + embedding retrieval over the CPG graph. Use for structured lookups (node_type/domain filters) or open-ended recall (natural language questions). A complete 32-hex node id is resolved directly. Returns ranked node dicts.

get_nodesA

Fetch whole nodes by id — the by-id counterpart to cpg_query's ranked search. Returns each node's full payload (e.g. a STRUCTURED_RESULT's complete data), not a truncated match. Use when you hold specific ids — such as the result ids a crew posted to a thread — and need the recorded detail, not a summary. Scoped to your session by default; session_scope='project' reads across the project.

record_factA

Record a grounded FACT. Must cite source_observation_id (from a prior cpg_think promote) or a raw source string. Facts start as 'provisional' and are upgraded by evidence. Use supersedes_id to chain replacements.

record_beliefA

Record an uncertain BELIEF (inference, hypothesis, assumption). Must cite supporting FACT or OBSERVATION ids. When belief_kind='assumption', also creates a linked ASSUMPTION control-plane node.

plan_sessionB

Initialise a planning session. Creates a GOAL node, registers the full task graph, resolves dependency indices, creates IMPACT predictions, and converts constraints to confirmed FACT nodes. Call once per session before executing tasks.

update_taskA

Update a TASK node lifecycle status. Valid transitions: planned→in_progress, in_progress→done/failed/blocked/cancelled/done_pending_verification/verified.

replanB

Formal replanning event. Cancels specified tasks (preserved in history), optionally adds new tasks at an incremented plan_version. Does not delete any nodes or edges.

start_workflowA

Create a first-class fan-out/fan-in WORKFLOW run. Use this when a task will delegate to multiple agents, run phases such as find→verify→synthesize, or needs schema-bound aggregation. After calling it, register each worker with register_worker and store each worker output or verifier verdict with record_structured_result. Do not use for ordinary single-thread task lists; use plan_session/update_task for those.

update_workflowA

Update a WORKFLOW status and optional summary. Use when all workers finish, a workflow blocks, or final aggregation is complete. Terminal states are completed, failed, and cancelled.

register_workerB

Register one delegated worker/agent inside a WORKFLOW. Use one worker per finder/verifier/synthesizer/executor. Include the model, agent_id, prompt, dimension, and role whenever known so later agents can audit who did what.

record_structured_resultB

Store schema-bound worker output in a WORKFLOW. Use for findings, verifier verdicts, coverage notes, and final reports. For a verifier verdict, set result_kind='verdict', status to confirmed/plausible/refuted, and verifies_result_id to the finding/result being checked. The response returns an aggregate count by result kind and status.

import_fable_traceA

Read-only importer for Claude/Fable JSONL traces or workflow result JSON. Use when analyzing prior Fable sessions or preserving an external multi-agent workflow in CPG. It creates a WORKFLOW, WORKER nodes, trace events, and when present aggregate coverage/surviving/refuted STRUCTURED_RESULT nodes. It never executes commands from the trace. By default it filters JSONL imports to claude-fable rows when present and skips Opus/Sonnet rows.

record_executionB

Episodic log of a significant tool call. Creates an EXECUTION node + auto-observation, processes actual_impacts (lazy ARTIFACT creation + staleness), and stores objective_signals for reflect().

reflectC

Core pedagogical loop. Provide deviation_type and optionally objective_signals; server computes ReflectiveSignals and a dual-signal SCORE. Closes the loop on patterns, beliefs, and v1.4 control-plane nodes.

resolve_contradictionB

Resolve a queued FACT conflict from the contradictions table. Applies one of: a_supersedes_b, b_supersedes_a, both_provisional, dismissed.

create_threadB

Open a THREAD node: a named channel other agents in this session can post to. Use one thread per topic or handoff, not one per message.

send_messageA

Post a MESSAGE to a THREAD as the calling agent. Body is capped at 16 KiB; larger findings go through record_structured_result with the message carrying a refs pointer. kind='system' is server-only.

poll_messagesA

Read messages in this session newer than a sequence number. Read-only: it does not advance the caller's cursor — call ack_messages for that.

ack_messagesA

Advance the calling agent's cursor to ack_seq. Forward-only: a lower value is ignored, so a replayed ack cannot re-deliver processed messages.

wait_for_mentionA

Block until a message mentioning the calling agent (or broadcasting to '*') arrives, or the timeout elapses. Returns immediately if one is already pending.

join_sessionA

Bind this connection to an existing active session and declare the calling agent's id. Does not archive anything. Required before any other radio tool when the agent did not itself call plan_session.

claim_taskA

Atomically take the lease on a TASK. Succeeds only if the task is unowned, its lease expired, or the caller already owns it. Pass the lease_generation you observed; a stale one loses the race.

renew_leaseB

Extend the caller's lease on a TASK it already owns. Fails if the lease was reaped or reassigned.

release_taskA

Give up the caller's lease on a TASK. lease_generation is required so a reaped-and-reassigned task cannot be released out from under its new owner.

worker_heartbeatA

Stamp heartbeat_at on the calling agent's WORKER node so the reaper does not treat it as stale.

complete_workerA

Close the calling agent's own WORKER node with a terminal status. Call this when your delegated work is finished — otherwise the reaper stamps the worker 'failed' once it has been silent for the stale window. Identity-bound: you may only complete a worker you own. Never overwrites an existing terminal status, and refuses a live spawn-managed worker.

drop_tipA

Drop a short practical TIP for other agents. TIPs are project-scoped, deduplicated by normalized text, and remain separate from FACT/BELIEF governance.

tipsB

Read ranked practical TIPs. With query, reuses hybrid FTS+embedding retrieval and boosts useful tips; otherwise ranks by votes then recency.

tip_usefulA

Mark a TIP useful as the calling agent. One vote per agent per TIP; repeated calls are idempotent.

create_campaignC

Create a durable coordination campaign and owner membership capability.

invite_memberC

Issue a revocable, role-scoped campaign membership capability.

join_campaignC

Authenticate this connection into a campaign using its membership token.

revoke_memberC

Revoke a campaign membership capability.

publish_signalC

Create or compare-and-swap a typed, versioned coordination signal.

wait_for_signalC

Read a signal only when its version advanced; expired signals are absent.

create_barrierC

Create a quorum barrier for an explicit campaign phase.

arrive_barrierB

Atomically arrive at a barrier using its observed version.

claim_resourceC

Claim a shared or exclusive named resource lease.

renew_resourceC

Renew a resource lease held by the caller.

release_resourceB

Release the caller from a generation-checked resource lease.

subscribe_threadB

Create a durable per-thread subscription cursor.

poll_threadC

Poll a thread from its independent subscription cursor.

ack_threadB

Advance a per-thread subscription cursor without hiding other threads.

ack_deliveryC

Record an idempotent required-delivery acknowledgement.

close_threadA

Close a thread under opener or campaign-coordinator authority.

resolve_messageB

Mark a question or request resolved by a message in the same thread.

protocol_healthC

Report coordination health without returning restricted message bodies.

stale_reportA

List stale running workers, leases whose claimant is gone, a gpu.lock that disagrees with the lease, and watchers of finished jobs. Read-only.

register_watchC

Record which job (worker id, label, or done-file) this agent is waiting on.

close_watchB

Close the caller's own watch registration (idempotent).

moderate_tipC

Approve or reject a quarantined campaign tip with evidence.

commit_resultA

Commit a SHA-256 digest before independent workers reveal results.

reveal_resultC

Reveal data matching a prior commitment and record the result.

post_progressB

Atomically renew a task lease, heartbeat the worker, and post progress.

complete_assignmentA

Atomically record a result, release the task, close the worker, and post a handoff.

spawn_workersA

Fan out to configured local providers. Creates WORKER nodes in spawn_state='requested' and returns immediately — a background supervisor performs the calls and records each answer as a STRUCTURED_RESULT. Requires exactly one of spawn_token or child_token. Caps and unknown providers come back in 'refused', never as an error.

cancel_workerB

Cancel a spawned worker. Idempotent. Authorised for the root spawn_token, or a child_token belonging to one of the target's ancestors.

list_spawnedA

Read-only table of spawned workers in this session: provider, spawn_state, depth, parentage, and uptime. No token required.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
Session StateLive dashboard: tasks by status, health, contradictions, beliefs, patterns.
Session ScoreAggregate dual-signal scores: per-task composites, drift signal, patterns.
Task HorizonAll planned/in-progress tasks in dependency order with predicted impacts.

TDQS

C2.7/5.0

Scored across 59 tools

Disambiguation2/5

Several tool families—poll_messages/poll_thread, ack_messages/ack_thread/ack_delivery, record_structured_result/reveal_result/complete_assignment, renew_lease/renew_resource, complete_worker/complete_assignment—have nuanced but near-overlapping purposes, so an agent can easily select the wrong one. The descriptions are detailed, but at 59 tools the set lacks clear semantic separation.

Naming Consistency2/5

Most tools use snake_case verb_noun, but there are many inconsistent outliers: cpg_think, cpg_query, replan, reflect, tips, protocol_health, stale_report, post_progress, complete_assignment. Verbs are not normalized across categories (create/start/spawn, poll/subscribe, ack/acknowledge, close/complete/cancel), so the pattern is only loosely predictable.

Tool Count1/5

59 tools is an extreme size for an MCP server; even though the platform covers many subdomains, it is far beyond a well-scoped tool set and will overwhelm agents with selection overhead. It would benefit from consolidated compound tools or splitting into focused servers.

Completeness4/5

The server covers the core lifecycle well: planning, task leasing, workflow fan-out/fan-in, worker heartbeats/completion, threaded messaging with cursors/acks, campaign and barrier coordination, facts/beliefs/tips, and result commitments. Minor gaps like explicit campaign dissolution or direct fact/belief deletion are workaroundable through supersede/cancel/query tools.

Maintenance

ActivityMaintained
ResponsivenessNo issues