本地LLM的MCP客户端/服务器演示

一个演示项目,展示如何使用Python和TypeScript创建带有本地LLM的MCP客户端,并配置Python(使用FastAPI)和TypeScript的MCP服务器。

  • by HokageM
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 hokagem/demomcpwlocalllm

使用说明

使用本地LLM演示MCP(客户端/服务器)

这是一个演示项目,展示了如何创建 MCP客户端 带着一个 本地法学硕士 Python和TypeScript。
它还演示了如何配置 MCP服务器 Python(使用FastAPI)和TypeScript。

工作流程如下:

  1. MCP客户端向MCP服务器请求可用工具的列表。
  2. 本地LLM根据给定的提示决定使用哪个工具。
  3. 如果选择了一个工具,客户端将调用服务器上的工具并返回结果。

所有客户组合 {Python, TypeScript} 以及服务器 {Python, TypeScript} 支持。


目录

  1. Ollama模型
  2. MCP客户端
  3. MCP服务器

Ollama模型

对于演示,使用了一个小型、轻便的模型。
我选择了一个模型 以正确的数据类型返回工具参数 而不是作为字符串。

例如:

❌ 某些模型存在问题(例如。, llama3.2):

{"a":"4","b":"8"}

✅ 期望输出:

{"a":4,"b":8}

这避免了必须手动解析和转换参数值。

拉动模型(需要 观看):

ollama pull gwen3:1.7b

MCP客户端

确保MCP服务器在本地运行 http://localhost:8000/mcp.

对于演示,使用的提示是:

What is 45432542 plus 87468748?

python

cd client/py
pip install -r requirements.txt
python mcp_client.py

输出示例:

Available tools: ['root__get', 'add', 'multiply']
Tool: add
Args: {'a': 45432542, 'b': 87468748}
Tool output: {
  "operation": "add",
  "a": 45432542,
  "b": 87468748,
  "result": 132901290
}

TypeScript

cd client/ts
npm install
npm run start

输出示例:

Available tools: [ 'root__get', 'add', 'multiply' ]
Tool: add
Args: {"a":45432542,"b":87468748}
Tool output: {
  "operation": "add",
  "a": 45432542,
  "b": 87468748,
  "result": 132901290
}

MCP服务器

Python和FastAPI

此示例显示了如何将MCP端点添加到现有的FastAPI应用程序中。

cd server/py
pip install -r requirements.txt
python mcp_server.py

TypeScript

cd server/ts
npm install

首先启动数学API(运行于 http://localhost:3333):

npm run api

然后启动MCP服务器:

npm run mcp

在这种TypeScript方法中,需要手动定义工具。
目前,没有直接的等价物 FastAPI-MCP 在TypeScript生态系统中。