While working on MCP-based systems, one limitation keeps showing up: MCP solves how Claude uses tools, but not when tools should be used.
The current model is simple: user issues a request → Claude calls MCP tools → returns a result.
But in real engineering environments, many important events already happen before any request is made — system failures, CI / deployment state changes, log error signals, external data updates, and service health changes. These events don't trigger MCP tool execution unless a user explicitly notices and asks for it.
I've been experimenting with a small abstraction layer called World2Agent (W2A). It introduces sensors that listen to external systems (logs / APIs / GitHub / runtime signals, etc.), converting changes into signals, and letting those signals decide whether to trigger tool calls or agent behavior. We ship with a set of ready-to-use sensors, and the SDK makes it straightforward to build your own and plug in any system you care about.
The fastest way to feel W2A is with Claude Code.
- In an active session, install the `world2agent` plugin:
/plugin marketplace add machinepulse-ai/world2agent-plugins
/plugin install world2agent@world2agent-plugins
/reload-plugins
Add a sensor — for example, Hacker News:
/world2agent:sensor-add @world2agent/sensor-hackernews
Restart Claude Code with the plugin channel loaded so sensor signals flow into your session:
bash claude --dangerously-load-development-channels plugin:world2agent@world2agent-plugins
This is still early work, and we’re excited to see what sensors you build and the feedback you share from using them.
👉 GitHub: github.com/machinepulse-ai/world2agent