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.
go get github.com/rauriemo/conduitimport (
"github.com/rauriemo/conduit/pkg/mcpconfig"
"github.com/rauriemo/conduit/pkg/mcpclient"
"github.com/rauriemo/conduit/pkg/mcpbridge"
)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)
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.
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)┌─────────────────────────────────────────────┐
│ 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.
- 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.
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
go build ./... # Build
go test ./... -race # Test with race detector
go vet ./... # Vet- Anthem -- agent orchestrator, primary Conduit consumer
- Prism -- visual workstation for agent interaction
- modelcontextprotocol/go-sdk -- official Go SDK for MCP