Ai-Agents

MCP tools on Cloudflare, Part 1: Stateless

A remote MCP server on Cloudflare Workers that exposes domain lookup tools to any MCP client — Claude Desktop, Claude Code, Cursor, anything that speaks MCP. The tools query RDAP, the modern replacement for WHOIS, for domain availability, IP addresses, and ASN data. The same Worker also serves a REST API for humans and scripts. Same business logic, two interfaces. The MCP endpoint lives at /mcp, the REST API at /check/<domain>.

Read more →

Why Go for AI agents

When we started building agent infrastructure at Aktagon, we evaluated several languages. The decision came down to what matters most in production: reliability, observability, and deployment simplicity.

Concurrency without complexity

Go’s goroutines and channels map naturally to agent workflows. Each agent step runs as a goroutine. Communication between steps uses typed channels. No thread pools to tune, no async/await coloring, no callback hell.

func (a *Agent) Run(ctx context.Context, task Task) (Result, error) {
    results := make(chan StepResult, len(a.steps))
    for _, step := range a.steps {
        go step.Execute(ctx, task, results)
    }
    return a.collect(ctx, results)
}

Single binary deployment

go build produces a single static binary. No runtime, no dependencies, no container layers beyond scratch. This matters when deploying to edge locations or air-gapped healthcare environments.

Read more →