使用说明

项目简介

本项目是一个演示性质的 MCP (Model Context Protocol) 服务器实现,它包含一个简单的后端服务用于存储知识,以及一个 MCP 服务器用于将这些知识以资源和工具的形式暴露给 MCP 客户端。同时,项目也提供了一个简单的 MCP 客户端示例,展示了如何与该 MCP 服务器进行交互。

主要功能点

  • 资源 (Resources): 通过 'knowledge-for-topic' 资源,客户端可以根据主题检索已存储的知识。
  • 工具 (Tools): 通过 'store-knowledge' 工具,客户端可以存储新的知识条目。
  • 标准 MCP 协议: 服务器和客户端通过 Model Context Protocol 进行通信,保证了交互的标准化。
  • 示例客户端: 提供了一个简单的 AI 聊天机器人客户端,演示了如何使用 MCP 服务器提供的资源和工具。

安装步骤

  1. 安装 Node.js: 确保已安装 Node.js 23.x 或更高版本。
  2. 下载代码: 从 GitHub 仓库 https://github.com/mschwarzmueller/demo-mcp-server-client-implementation 克隆或下载代码。
  3. 安装依赖: 分别进入 'service', 'server', 和 'client' 目录,运行 'npm install' 安装项目依赖。
  4. 配置 OpenAI API Key (客户端): 在 'client' 目录下创建 '.env' 文件,并添加 'OPENAI_API_KEY=<你的OpenAI API Key>'。

服务器配置

MCP 客户端需要配置以下信息才能连接到 MCP 服务器。这些配置通常在客户端的初始化或连接服务器的步骤中使用。对于本示例客户端 ('client/client.ts'),服务器的启动命令已硬编码在代码中,通常情况下,MCP 客户端应允许用户配置这些信息。

{
  "serverName": "Demo MCP Server",
  "command": "node",
  "args": ["../server/dist/server.js"]
}

配置参数说明:

  • 'serverName': 服务器的名称,用于标识和区分不同的 MCP 服务器,这里可以设置为 "Demo MCP Server"。
  • 'command': 启动 MCP 服务器的命令,本示例中服务器使用 Node.js 运行,所以命令为 "node"。
  • 'args': 启动 MCP 服务器命令的参数数组。这里指向了编译后的服务器入口文件 '../server/dist/server.js'。注意:虽然仓库中 'server/server.ts' 是 TypeScript 文件,但根据 README 和 'client/client.ts' 中的 'transport' 配置,客户端尝试连接的是编译后的 'server/dist/server.js'。如果直接运行 'npm run dev',可能需要调整 'args' 为 '["server.ts"]' 或者确保 TypeScript 代码可以被 Node.js 直接执行,如 README 中所述。 实际运行可能需要先在 'server' 目录执行 'npm run build' (如果 'package.json' 中配置了 build 脚本) 生成 'dist/server.js'。但为了简化配置,并考虑到 'npm run dev' 的场景,这里保留 '["../server/dist/server.js"]',并提醒用户注意实际运行情况。

更准确的配置 (假设 'npm run dev' 直接运行 'server/server.ts'):

{
  "serverName": "Demo MCP Server",
  "command": "node",
  "args": ["server.ts"]
}

最佳实践配置 (假设先 'npm run build' 生成 'dist/server.js'):

{
  "serverName": "Demo MCP Server",
  "command": "node",
  "args": ["dist/server.js"]
}

基本使用方法

  1. 启动后端服务: 进入 'service' 目录,运行 'npm run dev' 启动后端数据服务 (监听 8080 端口)。
  2. 启动 MCP 服务器: 进入 'server' 目录,运行 'npm run dev' 启动 MCP 服务器。
  3. 启动 MCP 客户端: 进入 'client' 目录,运行 'npm run dev' 启动 MCP 客户端 (一个简单的 AI 聊天机器人)。
  4. 与客户端交互: 在客户端的命令行界面中输入文本,与 AI 聊天机器人进行对话。你可以尝试使用以下指令:
    • 询问关于某个主题的知识 (客户端会自动调用 'knowledge-for-topic' 资源)。
    • 让机器人记住一些知识 (客户端会自动调用 'store-knowledge' 工具)。

注意: 请确保所有三个进程 ('service', 'server', 'client') 都在运行状态。

信息

分类

AI与计算