Straight to the source.
Call tools over the protocols they already use. HTTP, WebSocket, gRPC, or a local command — go directly from your app to your tool.
Explore the transports ↗Your tools already speak a language.
Now your Lua app speaks it, too.
Discover, search, and call tools over their native protocols.
One elegant client. A lot less glue code.
luarocks make lua-utcp-1.8-1.rockspecrequire("utcp")Keep your APIs. Keep your infrastructure.
Let a little Lua make the connection.
Call tools over the protocols they already use. HTTP, WebSocket, gRPC, or a local command — go directly from your app to your tool.
Explore the transports ↗Load a UTCP manual from a provider or register one directly. Find the right tool with local search, then call it through one consistent Lua interface.
Meet tool discovery ↗Protocol allowlists are checked at registration and execution. Add a client-side Guard to allow, deny, or review tool calls before dispatch.
See how it’s secured ↗From a simple REST endpoint to a real-time stream.
Pick a protocol. The Lua stays familiar.
One client, twelve transports. One canonical registry for your applications and AI agents.The full picture ↗
Three steps to your first tool call.
A familiar API. A native connection.
Clone the repository, then build the rockspec.
Your client discovers the available tools.
Get a result. Get on with building.
luarocks make lua-utcp-1.8-1.rockspecUse your own UTCP manual URL and tool name.
Lua 5.3 or 5.4. WebRTC needs a host-specific DataChannel adapter.
Build something useful. Share what you learn.
Help shape the way Lua connects to tools.