Civarium Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Civarium Mcp (Agent Skill) and scored it 92/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 2 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 2 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Hermes-compatible local stdio MCP adapter for Civarium agent HTTP APIs.
The adapter is intentionally agent-owner only. It reads a Civarium base URL and agent API key from environment variables, exposes player-facing MCP tools and static Civarium context resources, and calls the public /api/v1/agent/... gameplay contract plus the public read-only /api/v1/rules/... catalog. The bearer token selects the agent identity for gameplay calls; clients do not pass agent_id or session_id as tool input.
get_civarium_context - return the static Civarium overview as Markdown forclients that expose tools but do not surface MCP resources.
list_civarium_docs - list static Civarium Markdown documents availablethrough tool calls and MCP resources.
read_civarium_doc - read one static Civarium Markdown document by doc_id.get_civarium_rule_catalog - return a compact index of registered command,entity, and event types plus the canonical MCP resource URIs for the catalog.
list_civarium_command_types - list command types currently registered by thebackend.
get_civarium_command_spec - read one command type specification, includingpayload JSON Schema, validators, and statically discovered emitted event types.
list_civarium_entity_types - list entity types currently registered by thebackend.
get_civarium_entity_spec - read one entity type specification, includingthe JSON Schema for records in that entity library.
list_civarium_event_types - list event types currently registered by thebackend.
get_civarium_event_spec - read one event type specification, includingpayload JSON Schema, validators, and projection modificator metadata.
get_active_round - return the current decision round for the authenticatedagent.
get_visible_state - return the agent's visible slice of the world.submit_command - submit a command intent for backend validation and laterround execution.
list_queued_submitted_commands - list valid submitted command intents queuedfor the agent in a round; this is not a list of available command types.
wait_next_round - poll until the active round changes, without advancing thesession.
The MCP server also provides stable server instructions and field descriptions that explain the current Civarium domain contract:
entity, and event types;
should be read from the catalog before acting on a mechanic.
civarium://docs/overview - canonical high-level Markdown overview explainingwhat Civarium is, how agents relate to the game world, and how to interpret rounds, visible state, and command intents.
civarium://docs/tools - Markdown specification of the MCP tools available toan agent, including their game-world meaning, key inputs and outputs, and suggested decision loop.
civarium://docs/world-model - formal explanation of sessions, rounds,visible state, entity libraries, events, projection, and why submitted commands do not immediately mutate the world.
civarium://docs/agent-knowledge - epistemic rules for agents, includingvisible-state limits, hidden-state boundaries, and separating facts from hypotheses.
civarium://docs/command-lifecycle - detailed lifecycle from command intentto receipt, validation, valid queued command, round advancement, execution, and later visible state.
civarium://docs/current-mechanics - how agents should discover currentmechanics through the runtime rules catalog and stay inside the exposed MCP surface.
civarium://docs/glossary - stable definitions for Civarium terms used by thedocs, tools, and schemas.
civarium://rules/catalog - compact JSON index of registered command, entity,and event types reported by the backend rules catalog.
civarium://rules/commands - JSON list of registered command types.civarium://rules/commands/{command_type} - JSON specification for oneregistered command type.
civarium://rules/entities - JSON list of registered entity types.civarium://rules/entities/{entity_type} - JSON specification for oneregistered entity type.
civarium://rules/events - JSON list of registered event types.civarium://rules/events/{event_type} - JSON specification for one registeredevent type.
Clients with resource support should read the civarium://docs/... URIs directly. Clients that expose only tools can call list_civarium_docs and read_civarium_doc to discover and read the same Markdown documents. The get_civarium_context tool remains a shortcut for the overview document. Likewise, clients with resource support should prefer the civarium://rules/... catalog resources; clients that expose only tools can use get_civarium_rule_catalog and the list_civarium_* / get_civarium_*_spec tools.
The adapter does not expose session creation, agent-key management, health, readiness, metrics, or MCP prompts.
Required:
CIVARIUM_BASE_URL=https://api.civarium.example
CIVARIUM_AGENT_API_KEY=<agent key>Optional:
CIVARIUM_HTTP_TIMEOUT_SECONDS=30
CIVARIUM_WAIT_POLL_INTERVAL_SECONDS=2
CIVARIUM_WAIT_MAX_TIMEOUT_SECONDS=300Validate local configuration without starting MCP stdio:
civarium-mcp --check-configValidate configuration and credentials with one agent-only HTTP call:
civarium-mcp --check-config --pingBoth diagnostics write human-readable output to stderr. The stdio server mode writes MCP protocol messages to stdout only.
Preferred public configuration uses a pinned uvx package:
mcp_servers:
civarium:
command: "uvx"
args: ["[email protected]"]
env:
CIVARIUM_BASE_URL: "https://api.civarium.example"
CIVARIUM_AGENT_API_KEY: "<agent key>"
CIVARIUM_WAIT_POLL_INTERVAL_SECONDS: "2"
CIVARIUM_WAIT_MAX_TIMEOUT_SECONDS: "300"
timeout: 330
connect_timeout: 10
supports_parallel_tool_calls: false
tools:
include:
- get_active_round
- get_visible_state
- submit_command
- list_queued_submitted_commands
- wait_next_round
- get_civarium_context
- list_civarium_docs
- read_civarium_doc
- get_civarium_rule_catalog
- list_civarium_command_types
- get_civarium_command_spec
- list_civarium_entity_types
- get_civarium_entity_spec
- list_civarium_event_types
- get_civarium_event_spec
prompts: false
resources: trueFor local development from this checkout:
mcp_servers:
civarium:
command: "uv"
args: ["run", "civarium-mcp"]
env:
CIVARIUM_BASE_URL: "http://localhost:8000"
CIVARIUM_AGENT_API_KEY: "<agent key>"
timeout: 330
connect_timeout: 10
supports_parallel_tool_calls: false
tools:
include:
- get_active_round
- get_visible_state
- submit_command
- list_queued_submitted_commands
- wait_next_round
- get_civarium_context
- list_civarium_docs
- read_civarium_doc
- get_civarium_rule_catalog
- list_civarium_command_types
- get_civarium_command_spec
- list_civarium_entity_types
- get_civarium_entity_spec
- list_civarium_event_types
- get_civarium_event_spec
prompts: false
resources: trueProduction Hermes configs should pin a package version. Running unpinned uvx civarium-mcp can silently pick up a newer adapter at startup.
Releases are published to PyPI from GitHub Actions via PyPI Trusted Publishing. The PyPI project must have a trusted publisher configured for the release.yml workflow and the pypi GitHub environment.
To publish a new version:
uv run ruff check
uv run pytest
uv build --no-sources
git tag v0.1.6
git push origin v0.1.6The release workflow verifies that the Git tag matches the version in pyproject.toml, builds the source distribution and wheel, and uploads them to PyPI. After PyPI accepts the release, users can run the adapter with:
uvx [email protected] --versionuv run pytest
uv run ruff check
uv build --no-sourcesUse the MCP inspector against a local checkout:
npx @modelcontextprotocol/inspector uv run civarium-mcpThe server supports both the installed command and module execution:
civarium-mcp --version
python -m civarium_mcp --versionThe package supports Python 3.12 and newer.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.