4 releases
Uses new Rust 2024
| new 0.6.6 | Feb 22, 2026 |
|---|---|
| 0.6.5 | Jan 27, 2026 |
| 0.6.4 | Jan 4, 2026 |
| 0.6.3 | Jan 4, 2026 |
#314 in Development tools
Used in 6 crates
(5 directly)
86KB
1.5K
SLoC
mcp-execution-core
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
ToolNamewhere aServerIdis 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,ToolNameinstead 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
unsafecode 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:
mcp-execution-introspector- MCP server analysismcp-execution-codegen- TypeScript code generationmcp-execution-files- Virtual filesystemmcp-execution-skill- SKILL.md generationmcp-execution-server- MCP server implementationmcp-execution-cli- Command-line interface
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.
Dependencies
~7–12MB
~139K SLoC