Skip to content

MCP 开发

概述

MCP(Model Context Protocol)是模型上下文协议,用于管理模型调用时的上下文信息。本章节介绍如何开发自定义 MCP 插件。

开发步骤

1. 创建 Maven 模块

xml
<project>
    <groupId>com.astrsomn</groupId>
    <artifactId>astrsomn-mcp-custom</artifactId>
    <version>0.2.0-SNAPSHOT</version>
    
    <dependencies>
        <dependency>
            <groupId>com.astrsomn</groupId>
            <artifactId>astrsomn-api-runtime</artifactId>
            <version>0.2.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
</project>

2. 实现 McpHandler 接口

java
public class CustomMcpHandler implements McpHandler {
    
    @Override
    public String getName() {
        return "custom-mcp";
    }
    
    @Override
    public void init(Map<String, Object> config) {
        // 初始化配置
    }
    
    @Override
    public ContextState createContext(String sessionId) {
        // 创建新的上下文
        return new ContextState();
    }
    
    @Override
    public ContextState updateContext(String sessionId, Message message) {
        // 更新上下文
        return null;
    }
    
    @Override
    public ContextState getContext(String sessionId) {
        // 获取上下文
        return null;
    }
    
    @Override
    public void deleteContext(String sessionId) {
        // 删除上下文
    }
    
    @Override
    public List<Message> compressHistory(List<Message> history, int maxTokens) {
        // 压缩历史对话
        return history;
    }
}

3. 配置 SPI

创建 META-INF/services/com.astrsomn.api.runtime.mcp.McpHandler 文件:

com.astrsomn.mcp.custom.CustomMcpHandler

4. 创建扩展描述文件

创建 extension-mcp-custom.properties

properties
name=Custom MCP
description=自定义模型上下文协议实现
version=1.0.0
author=Your Name

接口规范

McpHandler

方法说明
getName()返回 MCP 名称
init()初始化配置
createContext()创建新的上下文
updateContext()更新上下文
getContext()获取上下文
deleteContext()删除上下文
compressHistory()压缩历史对话

打包部署

bash
# 打包插件
mvn clean package

# 复制到 plugins 目录
cp target/astrsomn-mcp-custom-0.2.0-SNAPSHOT.jar plugins/

相关文档