Typed TypeScript action contracts for AI tools, MCP-style calls, HTTP and CLI with shared Zod validation, errors and retry semantics.

Why it exists
A useful capability is often reimplemented as a backend route, agent tool, MCP handler and CLI script. Those copies gradually disagree on validation, errors, retries and behavior.
How it’s built
ActionMesh is a framework-agnostic TypeScript registry that keeps an operation’s schema, implementation and failure contract in one place while transports stay thin.
- Define the operation once with a typed input contract, optional output contract and one run function.
- Keep machine-readable failure codes and retryability beside the action itself.
- Make MCP-style, HTTP and CLI surfaces thin translation adapters.
- Stay framework-agnostic so the action layer can sit inside an existing application rather than replace it.
Capabilities
Principles
Questions
Is ActionMesh an agent framework?
No. It intentionally does not own the model loop, UI, database or queue. It is a small shared-action layer.
Does it ship the official MCP SDK transport?
The current v0.2.0 includes an MCP-style listTools/callTool adapter. An official @modelcontextprotocol/sdk transport is on the roadmap and is not claimed as shipped yet.
Which adapters exist today?
The core registry is exposed through MCP-style tool, Node HTTP and CLI invocation adapters.