Skip to main content

Runtime intelligence for AI agents — local-first runtime observation via MCP

Project description

Niobe

Runtime intelligence for AI agents — local-first runtime observation via MCP.

Niobe answers: "What is the system doing right now, and did my change make it worse?"

Take snapshot A → deploy → snapshot B → diff. That's it.

Install

pip install niobe

Quick Start

# Register a service
niobe register myapp --port 8080 --log /var/log/myapp.log

# Take a snapshot (captures metrics + ingests logs)
niobe snapshot myapp

# Make a change, then snapshot again
niobe snapshot myapp

# Compare before/after
niobe compare <snapshot-id-1> <snapshot-id-2>

# Search logs
niobe logs --query "connection refused"

# View recent errors
niobe errors --service myapp --since 10

CLI Reference

Command Description
niobe register <name> [--pid N] [--port N] [--log PATH...] Register a service for observation
niobe unregister <name> Remove a service
niobe services List registered services
niobe snapshot [service] Take health snapshot (one or all)
niobe compare <id_a> <id_b> Diff two snapshots
niobe logs [--query Q] [--service S] [--level L] Search log entries
niobe errors [--service S] [--since N] Recent errors
niobe ingest <service> [--follow] Ingest log files

MCP Tools

Niobe exposes 5 tools via Model Context Protocol:

Tool Description
niobe_register Register a service for observation
niobe_snapshot Take health snapshot (one or all services)
niobe_compare Compare two snapshots (before/after diff)
niobe_errors Get recent errors from logs
niobe_logs Full-text search across ingested logs

Claude Code Integration

Add to ~/.claude/.mcp.json:

{
  "mcpServers": {
    "niobe": {
      "command": "niobe-mcp",
      "args": []
    }
  }
}

Then in Claude Code:

  • "Register my web server on port 3000" → niobe_register
  • "How's my app doing?" → niobe_snapshot
  • "Did my last deploy break anything?" → niobe_compare
  • "Show me recent errors" → niobe_errors
  • "Search logs for timeout" → niobe_logs

Log Format Support

Niobe auto-detects log formats:

  • JSON{"level": "error", "message": "...", "timestamp": "..."}
  • CLF — Apache/NGINX common log format (HTTP status mapped to levels)
  • Python2024-01-15 10:30:45,123 - myapp - ERROR - message
  • RAW — Everything else (stored as-is with level=unknown)

Configuration

Optional. Create .niobe/config.toml in your project root:

[store]
db_name = "niobe.db"

[ingestion]
tail_lines = 100
max_line_length = 8192

[snapshot]
error_window_minutes = 5
cpu_sample_interval = 0.5

[mcp]
default_error_since_minutes = 5
default_query_limit = 50

All values can be overridden with NIOBE_* environment variables.

Architecture

  • SQLite + WAL — single-file store, concurrent-read safe
  • FTS5 — full-text search across log messages with porter stemming
  • psutil — process metrics (CPU, memory, threads, connections)
  • Frozen dataclasses — immutable models, no Pydantic dependency
  • Snapshot-based — no background monitoring, entirely on-demand

Part of the EvoIntel MCP Suite

Niobe solves AI Blindness #2: Runtime Behavior — CPU, memory, error rates, and log patterns that no model can observe from code alone.

Part of the EvoIntel MCP Suite by Evolving Intelligence AI: five tools for five blindnesses no model improvement will ever fix.

Tool Blindness Install
Sentinel Project History pip install git-sentinel
Niobe Runtime Behavior pip install niobe
Merovingian Cross-Service Dependencies pip install merovingian
Seraph Code Quality pip install seraph-ai
Anno Web Content npm install -g @evointel/anno

License

MIT

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

niobe-0.2.1.tar.gz (31.7 kB view details)

Uploaded Source

Built Distribution

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

niobe-0.2.1-py3-none-any.whl (28.5 kB view details)

Uploaded Python 3

File details

Details for the file niobe-0.2.1.tar.gz.

File metadata

  • Download URL: niobe-0.2.1.tar.gz
  • Upload date:
  • Size: 31.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for niobe-0.2.1.tar.gz
Algorithm Hash digest
SHA256 d62488cbc95995dbd58bfd18f1ba07abfd371ba5d8eb242d6759b0324c98c721
MD5 808eff8a2dfa2f0ecf0f33ea18fff406
BLAKE2b-256 b51edb7b5b07685f106005619793ddf5322b770ae431bf5090e07c1575cc2bed

See more details on using hashes here.

File details

Details for the file niobe-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: niobe-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 28.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for niobe-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fd9d165d0549228fddfd111d7652f80e8f7b421f2e1398cc50c561335b5129a6
MD5 a7fb320926cdc3b62fddd31d41ab2a58
BLAKE2b-256 3beb56cf5e02a964b6ef54f8c7776dcc2e6fd5c54d306d2de4b9d58d1703d021

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