关于 Demo MCP Basic
Demo MCP Basic 是一个 TypeScript 示例,展示如何通过 AI SDK 将 MCP 服务端与使用 Google AI 模型的客户端配合使用。它演示服务端提供的计算工具如何在生成过程中被发现和调用。
主要功能
- 01加法和减法计算工具
- 02MCP 服务端与客户端示例
- 03通过 AI SDK 使用 Google AI 模型
- 04生成期间发现并调用工具
适用场景
- 01了解基本的 MCP 客户端与服务端交互
- 02让 Google AI 模型调用计算工具
- 03通过 HTTP SSE 测试 MCP 服务
MCP 相关
服务端向 MCP 客户端提供简单的计算工具。示例客户端通过 HTTP SSE 连接并获取工具,再让 Google AI 模型在文本生成期间使用这些工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Demo MCP Basic
本项目演示了使用 Model Context Protocol (MCP) 进行基本的客户端-服务端交互。MCP 允许 AI 模型(例如通过 AI SDK 使用的模型,如 Google Gemini/Vertex AI)安全地发现并使用由独立服务进程提供的外部工具或资源。
在此示例中:
- 服务端(
src/server/)充当 MCP 提供方,提供简单的计算工具(加法、减法等)。 - 客户端(
src/client/)使用 AI SDK 与 Google AI 模型交互,并连接到 MCP 服务,以便 AI 在生成内容时使用服务端提供的工具。
此设置展示了如何通过让 AI 模型访问托管在 MCP 服务上的自定义功能来扩展其能力。
前置条件
- Node.js(
package.json中指定的版本 >=23.0.0) - npm(随 Node.js 一同安装)
- Google AI (Gemini) API 密钥。可从 Google AI Studio 获取。(使用 Gemini 模型时需要。)
设置
-
克隆仓库:
git clone [email protected]:bertrandgressier/demo-ts-mcp-client-server.git cd demo-mcp-basic -
安装依赖:
npm install -
创建环境文件: 将示例环境文件
.env.example复制到名为.env的新文件中:cp .env.example .env然后,编辑
.env文件,添加实际的 API 密钥和配置。必需和可选变量如下:# Google Studio Models (Gemini) 所需 GOOGLE_API_KEY=YOUR_GOOGLE_API_KEY # Google Vertex AI Models 所需 VERTEX_PROJECT_ID=YOUR_VERTEX_PROJECT_ID # 可选:未设置时默认为 'us-central1' # VERTEX_LOCATION=your-vertex-location # 可选:Vertex AI 服务账号密钥文件的路径。未设置时,默认为根目录下的 'vertex-key.json'。 # VERTEX_KEY_FILE=path/to/your/vertex-key.json请将
YOUR_GOOGLE_API_KEY和YOUR_VERTEX_PROJECT_ID替换为实际的凭据。 如果使用 Vertex AI 密钥文件,请确保将其放在正确的位置(例如根目录下的vertex-key.json),或在VERTEX_KEY_FILE中提供正确的路径。- 重要:
.gitignore文件已配置为避免将.env和vertex-key.json提交到 Git。
- 重要:
可用脚本
-
构建 TypeScript:
npm run build将
src中的 TypeScript 代码编译为dist中的 JavaScript。 -
启动生产环境服务端:
npm run start # or specifically npm run start:server构建项目(如果尚未构建),并运行
dist/server/server.js中编译后的服务端。 -
启动生产环境客户端:
npm run start:client运行
dist/client/client.js中编译后的客户端。 -
以开发模式运行服务端:
npm run dev:server使用
ts-node(或通过--experimental-transform-types实现类似功能)直接运行服务端,无需单独的构建步骤。 -
以开发模式运行服务端并监视更改:
npm run dev:server:watch使用
nodemon运行服务端;检测到src/server目录中的更改时会自动重启。 -
以开发模式运行客户端:
npm run dev:client使用
ts-node(或类似工具)直接运行客户端。
示例客户端(src/client/client.ts)
主要的示例客户端脚本演示了以下内容:
- 连接到 MCP 服务: 连接到本地运行的 MCP 服务(预期地址为
http://localhost:3001/sse)。 - 获取工具: 获取已连接服务提供的工具列表。
- 配置 AI 模型: 使用配置了 Google AI 模型的 AI SDK(
generateText)(根据.env中设置的环境变量以及可能的src/models/google-ai-provider.ts,通过 API Key 或 Vertex AI 使用 Gemini)。 - 执行提示词: 发送提示词(
6 + 12),并附上系统消息,指示 AI 使用获取到的工具完成计算。 - 输出结果: 输出 AI 模型最终生成的文本回复,该模型可能会使用服务提供的工具。
此客户端展示了应用如何与 MCP 服务交互,在 AI 生成流程中利用其工具。
项目结构
src/:包含 TypeScript 源代码。client/:MCP 客户端应用的代码。server/:MCP 服务应用的代码。model.ts:负责初始化 AI 模型并加载环境变量。
dist/:包含编译后的 JavaScript 代码(运行npm run build后生成)。.env:存储环境变量(API 密钥等)——请勿提交此文件。package.json:项目元数据和依赖项。tsconfig.json:TypeScript 编译器配置。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。