conduit

module
v0.0.0-...-dd2decd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2026 License: MIT

README

Conduit

Go

Conduit is a reusable Go module providing MCP (Model Context Protocol) substrate: a typed configuration model, a named connection pool, and a .mcp.json bridge writer. It exists so that MCP plumbing is portable across orchestrators -- Anthem today, Anthropic managed agents tomorrow, other runtimes later.

Built on the official Go SDK for MCP.

Quick Start

go get github.com/rauriemo/conduit
import (
    "github.com/rauriemo/conduit/pkg/mcpconfig"
    "github.com/rauriemo/conduit/pkg/mcpclient"
    "github.com/rauriemo/conduit/pkg/mcpbridge"
)

Packages

pkg/mcpconfig -- Configuration Model

Canonical MCP server reference with explicit transport discriminator.

ref := mcpconfig.MCPServerRef{
    Type:    mcpconfig.TransportStdio,
    Command: "node",
    Args:    []string{"path/to/server.js"},
}

if err := ref.Validate(); err != nil {
    log.Fatal(err)
}

Supports two transports per the MCP spec:

  • stdio -- spawn a subprocess (Command, Args, Env)
  • http -- Streamable HTTP (URL, AuthTokenEnv, Headers)
pkg/mcpclient -- Connection Pool

Named connection pool wrapping the official go-sdk. Manages concurrent MCP server sessions.

pool := mcpclient.NewPool()
defer pool.Close()

err := pool.Connect(ctx, "unity-mcp", &ref)

tools, err := pool.ListTools(ctx, "unity-mcp")

result, err := pool.CallTool(ctx, "unity-mcp", "SomeToolName", map[string]any{
    "name": "Player",
    "tag":  "Player",
})

Thread-safe. Transport selected automatically from MCPServerRef.Type. Bearer auth resolved from environment variables at connect time.

pkg/mcpbridge -- .mcp.json Bridge Writer

Writes .mcp.json for Claude Code auto-discovery. Anthem (v1) uses this bridge for guest agents and relies on Claude Code to run MCP tools; the Pool is for programmatic/brokered use when an orchestrator calls tools in-process.

err := mcpbridge.WriteMCPConfig("/path/to/workspace", servers)

Architecture

┌─────────────────────────────────────────────┐
│              Your Orchestrator              │
│         (Anthem, managed agents, …)         │
└──────┬──────────────┬──────────────┬────────┘
       │              │              │
       v              v              v
  mcpconfig      mcpclient      mcpbridge
  (types +       (pool +        (.mcp.json
   validate)      go-sdk)        writer)
       │              │
       │              v
       │     ┌────────────────┐
       └────>│  go-sdk (MCP)  │
             └────────┬───────┘
                      │
              ┌───────┴───────┐
              v               v
         stdio server    HTTP server
         (Unity relay,   (future)
          other CLIs)

Conduit owns the boxes in the middle row. Everything above (orchestration, policy, dispatch) and below (actual MCP servers) belongs to other repos.

What Conduit Does NOT Own

  • Orchestration, dispatch, or execution loops
  • HTTP/API tool brokering (simple REST calls)
  • Shared feature context or artifact management
  • Guest agent definitions or policy enforcement
  • Allowlist logic

These are Anthem's concerns. Conduit is the substrate, not the platform.

Module Layout

conduit/
  go.mod
  pkg/
    mcpconfig/
      config.go          # MCPServerRef, Transport, Validate
      config_test.go
    mcpclient/
      pool.go            # Connection pool wrapping go-sdk
      pool_test.go
    mcpbridge/
      bridge.go          # .mcp.json writer
      bridge_test.go
  CLAUDE.md
  README.md

Development

go build ./...           # Build
go test ./... -race      # Test with race detector
go vet ./...             # Vet

License

MIT

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL