MCP服务器/客户端示例

这是一个Model Context Protocol(MCP)的实现示例项目,提供MCP服务器和客户端的基本功能,包括数值比较工具、服务器与客户端的双向通信以及Google Gemini API的自然语言处理。

  • by ykitaza
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 ykitaza/mcp-server-client-example

使用说明

MCP 服务器/客户端示例

🔍 模型上下文协议(MCP)の実装サンプルプロジェクト

💡 项目背景

此项目创建于:

  • MCPの基礎学習: Model Context Protocol的基本概念的最小实施例
  • 简单的实施:所需的最小功能MCP通过服务器实现,将重点放在协议的本质部分上
  • 独立实施: Claude Desktop App而需要与环境混合的每条反射光线,进行环境采样MCP演示如何自行实施服务器
  • 成本验证: Google Gemini 经过MCP 通过利用,可以不花费成本(可以活用免费框等)进行验证

通过这个样本项目MCP中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。

🎯 机能概要

该项目提供以下主要功能:

MCP服务器功能

  • 提供数字比较工具
    • 实现对两个数字进行大小比较的工具。虽然很简单AI中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
  • 工具的注册和执行管理

工具使用前

使用工具后

MCP客户端功能

  • 与服务器的双向通信
  • 配置文件连接管理
  • 错误处理和重试处理

聊天接口

  • Google Gemini API自然语言处理
  • MCP与工具的协作功能

📋 必要要件

  • 包子 运行时(v1.0.0以上)
  • MCP支持的客户端(例如:Claude Desktop App、Cline、Cursor)
  • Gemini API 键(聊天)CLI使用时)

🚀 快速启动

1.项目设置

# 依存関係のインストール
bun install

# 環境変数ファイルの作成
cp .env.example .env

# .envファイルにGemini APIキーを設定
# Google Cloud ConsoleからAPIキーを取得して設定
GEMINI_API_KEY="your-api-key-here"

2.服务器设置

// server-config.jsonを作成
{
    "my-simple-tool": {
        "command": "bun",
        "args": [
            "run",
            "/absolute/path/to/mcp-server/index.ts"
        ]
    }
}

※请根据环境将路径变更为适当的绝对路径。

3. 実行

# チャットCLIの起動
bun run chat

🏗️ 系统配置

目录结构

src/
├── index.ts                 # チャットCLIのエントリーポイント
├── llm-clients/            # LLMクライアント実装
│   └── gemini.ts           # Google Gemini APIクライアント
├── mcp-client/            # MCPクライアントモジュール
│   ├── client.ts          # MCPツールクライアント実装
│   └── config.ts          # クライアント設定ローダー
└── mcp-server/           # MCPサーバーモジュール
    ├── index.ts          # サーバーのエントリーポイント
    └── tools/            # MCPツール実装
        └── compare-numbers.ts  # 数値比較ツール

组件说明

MCP服务器

  • src/mcp-server/: Model Context Protocol服务器实施法规遵从性
  • 管理工具注册和运行
  • 提供数值比较等工具

MCP客户机

  • src/mcp-client/: MCP与服务器通信的客户端库
  • 导入和连接服务器设置
  • 调用和响应工具

LLM客户机

  • src/llm-clients/:管理与语言模型的交互
  • Google Gemini API使用的自然语言处理
  • MCP实现与工具的协作功能

数据流

  1. 用户聊天CLI在工作空间的边缘

    • 用文本输入问题和命令
    • 输入可以用日语自然的形式
  2. Gemini客户端处理输入

    • 分析输入文本
    • 确定工具使用需求
    • 选择适当的工具和参数
  3. 根据需要MCP调用工具

    • MCP通过客户端与服务器通信
    • 传递工具所需的参数
    • 接收执行结果
  4. 工具运行结果Gemini传递给生成响应

    • 将工具输出转换为自然语言
    • 根据上下文生成适当的说明
    • 在发生错误时创建容易理解的消息
  5. 向用户显示结果

    • 用日语简单易懂地表示处理结果
    • 如果出现错误,请提示处理方法

⚙️ 配置指南

服务器设置

服务器设置由以下两个文件管理:

1.环境变数(.env)

# Google Cloud ConsoleからAPIキーを取得して設定
GEMINI_API_KEY="your-api-key-here"

2.服务器设置(server-config.json)

// server-config.jsonを作成
{
    "my-simple-tool": {
        "command": "bun",
        "args": [
            "run",
            "/absolute/path/to/mcp-server/index.ts"
        ]
    }
}

|设置项目|必需|默认值|说明| |--------------|------|--------------|----------------------------------------| | command |➋|-|服务器执行命令(bun/node等)| | args |➋|-|执行参数(服务器文件路径等)| | disabled | - | false | 禁用服务器标志 | autoApprove|-|[]自动批准的工具列表| | timeout 工具运行超时时间(毫秒)

⚠️ 重要注意事项

  • 服务器文件路径必须为绝对路径使用
  • 更改设置后需要重新启动客户端
  • autoApprove使用最少
  • 环境变量.env文件管理.gitignore添加到

基本用法

# チャットの開始
bun run chat

# チャットの終了方法
exit    # 終了
quit    # 終了
終了     # 終了