模型上下文协议服务

MCP(模型上下文协议)是一个通过TCP通信的服务器和客户端系统,用于发送提示并从本地运行的Llama AI模型流式传输响应。

  • by SatishRanjan
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 SatishRanjan/MCPOverTCP

使用说明

TCP上的MCP(模型上下文协议)

该项目演示了一个模型上下文协议(MCP)服务器和一个简单的TCP客户端,它们使用JSON消息进行通信,以发送来自本地运行的Llama AI模型的提示和流式响应。

MCP服务器和客户端概述

这个项目演示了一个简单的 模型上下文协议(MCP)服务器 它通过TCP套接字与客户端通信。
它与 llama-cli.exe 使用基于LLaMA的模型来处理提示。


MCP服务器

服务器负责:

  1. 在TCP端口上侦听传入的客户端连接。
  2. 接收JSON格式的消息(MCPMessage)来自客户。
  3. 选择正确的型号处理器(例如LLaMA)。
  4. 通过以下方式将提示转发给模型 llama-cli.exe.
  5. 将生成的响应流式传输回客户端。

主要特点

  • 的默认配置 llama-cli.exe 和 模型路径.
  • 用途 MessageProvider.GetMessage() 读取客户端JSON请求。
  • 优雅地处理无效消息。
  • 通过以下方式支持不同模型的可扩展性 IPromptProcessor 界面。

服务器工作流

  1. 开始监听端口 5000.
  2. 接受客户端连接。
  3. 等待a MCPMessage 包含:
    • MessageId
    • Model
    • Prompt
    • 可选的 Context
  4. 如果模型是 "llama",服务器使用 LlamaModelPromptProcessor.
  5. 处理器启动 llama-cli.exe 并将结果流式传输回客户端。

默认配置

  • 模型路径:
    C:\mcp-tutorial\llama.cpp\models\llama-2-7b.Q3_K_L.gguf

  • 可执行路径(llama-cli):
    C:\mcp-tutorial\llama.cpp\build\bin\Release\llama-cli.exe


客户端请求示例

客户端通过TCP发送JSON编码的消息:

{
  "MessageId": 1,
  "Model": "llama",
  "Prompt": "What is the capital of France?",
  "Context": []
}

Windows上llama.cpp的安装说明

按照以下步骤进行构建和测试 llama.cpp 在Windows上使用Visual Studio。


步骤1:安装先决条件

  1. Git

  2. CMake

  3. Visual Studio 2022


步骤2:克隆存储库

打开 PowerShell 或 命令提示符 并运行:

  • 克隆https://github.com/ggerganov/llama.cpp
  • cd llama.cpp

步骤3:构建 llama.cpp

里面 llama.cpp 目录,运行以下命令:

  • mkdir构建
  • cd构建
  • cmake-G“Visual Studio 17 2022”-A x64-DLLAMA_CURL=关闭。.
  • cmake——构建。--config发布

成功构建后,可执行文件将在以下位置生成:

build\bin\Release\llama-cli.exe

步骤4:下载并测试模型

PS C:\myfiles\code\mcp-tutorial\llama.cpp\build\bin\Release> .\llama-cli.exe -m ../../../models/llama-2-7b.Q3_K_L.gguf -p "combination in math with simple example" -n 100