AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Mcpc

mcp-adam-eques-mcpc · by adam-eques

Zero-dependency Model Context Protocol (MCP) client for Go — library + CLI, over stdio or HTTP. Paired client for mcpkit.

No reviews yet
0 installs
12 views
0.0% view→install

Install

$ agentstack add mcp-adam-eques-mcpc

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution Used
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-adam-eques-mcpc)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
24d ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Mcpc? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

mcpc

A Model Context Protocol (MCP) client — library and CLI — written in Go with zero third-party dependencies. It connects to any MCP server over stdio (launching it as a child process) or HTTP, and is the paired client for mcpkit.

[](https://github.com/adam-eques/mcpc/actions/workflows/ci.yml)

Why

There is an official MCP Go SDK, and for most production clients it's the right choice. mcpc is a deliberate alternative — a from-scratch, zero-dependency implementation built to make the interesting part legible: the concurrency.

One connection, many in-flight requests, responses arriving out of order, plus server-initiated notifications. mcpc solves this with a single background read loop that demultiplexes responses to their waiting callers by request id — so you can fan out calls from as many goroutines as you like, with per-call timeouts and cancellation that propagates to the server as notifications/cancelled. It's all on the standard library, so the read loop and the cancellation plumbing are here to read, not hidden behind a dependency.

Highlights

  • Full client protocol — MCP 2025-06-18: initialize handshake, tools,

resources, prompts, logging and cancellation.

  • Three transports — a subprocess transport that launches a stdio server,

an HTTP transport for gateways, and an in-memory pipe for tests.

  • Concurrent by design — a demultiplexing read loop, a pending map keyed by

id, and first-class context timeouts.

  • ReliabilityCallToolRetry with exponential backoff, a ProgressTracker

for streaming progress, and a Pool of server processes for CPU-bound work.

  • A real CLIping, tools, describe, call, run and an interactive

repl.

  • A scripted agent runner — execute a JSON plan of tool calls with output

chaining (${1} feeds one step's result into the next).

  • Tested — table-driven unit tests against a mock server over the in-memory

pipe, benchmarks, and an optional live integration test against mcpkit.

Quick start

# Build the CLI
make build

# List a server's tools (launches mcpkit as a child process)
mcpc -server mcpkit tools

# Call a tool
mcpc -server mcpkit call calculate expression="2 ^ 10 + sqrt(81)"

# Run a scripted plan
mcpc -server mcpkit run examples/plan.json

# Interactive session
mcpc -server mcpkit repl

Against a running HTTP gateway instead:

mcpc -http http://localhost:8080/rpc ping

Library

ctx := context.Background()
c, info, err := client.DialCommand(ctx, "mcpkit", nil)
if err != nil {
    log.Fatal(err)
}
defer c.Close()

tools, _ := c.ListTools(ctx)
res, _ := c.CallTool(ctx, "calculate", map[string]string{"expression": "6*7"})
fmt.Println(res.Content[0].(mcp.TextContent).Text) // 42

Project layout

cmd/mcpc/       the command-line client
client/         the reusable client: read loop, retry, progress, pool
agent/          scripted plan parser and runner with output chaining
transport/      subprocess, HTTP and in-memory pipe transports
mcp/            MCP protocol types
jsonrpc/        JSON-RPC 2.0 core
internal/       config, logging, metrics, version
docs/           architecture, protocol, cli, library, transports, agent
examples/       a library example and sample plans

Paired with mcpkit

mcpc is developed alongside the mcpkit server. Build mcpkit and point the live integration test at it:

go build -o /tmp/mcpkit github.com/adam-eques/mcpkit/cmd/mcpkit
MCPKIT_BIN=/tmp/mcpkit go test ./client -run TestLiveServer

Documentation

  • [Architecture](docs/architecture.md)
  • [Protocol support](docs/protocol.md)
  • [Command-line usage](docs/cli.md)
  • [Using mcpc as a library](docs/library.md)
  • [Transports](docs/transports.md)
  • [Scripted plans](docs/agent.md)
  • [Configuration](docs/configuration.md)

License

MIT — see [LICENSE](LICENSE).

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.