turbomcp-types 3.0.5

Core types for TurboMCP - the foundation of the MCP SDK
Documentation
# turbomcp-types

Core types for the TurboMCP SDK - the foundation of MCP server development.

## Overview

This crate provides all shared types used across the TurboMCP ecosystem:

- **Content types**: `Content`, `TextContent`, `ImageContent`, etc.
- **Result types**: `ToolResult`, `ResourceResult`, `PromptResult`
- **Definition types**: `Tool`, `Resource`, `Prompt`, `ServerInfo`
- **Conversion traits**: `IntoToolResult`, `IntoResourceResult`, `IntoPromptResult`

For error handling, use `turbomcp_core::error::{McpError, McpResult}`.

## Features

- **`std`** (default): Enable standard library support
- **`alloc`**: Allocator support without full std (for no_std + alloc environments)
- **`schema`**: JSON Schema generation for tool input schemas

## Design Principles

1. **Single Source of Truth**: These types are the canonical definitions
2. **Ergonomic by Default**: Common operations are one-liners
3. **MCP 2025-11-25 Compliant**: Full spec support
4. **no_std Compatible**: Works in WASM and embedded environments

## Quick Start

```rust
use turbomcp_types::*;

// Create a tool result
let result = ToolResult::text("Hello, world!");

// Create an error result
let error = ToolResult::error("Something went wrong");

// Create a JSON result with structured content
let json_result = ToolResult::json(&serde_json::json!({"key": "value"})).unwrap();

// Create a resource result
let resource = ResourceResult::text("file:///example.txt", "File contents here");

// Create a prompt result
let prompt = PromptResult::user("Hello!")
    .add_assistant("How can I help?")
    .with_description("A greeting prompt");
```

## no_std Usage

```toml
[dependencies]
turbomcp-types = { version = "3.0", default-features = false, features = ["alloc"] }
```

## License

MIT