MCP Catalogs
Home

offeryn

by avahowell·37·Score 38

Rust-based MCP server implementation with tool generation macros and multiple transport options.

developer-toolsai-llmother
2
Forks
1
Open issues
15 mo ago
Last commit
2d ago
Indexed

Overview

Offeryn is a Rust implementation of the Model Context Protocol that allows developers to easily create and expose tools to AI agents. It features a procedural macro for automatic tool generation from Rust code, handles JSON schema creation based on Rust types, and supports both stdio and SSE transport methods. The project demonstrates clean code structure with clear examples showing how to implement and register calculator tools.

Try asking AI

After installing, here are 5 things you can ask your AI assistant:

you:Building custom AI agents with Rust-based tools
you:Creating calculator utilities for LLM assistants
you:Implementing MCP servers with SSE transport for web applications
you:What is the purpose of the #[mcp_tool] macro?
you:Which transport methods are supported?

When to choose this

Choose offeryn when you need to build MCP servers in Rust, especially when you value the performance and safety guarantees Rust provides.

When NOT to choose this

Don't choose offeryn if you need full MCP feature coverage (resources, prompts, WebSocket) or prefer developing in other languages.

Tools this server exposes

4 tools extracted from the README
  • calculator_add(a: i64, b: i64) -> i64

    Add two numbers

  • calculator_subtract(a: i64, b: i64) -> i64

    Subtract two numbers

  • calculator_multiply(a: i64, b: i64) -> i64

    Multiply two numbers

  • calculator_divide(a: i64, b: i64) -> Result<f64, String>

    Divide two numbers

Comparable tools

mcp-rsnexus-rspydantic-mcpmcp-server-template

Installation

Installation

Add to your Cargo.toml:

[dependencies]
offeryn = "0.1.0"

Claude Desktop Configuration

Add to your Claude Desktop configuration:

{
  "mcpServers": {
    "offeryn-calculator": {
      "command": "path/to/your/calculator-binary",
      "args": []
    }
  }
}

For SSE transport, use an MCP client that supports SSE mode and connect to the specified address.

FAQ

What is the purpose of the #[mcp_tool] macro?
The #[mcp_tool] procedural macro automatically generates MCP-compatible tool methods from Rust functions, including JSON schema generation and proper error handling.
Which transport methods are supported?
Currently supports stdio and Server-Sent Events (SSE) transports. WebSocket transport is planned for future releases.

On Hacker News

Recent discussion from the developer community.

Compare offeryn with

GitHub →

Last updated · Auto-generated from public README + GitHub signals.