Skip to main content

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_round
  • get_visible_state
  • submit_command
  • list_my_commands
  • wait_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

civarium_mcp-0.1.0.tar.gz (52.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

civarium_mcp-0.1.0-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

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

Hashes for civarium_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fd13b59951d0e891de351315cfff02fbcf7d25090e2323f4ef362d27e0abcc09
MD5 99d326edd19b6de34ca91ed71c5d7b55
BLAKE2b-256 0cd961d7bae3159c535a2444a8a9bb539a02d2dfee18a12b09b9e38235d72495

See more details on using hashes here.

Provenance

The following attestation bundles were made for civarium_mcp-0.1.0.tar.gz:

Publisher: release.yml on ftagn-superior/civarium-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for civarium_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 619bdf90cb532c0b48e5d75a07292d237caecac4e594a2b2500eddc74b692de3
MD5 778c357dd4ac16c8755e229bbd590544
BLAKE2b-256 61795d98bb0cca15afe628e4104dac4499c80ba0fa0a4e64cee4f37caf149920

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page