← Back to Blog

Audit Every AI Tool Call with the OE MCP Action Log

Every time Claude, Cursor, or Windsurf calls a connector through OE MCP — a SQL query, a Slack post, a GitHub file read — it is automatically recorded. No setup. No config changes. Just open oe-mcp-log.json or ask Claude to show you the log, and see exactly what happened, when, and on which connector.

📋
Auto
Always On
Every connector call logged automatically — no config needed
Tool 1
log_list
See recent connector activity, newest first, with optional limit
Tool 2
log_clear
Wipe the log after a debugging session or before a clean run

What You Need


Why This Matters

When your AI assistant queries your production database, writes to a file, or posts a message to Slack, you want a record. Not because you don't trust the AI — but because debugging is faster, compliance is cleaner, and "what did it actually do?" is a question you will ask.

OE MCP answers it automatically.


What Gets Logged

Every connector tool call is appended to oe-mcp-log.json in the same folder as your oe-mcp.json. Each entry records:

✅ Memory tool calls (memory_set, memory_get, etc.) and log tool calls themselves are not recorded — only real connector activity appears in the log.

Example — log entries from a real session

[
  {
    "ts": "2026-08-12T10:15:22.401Z",
    "connector": "my-postgres",
    "tool": "query",
    "input": { "sql": "SELECT * FROM orders WHERE status = 'pending' LIMIT 20" },
    "result": "ok"
  },
  {
    "ts": "2026-08-12T10:16:04.882Z",
    "connector": "my-slack",
    "tool": "post_message",
    "input": { "channel": "#alerts", "text": "20 pending orders found. Review needed." },
    "result": "ok"
  },
  {
    "ts": "2026-08-12T10:17:31.114Z",
    "connector": "my-github",
    "tool": "read_file",
    "input": { "path": "src/orders/processor.ts" },
    "result": "ok"
  }
]

The Two Log Tools

OE MCP exposes two built-in tools for working with the log. They are available in every session — no extra configuration needed.

ToolWhat it does
log_listList recent connector action log entries, newest first. Accepts an optional limit parameter.
log_clearClear all entries from the action log.

Ask Claude in plain language

# You say:
"Show me the action log"
# Claude calls log_list → returns all recent connector activity

"Show me the last 5 actions"
# Claude calls log_list with limit: 5

"Clear the action log"
# Claude calls log_clear → log is wiped

What You Can Do With It

🐛 Debug a failing workflow

Run a task, then ask "Show me the action log." See exactly which connector was called, with what input, and whether it failed — pinpoints the issue in seconds.

🔍 Audit database access

Before reviewing the output of a data analysis task, check the log to confirm which SQL queries actually ran. No surprises about what the AI touched.

🤖 Monitor agent runs

After running a YAML agent via run_agent, the log shows every connector the agent touched — useful when an agent hits multiple systems in sequence.

📋 Compliance records

Keep oe-mcp-log.json as long as needed. Every AI action that touched your data is timestamped and structured for easy parsing.

💡 Tip: The log file grows over time. Use log_clear periodically to keep it lean, or copy and archive oe-mcp-log.json before clearing for long-term audit trails.


Where the Log File Lives

OE MCP creates oe-mcp-log.json automatically next to your config file — no setup required:

/your/config/folder/
├── oe-mcp.json         # your connector config
├── oe-mcp-memory.json  # persistent memory
└── oe-mcp-log.json     # action log — auto-created on first call

It is a plain JSON array you can read, parse, or back up at any time.

OE MCP — Direct Downloads

Setting Up OE MCP

The Action Log is built into every OE MCP session — no extra configuration needed. If you haven't connected OE MCP to your AI assistant yet, it takes under two minutes.

Step 1 — Create your oe-mcp.json config file:

{
  "connectors": [
    {
      "name": "my-postgres",
      "type": "postgresql",
      "host": "localhost",
      "port": 5432,
      "database": "mydb",
      "user": "postgres",
      "password": "secret"
    },
    {
      "name": "my-slack",
      "type": "slack",
      "botToken": "xoxb-xxxxxxxxxxxx"
    }
  ]
}

Step 2 — Add to your AI app's MCP config (Claude Code, Cursor, Windsurf, Codex, Claude Desktop) — macOS / Linux:

{
  "mcpServers": {
    "oe-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@openenthrium/oe-mcp", "--stdio", "/path/to/oe-mcp.json"]
    }
  }
}

Windows — use npx.cmd instead of npx:

{
  "mcpServers": {
    "oe-mcp": {
      "type": "stdio",
      "command": "npx.cmd",
      "args": ["-y", "@openenthrium/oe-mcp", "--stdio", "C:\\path\\to\\oe-mcp.json"]
    }
  }
}

Reload your AI app — every connector call is logged automatically from the first request.

Add memory to your AI assistant in 2 minutes

Install OE MCP and give Claude Code, Cursor, Windsurf, Codex, or Claude Desktop a memory that actually persists.

Get OE MCP →