Go UTCP

v1.0.0Developer Toolsstable

Official Go implementation of the UTCP

aiai-agentai-agent-toolsdeveloper-toolsgolang
Share:
106
Stars
0
Downloads
0
Weekly
0/5

What is Go UTCP?

Go UTCP is a Model Context Protocol (MCP) server that allows AI assistants like Claude, Cursor, and VS Code to official go implementation of the utcp

Official Go implementation of the UTCP

This server falls under the Developer Tools category on MCPgee, the world's largest MCP server directory with 33,000+ servers.

Features

  • Official Go implementation of the UTCP

Use Cases

UTCP protocol implementation
Go agent development
Protocol standardization
LicenseMPL-2.0
Languagego
Versionv1.0.0
UpdatedMay 2, 2026
Statushealthy
Maintenanceactive

Works with

ClaudeOpenAIwindowsmacoslinux

Installation

Manual Installation

npx go-utcp

Configuration

Configuration Details

Config File

claude_desktop_config.json

Performance

Response Metrics

Response Time< 200ms
ThroughputMedium

Resource Usage

Memory UsageLow
CPU UsageLow

How to Set Up and Use Go UTCP

go-utcp is the official Go implementation of the Universal Tool Calling Protocol (UTCP), an open standard for defining, discovering, and invoking tools across diverse communication protocols including HTTP, WebSockets, gRPC, CLI, Server-Sent Events, GraphQL, TCP, UDP, WebRTC, and MCP. It provides a single unified client API — NewUTCPClient, SearchTools, CallTool, CallToolStream — so Go applications and AI agents can interoperate with any UTCP-compliant tool provider without writing protocol-specific integration code. Developers building multi-agent systems, AI pipelines, or cross-service automation use go-utcp to avoid vendor lock-in and standardise how their agents discover and call external capabilities.

Prerequisites

  • Go 1.21 or later installed (go version to check)
  • A Go module already initialised in your project (go mod init)
  • Internet access to fetch the module from pkg.go.dev
  • Optional: a .env file for environment variable substitution in provider configurations
1

Add go-utcp to your Go module

Run go get to download and add go-utcp as a dependency. The @latest tag fetches the most recent release.

go get github.com/universal-tool-calling-protocol/go-utcp@latest
2

Import the library in your Go code

Import the utcp package and initialise a client from a providers configuration file that lists the tool providers and their transport settings.

import "github.com/universal-tool-calling-protocol/go-utcp"
3

Create a UTCP client

Instantiate a client by passing a providers configuration. The configuration specifies which providers are available and how to reach them (HTTP endpoint, CLI binary, MCP server, etc.).

client, err := utcp.NewUTCPClient("providers.json")
if err != nil {
    log.Fatal(err)
}
4

Discover available tools

Call SearchTools to list all tools exposed by your configured providers. You can filter by name or category.

tools, err := client.SearchTools(ctx, "")
if err != nil {
    log.Fatal(err)
}
5

Invoke a tool

Call CallTool with the tool name and a map of input parameters. For streaming responses, use CallToolStream instead.

result, err := client.CallTool(ctx, "my-tool", map[string]any{
    "param1": "value1",
})

Go UTCP Examples

Client configuration

Example MCP server configuration if running go-utcp as part of an MCP-compatible workflow. Note that go-utcp is primarily a Go library, not an npx-runnable server; use it in your own Go binaries.

{
  "mcpServers": {
    "go-utcp": {
      "command": "npx",
      "args": ["go-utcp"]
    }
  }
}

Prompts to try

If your Go agent built with go-utcp is exposed as an MCP server, AI assistants can use prompts like these.

- "List all tools available from my UTCP providers"
- "Call the weather tool with location set to London"
- "Search for tools related to file management"
- "Stream the output of the log-analysis tool for the last hour"

Troubleshooting Go UTCP

go get fails with 'module not found' or network errors

Ensure GOPATH and GOMODCACHE are writable and that your Go proxy (GOPROXY) can reach pkg.go.dev. If behind a corporate proxy, set GOPROXY=direct or configure your internal Go module proxy.

Provider connection errors when calling SearchTools

Verify your providers.json has the correct endpoint URLs and transport types. For HTTP providers, confirm the server is running and reachable. For CLI providers, confirm the binary is on your PATH.

Environment variable substitution not working in provider config

Place a .env file in the working directory where the UTCP client is initialised. The library reads this file automatically for variable substitution in provider configurations.

Frequently Asked Questions about Go UTCP

What is Go UTCP?

Go UTCP is a Model Context Protocol (MCP) server that official go implementation of the utcp It connects AI assistants to external tools and data sources through a standardized interface.

How do I install Go UTCP?

Follow the installation instructions on the Go UTCP GitHub repository. Clone the repo, install dependencies, and add the server config to your AI client.

Which AI clients work with Go UTCP?

Go UTCP works with all major MCP-compatible AI clients including Claude Desktop, Claude Code, Cursor, VS Code (GitHub Copilot), Windsurf, and Cline.

Is Go UTCP free to use?

Yes, Go UTCP is open source and available under the MPL-2.0 license. You can use it freely in both personal and commercial projects.

Browse More Developer Tools MCP Servers

Explore all developer tools servers available in the MCPgee directory. Each server includes setup guides for Claude, Cursor, and VS Code.

Quick Config Preview

{ "mcpServers": { "go-utcp": { "command": "npx", "args": ["-y", "go-utcp"] } } }

Add this to your claude_desktop_config.json or .cursor/mcp.json

Read the full setup guide →

Ready to use Go UTCP?

Browse our complete directory of 33,000+ MCP servers, read setup guides for your editor, and start building with the Model Context Protocol.

33,000+ ServersFree & Open SourceStep-by-Step Guides