Cherry Studio搭载自定义MCP服务,精准引导大模型

01 引言

上一节介绍了手搓MCP服务和客户端,并且采用了服务器发送事件(SSE)的形式调用,完成了基本调用。

当然客户端也可以使用Cherry Studio 客户端直接调用,输入服务端的IP和端口即可,按照下图配置,这里不在赘述!

为了更好理解本节内容,如果对上一节手搓MCP服务不清楚的,可以先了解一下,传送门:

https://blog.csdn.net/static_coder/article/details/147732655

02 打包自定义MCP服务

MCP服务既支持Stdio标准流也支持SSE,本次打包以Stdio为例,需要更改MCP服务xml依赖:

<!--  SSE
<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-starter-mcp-server-webmvc</artifactId>
</dependency>
 -->

<!-- 标准Stdio -->
<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-starter-mcp-server</artifactId>
</dependency>

Java 编写的MCP服务打包非常简单,不需要启动,直接打成jar包即可。

Maven命令:

mvn clean compile package -DskipTests

Idea 工具集:

最后打好的Jar包:

03 Cherry Studio配置MCP

3.1 MCP服务配置文件

jar包这里必须指定绝对路径。

"gzh-mcp-server": {
  "command": "java",
  "args": [
    "-Dspring.ai.mcp.server.stdio=true",
    "-Dspring.main.web-application-type=none",
    "-jar",
    "D://boot-mcp-server-0.0.1-SNAPSHOT.jar"
  ]
}

3.2 Cherry Studio配置MCP服务

按照如下图步骤:

3.3 开启MCP服务

配置的MCP服务默认是关闭的,需要手动开启。

3.4 开启会话,选择MCP服务

开启会话的时候,默认是不使用MCP服务的。当有多个MCP服务的时候,每次只能选择一个。

3.5 测试MCP相关话题

测试选择用的模型:qwq:latest | Ollama

从测试的结果来看:

【推荐一个学习公众号】的对话,明确调用了的MCP服务,且返回了MCP服务的信息。与预想的完全一致。

【推荐公众号的好文】这个对话,虽然也调用了MCP服务,但是最终返回的数据大模型经过了加工,返回的假数据。这个可能是大模型被污染导致的

3.6 测试非MCP服务话题

从测试的结果来看,选用了MCP之后,大模型回答的结果都是依据MCP服务的大致内容响应数据。MCP之外的话题,大模型可能无法给出结果。

这里反应了大模型使用的MCP之后,大模型的回答的系统框架就会被限制了。

04 自定义客户端配置MCP

我们能不能使用自定义的客户端模拟Cherry Studio直接配置MCP呢?当然可以。但是需要修改部分参数。

4.1 MCP 服务配置选择性修改

需要禁用启动banner的打印,否则客户端启动会出现json解析异常。

图中①断点进入,就会发现这里解析的内容是MCP服务启动的banner

# Stdio 标准配置
spring.ai.mcp.server.name=gzh-mcp-server
spring.ai.mcp.server.stdio=true
# 禁用banner
spring.main.banner-mode=off

这里的服务端的配置可以通过启动命令指定,所以服务端的配置可以选择性修改。

4.2 MCP客户端配置

spring.ai.mcp.client.name=mcp-client
spring.ai.mcp.client.toolcallback.enabled = true

# 配置server的json文件
spring.ai.mcp.client.stdio.servers-configuration=classpath:mcp-servers-config.json
# 强制文件编码,防止中文乱码
spring.mandatory-file-encoding=UTF-8

4.3 增加json配置文件

配置内容:

{
  "mcpServers": {
    "gzh-mcp-server": {
      "command": "java",
      "args": [
        "-Dspring.main.banner-mode=off",
        "-Dspring.ai.mcp.server.stdio=true",
        "-Dlogging.pattern.console=",
        "-Dfile.encoding=utf-8",
        "-jar",
        "D://boot-mcp-server-0.0.1-SNAPSHOT.jar"
      ]
    }
  }
}

命令详解:

command:MCP服务启动的命令类型,这里配置的java,所以会使用java -jar xx.jar方式启动。

-Dspring.main.banner-mode=off:禁用服务端启动打印banner ,可以不配置(因为4.1服务点已经配置)。

-Dspring.ai.mcp.server.stdio=true :指定Stdio类型,可以不配置(因为4.1服务点已经配置)。

-Dlogging.pattern.console=:控制太不打印日志。因为自定义的客户端启动时会获取控制台的信息。

-Dfile.encoding=utf-8:文件编码,控制太中文乱码。因为控制台不打印日志,所以可以不配置。

-jar:启动命令

D://boot-mcp-server-0.0.1-SNAPSHOT.jar:绝对路径,MCP服务的jar位置。

总之:

