Skip to main content

Allem MCP Server

Connect any MCP-capable AI assistant (Claude Code, Claude Desktop, …) to the Allem governance platform. Once connected, the assistant can register agents, run pre-flight authorization checks, log actions to the tamper-evident audit chain, read compliance intelligence, manage authorization scopes, and cryptographically verify the audit chain — which means it can write and test an Allem integration for you.

Transport: stdio (runs locally next to your dev environment).

60-second setup

1. Get the two required settings

  • ALLEM_BASE_URL — where your Allem platform lives. There is no default on purpose — you must say which environment you mean:
    • local development: http://localhost:8000
    • production: your hosted Allem URL
  • ALLEM_API_KEY — an org API key (alm_sk_test_... or alm_sk_live_...), created in the Allem console under Settings → API Keys.

2a. Claude Code

claude mcp add allem \
  --env ALLEM_BASE_URL=http://localhost:8000 \
  --env ALLEM_API_KEY=alm_sk_test_YOUR_KEY \
  -- uv run --directory /path/to/allem-platform/sdk/allem-mcp allem-mcp

2b. Claude Desktop

Add to claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "allem": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/allem-platform/sdk/allem-mcp", "allem-mcp"],
      "env": {
        "ALLEM_BASE_URL": "http://localhost:8000",
        "ALLEM_API_KEY": "alm_sk_test_YOUR_KEY"
      }
    }
  }
}

3. Try it

Ask your assistant: "List my Allem agents and verify the audit chain."

Tools

Tool What it does Writes?
allem_check_action Pre-flight check: may this agent do this action? Denials come back as data (reason, severity, failed checks, any freeze) — never as an error. records the check in the audit chain
allem_log_action Record an action into the hash-chained audit log; returns event hash + chain height. append-only
allem_list_agents List registered agents with status and mode. read-only
allem_get_agent One agent in full: record + Five Threads scores + freeze state. read-only
allem_register_agent Onboard an agent (idempotent; starts in observation mode). creates
allem_get_compliance_status healthy / warning / critical / frozen, with reasons. read-only
allem_get_thread_explanations Plain-language explanation of each thread score. read-only
allem_get_framework_assessment SOC 2 / ISO 27001 / GDPR / EU AI Act control assessments. read-only
allem_get_recommendations Prioritized governance recommendations. read-only
allem_list_events / allem_get_event Browse the audit chain. allem_list_events returns {events, lifecycle_events_excluded, how_many_were_excluded}: the server applies the exclusion and says how many run starts, heartbeats and run ends it left out of the window. The client holds no list of its own — event_type is free text an agent chooses, and a private vocabulary of reserved words here hid events Allem counted everywhere else. read-only
allem_list_verdicts Governance verdicts with filters (thread, severity, since) + pagination. read-only
allem_list_scopes An agent's authorization scope versions, newest first. read-only
allem_create_scope New scope version. Safe by design: versioned and audit-chained, never rewrites history. creates version
allem_activate_scope Switches the agent from observation to live enforcement. Marked destructive — after this, actions can be denied and freezes issued. changes behavior
allem_verify_chain Walk the whole chain and recompute every SHA-256 link — proof nothing was altered. read-only

Agents can be referenced by their friendly external_id (e.g. shuffle-triage-bot) everywhere — no need for database ids.

Deliberately not included

  • Freeze lift / unfreeze — requires a console admin login (session auth), not an API key. Un-freezing an agent is a human decision made in the Allem console; no API key, and therefore no MCP tool, can do it. Don't hunt for it here.
  • Anything else admin-session-gated (user management, API key management).

Development

cd sdk/allem-mcp
uv sync --extra dev
uv run --extra dev python -m pytest          # unit tests (mocked HTTP)
uv run python scripts/e2e_local.py           # end-to-end vs local platform
uv run python scripts/seed_evals.py          # seed data for evals.xml
npx @modelcontextprotocol/inspector uv run allem-mcp   # interactive inspector

Note: the dev venv is pinned to Python 3.11 (.python-version). Python 3.14 skips .pth files that carry the macOS hidden file flag, which breaks uv's editable installs — 3.11 matches the platform's locked stack and avoids this.

Follow-ups (out of scope for v1)

  • Publishing to an MCP registry (with Asif).
  • Website / llms.txt update to advertise the server.
  • Remote streamable-HTTP transport, if demand appears.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

allem_mcp-0.1.0.tar.gz (69.0 kB view details)

Uploaded Source

Built Distribution

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

allem_mcp-0.1.0-py3-none-any.whl (17.0 kB view details)

Uploaded Python 3

File details

Details for the file allem_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: allem_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 69.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for allem_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 981daced7de3df821f2bd13c3c9ebe08a13b3cb7d36c3ba92e0bfaa182eada6e
MD5 f2bff80488084ba633a64f7084db9b87
BLAKE2b-256 0938600203f6bba2cc333d0d2b81c1313c4b615ea7cbea0486b6c013dce55946

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on Allemai/allem-platform

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

File details

Details for the file allem_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: allem_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for allem_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ccf3b2905ac6ccab64a1a96f1bad9645015738b7d81aab4a3b2545a527f6f059
MD5 062032a6fe5b5d4da5d9cfd27551a171
BLAKE2b-256 e7db567ce4d9705a9cf34e8a2cea3894145d04fbe5dcddfde7b1e55c7becc949

See more details on using hashes here.

Provenance

The following attestation bundles were made for allem_mcp-0.1.0-py3-none-any.whl:

Publisher: publish.yml on Allemai/allem-platform

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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page