anet-mcp-server
๐ A high-performance Rust server for Model Control Protocol (MCP) with JSON-RPC 2.0, NATS messaging, async support, and pluggable AI tools.
Documentation
Anet MCP Server
A Rust implementation of the Model Control Protocol (MCP) server that enables communication between clients and AI models via a standardized protocol.
This project provides a scalable and asynchronous framework for building AI services using Rust, Tokio, and NATS. It is designed for developers building AI agent systems, LLM-based tools, or custom JSON-RPC 2.0 service layers. The architecture supports real-time message passing, making it ideal for microservices, AI orchestration, and tool-based model interaction.
Features
- โ JSON-RPC 2.0 compatible API
- ๐ NATS transport layer for message passing
- ๐ ๏ธ Extensible tool system
- ๐ง Support for prompts and resources
- โก Asynchronous request handling with Tokio
Requirements
- Rust 1.70+
- NATS server running locally or accessible via network
Installation
Add the following to your `Cargo.toml`:
[dependencies]
anet_mcp_server = "0.1.0"Getting Started
Running the Example Server
The repository includes a basic example server that demonstrates core functionality:
# Start a NATS server in another terminal or ensure one is already running
# Example:
nats-server
# Run the example server
cargo run --example basic_serverTesting the Server
You can test the server using the included test client:
cargo run --example test_clientThis will send various requests to the server and print the responses.
Usage
Creating a Server
use anet_mcp_server::{
ServerBuilder, ServerCapabilities,
transport::nats::NatsTransport,
};
use serde_json::json;
#[tokio::main]
async fn main() -> anyhow::Result {
let transport = NatsTransport::new("nats://localhost:4222", "mcp.requests").await?;
let server = ServerBuilder::new()
.transport(transport)
.name("my-mcp-server")
.version("0.1.0")
.capabilities(ServerCapabilities {
tools: Some(json!({})),
prompts: Some(json!({})),
resources: Some(json!({})),
notification_options: None,
experimental_capabilities: None,
})
.build()?;
server.run().await
}Implementing a Custom Tool
use anet_mcp_server::{Content, Tool};
use async_trait::async_trait;
use serde_json::{json, Value};
struct MyTool;
#[async_trait]
impl Tool for MyTool {
fn name(&self) -> String {
"my_tool".to_string()
}
fn description(&self) -> String {
"A custom tool".to_string()
}
fn input_schema(&self) -> Value {
json!({
"type": "object",
"properties": {
"input": { "type": "string" }
}
})
}
async fn call(&self, input: Option) -> anyhow::Result> {
Ok(vec![Content::Text {
text: "Tool response".to_string()
}])
}
}API Reference
The server implements the following JSON-RPC methods:
- `initialize` โ Initialize the connection and get server information
- `listTools` โ Get a list of available tools
- `callTool` โ Call a specific tool with arguments
- `listResources` โ Get a list of available resources
- `readResource` โ Read a specific resource
- `listPrompts` โ Get a list of available prompts
- `getPrompt` โ Get a specific prompt with arguments
Architecture
The server follows a modular design:
- server โ Core server logic and request handling
- transport โ Message transport layer (currently NATS)
- tools โ Tool interfaces and implementations
- types โ Common data structures
License
MIT License
Let me know if you want badges, contribution guidelines, or example JSON-RPC payloads added to the README as well.Frequently asked questions
What is anet-mcp-server?
anet-mcp-server is ๐ A high-performance Rust server for Model Control Protocol (MCP) with JSON-RPC 2.0, NATS messaging, async support, and pluggable AI tools.
How do I install anet-mcp-server?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is anet-mcp-server open source?
Yes โ it is hosted on GitHub at https://github.com/marekkucak/anet-mcp-server and has 1 stars.
Related MCP tools
An open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM for the Model Context Protocol. Enhance AI
The official Rust SDK for the Model Context Protocol Trusted by 2500+ developers. Trusted by 2500+ developers. Trusted by 2500+ developers.
๐ Terraform Model Context Protocol (MCP) Tool - An experimental CLI tool that enables AI assistants to manage and operate Terraform environments.
Search infrastructure for AI
๐ OpenHands: Code Less, Make More for the Model Context Protocol. Enhance AI assistants with powerful integrations. Python-based implementation.
The all-in-one Desktop & Docker AI application with built-in RAG, AI agents, No-code agent builder, MCP compatibility, and more.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP