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
git clone https://github.com/koki7o/mcp-frameworkThis 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
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 democargo 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
README fetched from the repository 23 hours ago. The original is authoritative.