使用说明
MCP演示
这演示了将自定义行为集成到本地部署的LLM中 使用Kotlin开发的api实现的MCP协议。
MCP api提供了一种服务,为任何事物提供概念上的“Frank分数” 有一个名字。
这增加了对LLM的支持,以回答以下问题:
Whats Bobs Frank score?
说明
需要以下先决条件:
- Java JDK
- 码头工人
- Docker Compose
构建Kotlin MCP服务器:
./gradlew shadowJar
启动LLM后端和MCP服务器:
docker-compose up --detach
启动 mcphost 控制台与llm聊天。请注意,这将触发 下载LLM模型文件可能需要一些时间:
docker-compose run --rm --build mcphost
输入提示:
Whats Bobs frank score?
您应该看到响应:
Bobs' Frank Score is: 1037748098
发生了什么事。
LLM是阿里云发布的qwen3:8b模型,选择了这个LLM 因为它的性能相当不错,并且与MCP配合得很好。LLM 正在使用Ollama“执行”,Ollama是一个开源工具,允许许多不同的 LLM易于运行。
Ollama是通过旋转香草版的Ollama docker容器来运行的。
可以通过对ollama服务进行api调用来下载和运行模型,或者 使用cli。在这种情况下,qwen模型的运行是由 “mcphost”客户,见下文。
模型上下文协议(MCP)是一种api标准,旨在使 将api与LLM集成。
该过程大致如下:
- 启用MCP的LLM客户端(MCP中的主机)配置了以下连接详细信息 MCP服务器和LLM。
- LLM客户端询问MCP服务器,该服务器提供以下内容的文本描述 它支持的端点以及它们所采用的参数。
- LLM客户端启动与LLM的会话,并提供有关可用MCP端点的上下文。
- 用户在LLM客户端中输入提示。
- LLM客户端和LLM协商需要进行哪些MCP呼叫。
- LLM客户端发出MCP请求并向LLM提供响应。
- 响应包含在LLM上下文中,因为它处理提示并返回响应。
在这种情况下,LLM客户端(或MCP主机)应用程序是 mcphost 这是一个用golang编写的LLM控制台应用程序,支持MCP服务器 集成和OLAMA托管的LLM。
MCP服务器使用 MCP Kotlin SDK 它基于Ktor框架构建。服务器配置为使用 服务器端事件(SSE)作为MCP传输。
mcphost客户端和MCP服务器使用docker compose运行,以简化演示设置。
备注
运行Ollama的本地版本
使用docker运行Ollama简化了演示,但在优化方面存在局限性 运行本地环境的LLM。尤其是苹果硅胶 docker中根本不支持使用GPU。
安装Ollama的本机版本将提高LLM提供的速度 它的回应。
您可以按如下方式安装Ollama的本机版本:
- 确保Ollama的停靠版本已关闭:
docker-compose down - 下载、安装并运行Ollama。详情 看见.
- 您需要单独启动MCP服务器:或
./gradlew mcp-server:run./gradlew mcp-server:shadowJar docker-compose run --rm --service-ports mcp-server
运行其他LLM
您可以运行其他LLM,但有一些限制:
- Ollama需要支持LLM。LLM需要支持“工具”的使用。有关这些LLM的列表 看见 这里.
- 受支持的LLM可能还有其他限制 mcphost 客户端,有关详细信息,请参阅 这里.
- LLM的每个版本都有不同的变体,例如qwen3:4b和qwen3:8b。8b 版本具有“更多参数”。这对应于模型响应方面的更好结果 返回。这是以牺牲返回响应和下载的速度为代价的 模型文件的大小。
您可以通过编辑“model”字段,使用不同的模型运行演示 mcphost 配置文件,以及 然后重新启动mcphost控制台: mcphost/.mcphost.yml
