LabscoMCP early access ↗
AlexlaGuardiaMCP SERVER · OFFICIAL PROJECT

Vigil

Catch MCP calls that return nothing without erroring, and give agents pre-compiled context that survives between sessions.

by AlexlaGuardia ↗LLM Evaluation & Observability✓ Official

LABSCO SUMMARY

The failure your dashboard reports as a success.

Latency and error charts are standard now; the case this makes is that the expensive MCP failure is the call that returns empty, null or blank content with no exception — which the SDK reports as success and the agent quietly improvises around. Recording that as its own status is a small change with a large effect on debugging, and it needs one line in the server you already run. The awareness half is effectively a second product in the same package: worth it if you run several agents across sessions, ignorable if you do not.

What it is

Two layers in one Python package. MCPWatch wraps any Python MCP server in a single line and records a distinct silent status for calls that return empty, null or blank content with no error raised — alongside per-tool latency percentiles, error rates and isError responses. The awareness layer is a daemon that compiles agent state into hot context, plus a signal bus, session handoff and frame-based tool filtering, exposed as its own MCP server.

What you get

  • An agent booted with pre-compiled context, or a fresh compilation on demand — vigil_boot, vigil_compile
  • Signals emitted and read between agents, with a budget per type: observation 400 characters, handoff 600, summary 800, alert 300 — vigil_signal, vigil_signals, vigil_status
  • Sessions ended with a structured handoff — files touched, decisions, next steps — resumed by the next agent, or read back as a chain of the last several — vigil_handoff, vigil_resume, vigil_chain
  • Agents that have gone quiet, a priority work queue, context frames and a roster of known agents — vigil_stale, vigil_focus, vigil_frames, vigil_agents
  • Monitoring readable over REST: GET /mcp/health, /mcp/tools, /mcp/silent, /mcp/errors, /mcp/latency, /mcp/volume, plus vigil mcp-health on the command line and vigil mcp-health-check as a CI probe
  • Frame-based tool filtering, so an agent working in one context is offered the tools tagged for it rather than everything registered

Requirements

Python. pip install vigil-agent for the core, pip install vigil-agent[mcp] to run it as an MCP server. Storage is SQLite — no Redis, Postgres or Docker. Run vigil init, then vigil serve for stdio or vigil serve --transport sse --port 8300 for remote clients; claude mcp add vigil -- vigil serve wires Claude Code. Monitoring another server is an import and one call: instrument(mcp) keeps stats in process, instrument(mcp, db_path=...) writes them to the same database as your signals. The package is vigil-agent 2.3.0, MIT.

Setup effort

One command — pip install vigil-agent[mcp]