Skip to content

v0.6.0: MCP tools

Choose a tag to compare

@eadwinCode eadwinCode released this 30 Sep 00:47
· 58 commits to main since this release

Agents can use tools from MCP servers, plus fixes found while moving Clevix to the latest kit. Go module github.com/eadwinCode/agentic-kit/packages/go-agentenkit@v0.6.0, npm agentenkit@0.6.0 and use-agentenkit@0.6.0.

No breaking changes.

MCP tools (#21)

  • A small MCP client in both runtimes: agentenkit/adapters/mcp and go-agentenkit/adapters/mcp. It needs no new dependencies.
  • It connects over stdio or streamable HTTP and turns each of the server's tools into an ordinary tool.
  • Options: a name prefix, a list of tools to keep, approval per tool, and a time limit.
  • Tool errors, time limits and a lost server go back to the model as {"error": ...}.
  • See the new MCP docs page.

Fixes (#22)

  • Refused sends no longer grow the thread. A send refused at dispatch (billing, a full queue) is now sent live only, so a user who keeps pressing Send no longer adds a row to the thread each time. A refusal at pickup belongs to a run and is still stored.
  • Admin reads can carry the tenant. rt.Admin.WithState(state) (TS: runtime.admin.withState(state)) lets the reads that go to storage carry the tenant. These are a run's and a thread's spend, and a run's events.
  • use-agentenkit:
    • A refused run() returns reason and retryAfterSeconds, from the body or a Retry-After header.
    • It reads { error: { code, message } } bodies.
    • After a reload, a tool call carries its stored result.
    • isToolError reads JSON text and lists of results.
    • isToolParked and toolCallResults are exported.
  • isToolUse / IsToolUse tell a paid tool service's usage line from a model call.