Skip to main content

Crate everruns_mcp

Crate everruns_mcp 

Source
Expand description

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

everruns-mcp is part of the Everruns ecosystem. It is the shared MCP client used across Everruns hosts (runtime, worker, and server), so every host wires MCP the same way without duplicating protocol logic.

The crate owns the JSON-RPC client (HTTP, and optional stdio behind the stdio feature), credential acquisition (McpAuthProvider), result mapping, and tool execution (McpExecutor, which implements everruns_core::McpToolInvoker so MCP tools register as regular Tools). Wire types and tool-name helpers live in everruns-core and are reused as-is.

§Example

use everruns_mcp::{McpClient, McpConnection};

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?;

Re-exports§

pub use auth::McpAuthProvider;
pub use auth::McpAuthRequest;
pub use auth::McpCredential;
pub use auth::NoAuthProvider;
pub use auth::StaticAuthProvider;
pub use client::McpClient;
pub use executor::McpConnectionResolver;
pub use executor::McpExecutor;
pub use executor::StaticConnectionResolver;
pub use http::HttpTransport;
pub use http::http_call_tool;
pub use http::http_list_tools;
pub use http::http_send_rpc;
pub use protocol::Negotiated;
pub use result::extract_json_from_response;
pub use result::map_tool_call_result;
pub use transport::McpConnection;
pub use transport::McpEndpoint;
pub use transport::McpTransport;

Modules§

auth
Pluggable MCP credential acquisition (specs/runtime-mcp.md D3).
client
High-level MCP client: resolves credentials via a McpAuthProvider, selects the transport for a connection’s endpoint, and maps results.
executor
MCP tool execution.
http
HTTP (Streamable-HTTP) MCP transport with multi-era protocol support.
protocol
Multi-era MCP protocol support (specs/mcp-servers.md “Multi-era protocol support”).
result
MCP tools/call result → internal ToolResult mapping.
transport
Transport abstraction over MCP connections (specs/runtime-mcp.md D2).