MCP Core Library
包含业务逻辑和MCP服务器端口。
简介
MCP 核心库是一个基于六边形架构的 crate,包含 MCP 服务器的领域业务逻辑和端口定义。
基本组件
- 领域逻辑: 核心业务规则和实体
- 主要端口: 如
Tool
接口,用于定义工具契约 - 被驱动端口: 如
Transport
接口,用于网络通信
快速开始
1. 添加依赖
[dependencies]
mcp_core = "0.1.0"
2. 实现工具
use mcp_core::ports::Tool;
struct MyTool;
#[async_trait]
impl Tool for MyTool {
async fn execute(&self, params: Vec<Value>) -> Result<Value, Error> {
// 工具实现逻辑
Ok(Value::String("执行结果".to_string()))
}
}
3. 注册工具
use mcp_core::domain::ToolRegistry;
let mut registry = ToolRegistry::new();
registry.register("my_tool", Box::new(MyTool));
4. 使用传输接口
use mcp_core::ports::Transport;
// 实现 Transport trait 的适配器
struct MyTransport;
#[async_trait]
impl Transport for MyTransport {
async fn send(&self, message: Message) -> Result<(), Error> {
// 发送消息的实现
Ok(())
}
}
架构说明
- 此库遵循六边形架构,将业务逻辑与实现细节分离
- 不包含特定协议实现(如JSON-RPC),这些应在适配器中实现
- 依赖最小化,主要使用
serde
和tokio
等基础 crate
下一步
查阅完整文档了解更多领域实体和端口接口的详细信息。