Skip to main content

AION Core runtime security layer for AI agent tool-call control, receipts, scanning, and approvals.

Project description

AION Core

Runtime action control, receipt, and firewall layer for AI agents.

AION Core contains the open-source infrastructure pieces behind AION: Guard, Receipts, Scan, Team Policy, and the MCP Firewall.

AI Agent -> AION Guard / MCP Firewall -> Tool/API/System
                                  |
                                  +-> verified JSONL receipt log

One-Command Demo

From the repo root:

$env:PYTHONPATH='src'
python -m aion_core.demo

After local install or PyPI install:

python -m pip install aion-core
aion-demo

For editable development installs:

python -m pip install -e .

Expected result:

[PASS] scan detected unprotected MCP server
[PASS] guard blocked generic shell action
[PASS] guard allowed generic safe read
[PASS] team policy required approval
[PASS] blocked destructive shell command
[PASS] blocked secret exfiltration
[PASS] allowed safe read
Receipts written to: aion-demo-output/receipts.jsonl
Approvals written to: aion-demo-output/approvals.jsonl
Receipt verification: PASS (6 receipt(s), hash-verified)

This proves the infrastructure wedge:

  • generic Guard actions can be allowed or blocked
  • dangerous shell action is blocked before reaching the tool
  • secret exfiltration attempt is blocked before reaching the tool
  • safe file-read style action is allowed
  • approval-required team actions create approval records
  • every decision gets a receipt

Run Guard

Check a generic action:

$env:PYTHONPATH='src'
python -m aion_core.guard_cli check --policy examples\policies\stage6-default.json --receipt-log receipts\guard.jsonl --action-type shell.command --tool shell --arguments-file examples\actions\destructive_shell_args.json --agent-id demo --owner local

Run The Firewall

Run AION in front of any stdio MCP server:

aion-mcp-firewall --policy examples/policies/stage6-default.json --receipt-log receipts/aion.jsonl -- python path/to/mcp_server.py

For local development without installing:

$env:PYTHONPATH='src'
python -m aion_core.cli --policy examples/policies/stage6-default.json --receipt-log receipts/aion.jsonl -- python path/to/mcp_server.py

Manual Attack Demo

Blocked dangerous command:

$env:PYTHONPATH='src'
Get-Content examples/attacks/destructive_shell.json | python -m aion_core.cli --policy examples/policies/stage6-default.json --receipt-log receipts/demo.jsonl -- python examples/demo_mcp_server.py

Allowed safe call:

$env:PYTHONPATH='src'
Get-Content examples/attacks/safe_read.json | python -m aion_core.cli --policy examples/policies/stage6-default.json --receipt-log receipts/demo.jsonl -- python examples/demo_mcp_server.py

Policy Shape

Policies are JSON so the MVP has zero runtime dependencies.

{
  "default_action": "allow",
  "rules": [
    {
      "id": "block-shell-delete",
      "match": {
        "tool": ["shell", "run_command"],
        "argument_contains": ["rm -rf", "Remove-Item", "del /s"]
      },
      "action": "block",
      "reason": "Destructive shell command patterns require explicit approval."
    }
  ]
}

Supported rule matchers:

  • tool: exact tool names or * wildcards.
  • argument_contains: risky strings searched inside serialized arguments.
  • argument_regex: risky regular expressions searched inside serialized arguments.
  • owner: optional agent owner/team identity.

Supported actions:

  • allow
  • block

Receipt Example

Every MCP tools/call decision is logged as JSONL:

{"decision":"block","tool":"shell","rule_id":"block-shell-delete","reason":"Destructive shell command patterns require explicit approval."}

Development

Run tests:

$env:PYTHONPATH='src'
python -m unittest discover -s tests

Useful docs:

Current Scope

Current core scope:

  • generic Guard action checks
  • MCP config and policy scanning
  • stdio MCP firewall proxy
  • runtime policy checks for tools/call
  • MCP-compatible JSON-RPC block responses
  • hash-verified JSONL audit receipts
  • team approval-required policy decisions
  • AION Cloud control panel summary and pending approval views
  • dependency-free Python core

Next infrastructure layers:

  • signed receipts
  • agent identity
  • cloud receipt vault
  • tool risk registry
  • real Slack/webhook approval delivery
  • compliance exports

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

aion_core-0.8.0.tar.gz (37.6 kB view details)

Uploaded Source

Built Distribution

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

aion_core-0.8.0-py3-none-any.whl (24.6 kB view details)

Uploaded Python 3

File details

Details for the file aion_core-0.8.0.tar.gz.

File metadata

  • Download URL: aion_core-0.8.0.tar.gz
  • Upload date:
  • Size: 37.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for aion_core-0.8.0.tar.gz
Algorithm Hash digest
SHA256 ffc7d78bbf3414f9145d6bf25b7d247d92e9aa7fbf2de02ddb8f6f331aee2d60
MD5 0543a2c3d6396aebb80099aec559586e
BLAKE2b-256 82bee74469e16096025318e432e416e87c9148d0be5fec8d1ae35f5ff3c1cdd8

See more details on using hashes here.

File details

Details for the file aion_core-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: aion_core-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 24.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for aion_core-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7b1409c43de009332a000d8fbe0a095151fb4e28fc5a94c72058aa307cafb5c3
MD5 897582c9b5f0dc690e0e0d963ef4842f
BLAKE2b-256 173ff29b14032780a6903eb27312858df4cabf44658ea9ee9f7945aa672c8cfc

See more details on using hashes here.

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