mcpField
D
Demo MCP Basic

Demo MCP Basic

本地服务
github.com/bertrandgressier开发工具183 周前更新

关于 Demo MCP Basic

Demo MCP Basic 是一个 TypeScript 示例,展示如何通过 AI SDK 将 MCP 服务端与使用 Google AI 模型的客户端配合使用。它演示服务端提供的计算工具如何在生成过程中被发现和调用。

主要功能

  1. 01加法和减法计算工具
  2. 02MCP 服务端与客户端示例
  3. 03通过 AI SDK 使用 Google AI 模型
  4. 04生成期间发现并调用工具

适用场景

  1. 01了解基本的 MCP 客户端与服务端交互
  2. 02让 Google AI 模型调用计算工具
  3. 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 模型时需要。)

设置

  1. 克隆仓库:

    git clone [email protected]:bertrandgressier/demo-ts-mcp-client-server.git
    cd demo-mcp-basic
    
  2. 安装依赖:

    npm install
    
  3. 创建环境文件: 将示例环境文件 .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)

主要的示例客户端脚本演示了以下内容:

  1. 连接到 MCP 服务: 连接到本地运行的 MCP 服务(预期地址为 http://localhost:3001/sse)。
  2. 获取工具: 获取已连接服务提供的工具列表。
  3. 配置 AI 模型: 使用配置了 Google AI 模型的 AI SDK(generateText)(根据 .env 中设置的环境变量以及可能的 src/models/google-ai-provider.ts,通过 API Key 或 Vertex AI 使用 Gemini)。
  4. 执行提示词: 发送提示词(6 + 12),并附上系统消息,指示 AI 使用获取到的工具完成计算。
  5. 输出结果: 输出 AI 模型最终生成的文本回复,该模型可能会使用服务提供的工具。

此客户端展示了应用如何与 MCP 服务交互,在 AI 生成流程中利用其工具。

项目结构

  • src/:包含 TypeScript 源代码。
    • client/:MCP 客户端应用的代码。
    • server/:MCP 服务应用的代码。
    • model.ts:负责初始化 AI 模型并加载环境变量。
  • dist/:包含编译后的 JavaScript 代码(运行 npm run build 后生成)。
  • .env:存储环境变量(API 密钥等)——请勿提交此文件。
  • package.json:项目元数据和依赖项。
  • tsconfig.json:TypeScript 编译器配置。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。