MCP Core Library

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),这些应在适配器中实现
  • 依赖最小化,主要使用 serdetokio 等基础 crate

下一步

查阅完整文档了解更多领域实体和端口接口的详细信息。