1. Conduid
  2. AI
  3. Framework
MCP server · AI

Framework

Rust MCP framework for building AI agents

66Good

Scored 5 months ago · breakdown

About Framework

Framework is an MCP server published by koki7o in the AI category: rust MCP framework for building AI agents.

The repository has 25 stars and 1 forks, with the last commit 9 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/koki7o/mcp-framework

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Framework

Powered by Claude · Grounded in docs

I know everything about Framework. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 23 hours ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
  • !Dependencies pinnedNo lockfile. Installs can pull different code over time.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

README

MCP Framework - Rust Implementation

Production-ready Rust framework for building AI agents with built-in MCP support, multi-LLM integration, and web-based inspector. Deploy memory-safe, high-performance agent systems.



What is mcp-framework?

A Rust framework for building AI agents that can use any MCP server. Designed for production deployments where performance, safety, and reliability matter.

Core Components:

  • Agent Framework: Multi-LLM support (Claude, OpenAI) with async-first design
  • MCP Client: Multi-server orchestration with HTTP and stdio transports
  • MCP Server: Build custom tools and expose them via MCP protocol
  • Web Inspector: Debug and test MCP servers with real-time UI

Features

✅ Available Now

Feature Description
MCP Server Build and deploy custom MCP servers with tool registration
MCP Client Connect to multiple MCP servers simultaneously (HTTP, stdio)
AI Agent Production-ready agents with conversation management
Web Inspector Debug UI with tool testing and request/response viewer
Claude Integration Full Anthropic API support with streaming
OpenAI Integration GPT-4, o1, o3 models with function calling
Browser Automation Playwright MCP integration for web tasks
Session Management Persistent conversations with state tracking
Async/Await Zero-cost async runtime built on Tokio

🚧 Roadmap

Feature Priority Status
Multi-Provider LLM High Planned (Gemini, Groq, DeepSeek, Mistral)
Vector Databases High Planned (Qdrant, Chroma, Pinecone)
Agent Orchestration High Planned (Graph-based workflows, handoffs)
Streaming Support High Planned (Token-by-token, tool streaming)
Resources Medium Planned (MCP resources protocol)
Prompts Medium Planned (MCP prompts protocol)
Authentication Medium Planned (OAuth, API keys)
Memory System Medium Planned (RAG, semantic retrieval)
Middleware Low Planned (Request/response hooks)

Example Tools

• echo           - String echo utility
• calculator     - Math: add, subtract, multiply, divide, power, sqrt
• get_weather    - Weather lookup for cities worldwide
• search_text    - Find pattern occurrences in text
• string_length  - Get character count
• text_reverse   - Reverse text strings
• json_parser    - Validate and format JSON
• http_status    - Look up HTTP status codes

Quick Start

Prerequisites

# Requires Rust 1.70+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

1. Clone & Setup

git clone https://github.com/koki7o/mcp-framework
cd mcp-framework

# Create .env for API keys (optional but recommended)
cp .env.example .env
# Edit .env and add ANTHROPIC_API_KEY or OPENAI_API_KEY

2. Run Examples

Minimal Server (1 tool):

cargo run

Server with 8 Tools + Inspector UI:

cargo run --example server_with_tools
# Visit: http://localhost:8123

AI Agent with Claude:

# Requires ANTHROPIC_API_KEY in .env
cargo run --example anthropic_agent_demo_with_tools --release

AI Agent with OpenAI:

# Requires OPENAI_API_KEY in .env
cargo run --example openai_agent_demo_with_tools --release

Browser Automation (OpenAI):

# Requires OPENAI_API_KEY in .env
# Install: npm install -g @playwright/mcp@latest && npx playwright install firefox
cargo run --example browser_agent_openai

Browser Automation (Claude):

# Requires ANTHROPIC_API_KEY in .env
# Install: npm install -g @playwright/mcp@latest && npx playwright install firefox
cargo run --example browser_agent_anthropic

Why mcp-framework?

🚀 Performance

  • Zero-cost abstractions: Rust's compile-time optimizations mean no runtime overhead
  • Async-first: Built on Tokio for high-concurrency workloads
  • Memory efficient: No garbage collection pauses, predictable performance

🛡️ Safety

  • Memory safety: Rust's borrow checker prevents common bugs at compile time
  • Type safety: Catch errors before deployment with strong typing
  • Fearless concurrency: No data races, no undefined behavior

🔌 MCP-Native

  • First-class MCP: Built around Model Context Protocol from day one
  • Multi-server: Connect to multiple MCP servers in a single agent
  • Full protocol: Tools, resources (planned), prompts (planned)

🛠️ Developer Experience

  • Web Inspector: Test tools visually without writing code
  • Rich examples: 7+ examples covering common use cases
  • Production-ready: Used in real deployments, not a toy project