配置的目的就是启动MCP服务。这里的命令就是:

java -Dspring.main.banner-mode=off ... -jar D://boot-mcp-server-0.0.1-SNAPSHOT.jar

4.3 客户端启动测试

日志已经显示客户端连接到MCP服务了。测试结果如下:

大模型明显调用了MCP服务。

05 小结

MCP服务可以引导大模型精准的输出信息,就像MCP服务为大模型搭建一个框架一样,大模型在这个框架里利用资深自然语言的能力,整合内容输出内容。每一个大模型调用同一个MCP服务,输出的结果都有所不同。

如果想用自己的MCP服务被大家使用,可以将自己的服务上传到MCP服务的托管平台,如:https://mcp.so/

好了,今天的分享就到这里了。

<think>好的,我现在需要帮助用户将Cherry Studio项目导入到MCP服务器中。首先,我得了解用户的具体需求和现有的资源。根据用户提供的引用内容,用户可能已经下载了Cherry Studio的客户端,并且对MCP有一定的了解,比如MCP的本地文件管理功能,以及如何配置MCP Server。 首先,我需要确认Cherry Studio项目和MCP服务器的兼容性。MCP主要用于修改和反编译Minecraft,而Cherry Studio可能是一个开发环境或项目管理工具。用户可能希望将他们的Minecraft模组或插件项目从Cherry Studio迁移到MCP服务器中进行进一步的开发或部署。 接下来,根据引用[2],MCP提供了文件系统管理功能,用户可以通过AI询问本地文件,这可能意味着MCP服务能够访问和操作特定目录下的文件。因此,用户需要将Cherry Studio项目的文件放置到MCP服务器能够访问的目录中。可能需要检查MCP服务器的配置,确认其工作目录或文件系统的路径,然后将项目文件复制过去。 另外,引用[3]提到需要配置MCP Server,可能涉及到一些环境设置或依赖安装。用户可能需要按照MCP的文档配置好服务,确保所有依赖项已正确安装。同时,引用[4]提到了部署MCP服务时可能遇到的错误,建议用户检查Powershell命令和路径设置,这可能涉及到权限或环境变量的问题。 可能的步骤包括:导出Cherry Studio项目文件,确保文件结构符合MCP的要求;配置MCP服务器以识别这些文件;处理可能的依赖或构建配置;解决部署过程中出现的错误。此外,用户可能需要使用Cherry Studio中的MCP服务搜索功能,如引用[2]所述,来集成特定的服务到项目中。 还需要考虑是否需要构建或编译步骤,将项目转换为MCP可识别的格式,例如生成JAR文件或其他Minecraft模组的标准格式。如果项目包含自定义代码或资源,可能需要调整构建脚本或配置文件,确保与MCP的工作流程兼容。 最后,根据引用[1]和[2],用户可能需要参考Github上的文档或smithery.ai的资源,获取更详细的指导或解决特定问题。同时,部署错误可能需要查看日志,使用引用[4]中的Powershell命令来诊断问题,比如检查uv命令的路径是否正确。 总结步骤应该是:导出项目文件→配置MCP服务器路径→处理依赖和构建配置→部署并解决可能的错误→验证导入是否成功。需要逐步指导用户完成这些操作,并提醒他们查阅相关文档和社区资源以应对具体问题。</think>以下是关于如何将Cherry Studio项目导入MCP服务器的分步指南: ### 一、准备阶段 1. **项目导出** 在Cherry Studio中完成开发后,通过内置的导出功能生成可部署文件(如JAR文件或源码包)。注意检查$build.gradle$文件是否包含MCP所需的依赖项[^2] 2. **MCP环境配置** 确保已按照引用[3]的要求完成MCP Server配置,验证服务状态: ```powershell # 使用引用[4]的方法检查服务路径 Get-Command uv | Select-Object -ExpandProperty Source ``` ### 二、文件迁移 1. **定位目标目录** 将导出的项目文件复制到MCP的$mods/$或$coremods/$目录(取决于模组类型),文件路径可通过询问AI助手实现 2. **依赖管理** 在$gradle.properties$中添加必要的库引用,格式示例: $$ minecraft.version=1.12.2 forge.version=14.23.5.2859 $$ ### 三、服务集成 1. **启动MCP服务** 通过Powershell运行部署命令: ```powershell uvicorn main:app --reload --port 8000 ``` 若出现引用[4]的路径错误,需重新配置环境变量 2. **服务绑定** 在Cherry StudioMCP控制台输入: ``` /service bind filesystem /path/to/mcp_directory ``` ### 四、验证部署 1. **日志检查** 监控$logs/debug.log$文件,确认模组加载状态 2. **功能测试** 在Minecraft客户端验证模组功能是否正常运作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智_永无止境

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值