mcp_toolkit

Types

Server builder pipeline. Combine helpers such as add_tool and build to produce an MCP server implementation.

pub type Builder =
  server.Builder

Handle incoming MCP JSON-RPC messages once you’ve built a server.

pub type Server =
  server.Server

Transport configuration for stdio plus helpers for building runtime loops.

pub type Transport =
  interface.Transport

Values

pub fn add_prompt(
  builder: server.Builder,
  prompt: protocol.Prompt,
  handler: fn(protocol.GetPromptRequest) -> Result(
    protocol.GetPromptResult,
    String,
  ),
) -> server.Builder
pub fn add_resource(
  builder: server.Builder,
  resource: protocol.Resource,
  handler: fn(protocol.ReadResourceRequest) -> Result(
    protocol.ReadResourceResult,
    String,
  ),
) -> server.Builder
pub fn add_resource_template(
  builder: server.Builder,
  template: protocol.ResourceTemplate,
  handler: fn(protocol.ReadResourceRequest) -> Result(
    protocol.ReadResourceResult,
    String,
  ),
) -> server.Builder
pub fn add_tool(
  builder: server.Builder,
  tool: protocol.Tool,
  arguments_decoder: decode.Decoder(arguments),
  handler: fn(protocol.CallToolRequest(arguments)) -> Result(
    protocol.CallToolResult,
    String,
  ),
) -> server.Builder
pub fn build(builder: server.Builder) -> server.Server

Finalise the builder into a server that is ready to receive messages.

pub fn create_transport(
  transport_config: interface.Transport,
) -> Result(interface.TransportInterface, String)

Helper to create a transport implementation for the provided configuration.

pub fn description(
  builder: server.Builder,
  description: String,
) -> server.Builder
pub fn enable_logging(builder: server.Builder) -> server.Builder
pub fn handle_message(
  server: server.Server,
  message: String,
) -> Result(option.Option(json.Json), json.Json)

Decode and execute a JSON-RPC MCP message. Returns a response JSON payload when needed.

pub fn instructions(
  builder: server.Builder,
  instructions: String,
) -> server.Builder
pub fn new(
  name name: String,
  version version: String,
) -> server.Builder

Construct a new server builder with the given name and version.

pub fn page_limit(
  builder: server.Builder,
  page_limit: Int,
) -> server.Builder
pub fn prompt_capabilities(
  builder: server.Builder,
  list_changed: Bool,
) -> server.Builder
pub fn resource_capabilities(
  builder: server.Builder,
  subscribe: Bool,
  list_changed: Bool,
) -> server.Builder
pub fn tool_capabilities(
  builder: server.Builder,
  list_changed: Bool,
) -> server.Builder
Search Document