📦 Ecosystem

  • Official SDK: Uses rmcp - the official Rust MCP implementation
  • Battle-tested: Built on proven libraries (Tokio, Axum, Serde)
  • Extensible: Easy to add custom LLM providers and tools

Usage

Build an AI Agent

use mcp_framework::prelude::*;
use std::sync::Arc;

#[tokio::main]
async fn main() -> Result<()> {
    mcp_framework::load_env();

    let client = McpClient::new("http://localhost:3000");
    let llm = AnthropicAdapter::from_env("claude-sonnet-4-5-20250929".to_string())?;
    let mut agent = Agent::new(client, Arc::new(llm), AgentConfig::default());

    let response = agent.run("What is 15 + 27?").await?;
    println!("{}", response);

    Ok(())
}

Run Examples:

  • cargo run --example anthropic_agent_demo_with_tools --release - Claude demo
  • cargo run --example openai_agent_demo_with_tools --release - OpenAI demo

Create an MCP Server

use mcp_framework::prelude::*;
use mcp_framework::server::{McpServer, ServerConfig, ToolHandler};
use std::sync::Arc;

struct MyToolHandler;

#[async_trait::async_trait]
impl ToolHandler for MyToolHandler {
    async fn execute(&self, name: &str, arguments: serde_json::Value)
        -> Result<Vec<ResultContent>> {
        match name {
            "greet" => Ok(vec![ResultContent::Text {
                text: format!("Hello, {}!", arguments.get("name").and_then(|v| v.as_str()).unwrap_or("stranger"))
            }]),
            _ => Err(Error::ToolNotFound(name.to_string())),
        }
    }
}

#[tokio::main]
async fn main() -> Result<()> {
    let config = ServerConfig {
        name: "My Server".to_string(),
        version: "1.0.0".to_string(),
        capabilities: ServerCapabilities {
            tools: Some(ToolsCapability { list_changed: Some(false) }),
            resources: None,  // Not implemented yet
            prompts: None,    // Not implemented yet
        },
    };

    let server = McpServer::new(config, Arc::new(MyToolHandler));

    server.register_tool(Tool {
        name: "greet".to_string(),
        description: Some("Greet someone".to_string()),
        input_schema: None,
    });

    Ok(())
}

Examples:

  • cargo run - Minimal server (1 tool)
  • cargo run --example server_with_tools - Full example (8 tools + Inspector)

Use MCP Client

use mcp_framework::prelude::*;
use serde_json::json;

#[tokio::main]
async fn main() -> Result<()> {
    let client = McpClient::new("http://localhost:3000");

    // List all tools
    let tools = client.list_tools().await?;
    println!("Available tools: {:?}", tools);

    // Call a tool
    let result = client.call_tool("echo", json!({
        "message": "Hello, MCP!"
    })).await?;
    println!("Result: {:?}", result);

    Ok(())
}

Example:

  • cargo run --example client_usage - Full client usage example

Debug with Inspector

Test and debug MCP servers with a web UI.

cargo run --example server_with_tools
# Open browser to: http://localhost:8123

Features:

  • View registered tools
  • Test tools with auto-generated forms
  • Request/response history
  • Real-time output inspection

What Can You Build?

🤖 AI Agents

  • Research assistants: Agents that search, analyze, and summarize information
  • Coding assistants: Agents that read codebases, write code, run tests
  • Data analysts: Agents that query databases and generate insights
  • Customer support: Agents with knowledge base integration

🌐 Browser Automation

  • Web scraping: Extract data from websites with AI-guided navigation
  • E2E testing: Generate and run browser tests automatically
  • Form filling: Automate repetitive web tasks
  • Monitoring: Check website status and content changes

🔧 Custom Tools

  • Business logic: Wrap internal APIs as MCP tools
  • Database operations: SQL queries, CRUD operations
  • File systems: Search, read, write files
  • External APIs: Weather, maps, payment gateways

🎯 Multi-Agent Systems

  • Specialist teams: Different agents for different tasks (research, code, review)
  • Workflows: Chain agents together for complex pipelines
  • Collaboration: Agents that communicate and coordinate

Testing

# Run all tests
cargo test

# Run with output
cargo test -- --nocapture

# Run specific test
cargo test test_name

# Run with release optimizations
cargo test --release

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.


License

MIT License - see LICENSE file for details


Made with ❤️ for the MCP community

Report Issues • Discussions

README fetched from the repository 23 hours ago. The original is authoritative.

Questions

About Framework

How do I install Framework?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Framework safe to use with an AI agent?

Its trust score is 66 out of 100 (good). It passes 3 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Framework still maintained?

The last commit was 9 months ago and 1 open issues. That's long enough that you should check whether the maintainer is responding to issues before depending on it.