Skip to content

daeinki/rmcporter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mcporter (Rust port)

mcporter-rs is a Rust reimplementation of the mcporter TypeScript CLI. It connects to MCP (Model Context Protocol) servers configured in mcporter.json and lets you list/call their tools from a single binary.

Status

This is a working port — not a drop-in replacement yet. The pieces that are landed:

Area Coverage
Config loading JSONC, snake/camelCase aliases, 7-importer merge (cursor / claude-* / codex / windsurf / opencode / vscode)
Lifecycle / filters Override env vars, default keep-alive set, allowed/blocked tool guards
Error classifier auth / offline / http / stdio-exit / other
MCP client JSON-RPC 2.0, initialize / tools/list / tools/call / resources/list
STDIO transport Tokio child process, line-delimited JSON, escalation termination
HTTP transport Streamable HTTP + text/event-stream decode, bearer-token plumbing
OAuth persistence DirectoryPersistence, VaultPersistence, CompositePersistence
Runtime McpRuntime connection pool with per-server caching
CLI list, call, auth (placeholder), daemon, config, generate-cli, inspect-cli
Daemon (UDS) host + client + status/stop/listServers/listTools/callTool over UDS
Codegen Minimal TS template + embedded __mcporter_metadata for inspect-cli
Packaging per-arch tarballs via GitHub Actions release workflow + npm shim

Deferred (tracked in plan.md): full OAuth callback UX (browser open + axum server), Windows named-pipe IPC, idle-eviction in the daemon, byte-exact TS template parity, and the JS-expression argument parser used by mcporter call.

Build

cargo build --release
./target/release/mcporter --version

Try it locally

cat > /tmp/mcporter.json <<'EOF'
{
  "imports": [],
  "mcpServers": {
    "demo": { "url": "https://demo.example.com" }
  }
}
EOF
./target/release/mcporter --config /tmp/mcporter.json list

See plan.md for the per-milestone roadmap, rust-port.md for the original design document, and docs/migration.md for behavioural differences vs the TypeScript implementation.

License

MIT, matching the upstream package.

About

rust version of mcporter

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors