everruns-mcp 0.17.16

Transport-agnostic MCP (Model Context Protocol) client for connecting tools to Everruns agents
Documentation

everruns-mcp

Transport-agnostic Model Context Protocol (MCP) client for Everruns agents.

Crates.io Documentation License: MIT

everruns-mcp is the shared MCP client used across Everruns hosts. It owns the JSON-RPC client, credential acquisition, result mapping, and tool-call routing so every host wires MCP the same way without duplicating protocol logic — letting agents discover and call tools exposed by any MCP server.

Part of the Everruns ecosystem — the durable agentic harness engine for building unstoppable agents. It plugs MCP tools into the everruns-core ToolRegistry as first-class tools.

Features

  • McpTransport with an always-on HttpTransport (Streamable HTTP, over the platform egress boundary with DNS-pinned SSRF validation).
  • A feature-gated StdioTransport (--features stdio) for local-process MCP servers, for hosts that opt in to a non-HTTP transport.
  • Pluggable McpAuthProvider (web OAuth, static tokens, env, …) so non-web (CLI) hosts can authenticate.
  • McpExecutor (implements everruns_core::McpToolInvoker) so hosts register MCP tools as first-class Tools in the regular ToolRegistry.

Quick Example

use everruns_mcp::{McpClient, McpConnection};

# async fn run() -> anyhow::Result<()> {
let client = McpClient::direct();
let connection = McpConnection::http("docs", "https://example.com/mcp");
let tools = client.discover(&connection).await?;
let result = client
    .call(&connection, &tools[0].name, serde_json::json!({}))
    .await?;
# let _ = result;
# Ok(())
# }

Documentation

License

Licensed under the MIT License.