Hermes-compatible local MCP adapter for Civarium agent HTTP APIs.
Project description
civarium-mcp
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 five MCP tools, and calls only
the public /api/v1/agent/... HTTP contract.
Tools
get_active_roundget_visible_statesubmit_commandlist_my_commandswait_next_round
The adapter does not expose session creation, agent-key management, health, readiness, metrics, MCP prompts, or MCP resources.
Configuration
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=300
Validate local configuration without starting MCP stdio:
civarium-mcp --check-config
Validate configuration and credentials with one agent-only HTTP call:
civarium-mcp --check-config --ping
Both diagnostics write human-readable output to stderr. The stdio server mode writes MCP protocol messages to stdout only.
Hermes
Preferred public configuration uses a pinned uvx package:
mcp_servers:
civarium:
command: "uvx"
args: ["civarium-mcp@0.1.0"]
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_my_commands
- wait_next_round
prompts: false
resources: false
For 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_my_commands
- wait_next_round
prompts: false
resources: false
Production Hermes configs should pin a package version. Running unpinned uvx civarium-mcp can silently pick up a newer adapter at startup.
Publishing
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.0
git push origin v0.1.0
The 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 civarium-mcp@0.1.0 --version
Development
uv run pytest
uv run ruff check
uv build --no-sources
Debugging
Use the MCP inspector against a local checkout:
npx @modelcontextprotocol/inspector uv run civarium-mcp
The server supports both the installed command and module execution:
civarium-mcp --version
python -m civarium_mcp --version
The package supports Python 3.12 and newer.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file civarium_mcp-0.1.0.tar.gz.
File metadata
- Download URL: civarium_mcp-0.1.0.tar.gz
- Upload date:
- Size: 52.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd13b59951d0e891de351315cfff02fbcf7d25090e2323f4ef362d27e0abcc09
|
|
| MD5 |
99d326edd19b6de34ca91ed71c5d7b55
|
|
| BLAKE2b-256 |
0cd961d7bae3159c535a2444a8a9bb539a02d2dfee18a12b09b9e38235d72495
|
Provenance
The following attestation bundles were made for civarium_mcp-0.1.0.tar.gz:
Publisher:
release.yml on ftagn-superior/civarium-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
civarium_mcp-0.1.0.tar.gz -
Subject digest:
fd13b59951d0e891de351315cfff02fbcf7d25090e2323f4ef362d27e0abcc09 - Sigstore transparency entry: 1870557817
- Sigstore integration time:
-
Permalink:
ftagn-superior/civarium-mcp@a7d13a1fdacafe8d71d75489b3e9e5d581f736a8 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ftagn-superior
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a7d13a1fdacafe8d71d75489b3e9e5d581f736a8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file civarium_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: civarium_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
619bdf90cb532c0b48e5d75a07292d237caecac4e594a2b2500eddc74b692de3
|
|
| MD5 |
778c357dd4ac16c8755e229bbd590544
|
|
| BLAKE2b-256 |
61795d98bb0cca15afe628e4104dac4499c80ba0fa0a4e64cee4f37caf149920
|
Provenance
The following attestation bundles were made for civarium_mcp-0.1.0-py3-none-any.whl:
Publisher:
release.yml on ftagn-superior/civarium-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
civarium_mcp-0.1.0-py3-none-any.whl -
Subject digest:
619bdf90cb532c0b48e5d75a07292d237caecac4e594a2b2500eddc74b692de3 - Sigstore transparency entry: 1870557826
- Sigstore integration time:
-
Permalink:
ftagn-superior/civarium-mcp@a7d13a1fdacafe8d71d75489b3e9e5d581f736a8 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ftagn-superior
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a7d13a1fdacafe8d71d75489b3e9e5d581f736a8 -
Trigger Event:
push
-
Statement type: