mcp-execution-core 0.6.4

Core types, traits, and error handling for MCP execution
Documentation

mcp-execution-core

Crates.io docs.rs MSRV License

Foundation types, traits, and error handling for MCP Code Execution.

Installation

[dependencies]
mcp-execution-core = "0.6"

Or with cargo-add:

cargo add mcp-execution-core

[!IMPORTANT] Requires Rust 1.89 or later.

Usage

Server Configuration

use mcp_execution_core::{ServerConfig, ServerId};

let config = ServerConfig::builder()
    .command("docker".to_string())
    .arg("run".to_string())
    .arg("-i".to_string())
    .arg("--rm".to_string())
    .arg("ghcr.io/org/mcp-execution-server".to_string())
    .env("LOG_LEVEL".to_string(), "debug".to_string())
    .build();

let server_id = ServerId::new("github");

Domain Types

use mcp_execution_core::{ServerId, ToolName};

// Type-safe identifiers prevent mixing up strings
let server = ServerId::new("github");
let tool = ToolName::new("create_issue");

assert_eq!(server.as_str(), "github");
assert_eq!(tool.as_str(), "create_issue");

[!TIP] Strong types prevent accidentally passing a ToolName where a ServerId is expected.

Error Handling

use mcp_execution_core::{Error, Result};

fn process_server(id: &str) -> Result<()> {
    if id.is_empty() {
        return Err(Error::InvalidConfiguration {
            message: "Server ID cannot be empty".to_string(),
        });
    }
    Ok(())
}

Command Validation

use mcp_execution_core::{ServerConfig, validate_server_config};

let config = ServerConfig::builder()
    .command("npx".to_string())
    .arg("-y".to_string())
    .arg("@modelcontextprotocol/server-github".to_string())
    .build();

// Validates against command injection
validate_server_config(&config)?;

[!WARNING] Always validate server configurations before execution to prevent command injection attacks.

Features

  • Strong Domain Types: ServerId, ToolName instead of raw strings
  • Error Hierarchy: Contextual errors with thiserror
  • Server Configuration: Type-safe config with security validation
  • Command Validation: Prevents command injection attacks
  • Thread-Safe: All types are Send + Sync
  • Zero Unsafe: No unsafe code blocks

Types Reference

Type Description
ServerId Unique server identifier (newtype over String)
ToolName MCP tool name (newtype over String)
ServerConfig Server configuration with command, args, env
TransportType Transport type enum (Stdio, Http, Sse)
Error Error type with contextual information
Result<T> Alias for std::result::Result<T, Error>

Related Crates

This crate is part of the mcp-execution workspace:

MSRV Policy

Minimum Supported Rust Version: 1.89

MSRV increases are considered minor version bumps.

License

Licensed under either of Apache License 2.0 or MIT license at your option.