关于 MCP サーバーサンプル
面向 MCP 初学者的精简服务器与客户端示例,展示工具注册、数值比较、客户端配置及 Gemini 聊天命令行,不依赖特定 MCP 客户端。
主要功能
- 01精简的 MCP 服务实现
- 02工具注册与执行
- 03数值比较工具
- 04客户端配置与重试
- 05Gemini 聊天命令行
适用场景
- 01学习 MCP 核心概念
- 02通过工具验证数值大小
- 03从聊天命令行试用 MCP 工具
MCP 相关
项目包含提供数值比较工具的 MCP 服务,以及连接已配置服务并调用工具的客户端。聊天命令行使用 Google Gemini 选择工具并呈现结果。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
来自项目 READMEMCP サーバー/クライアント サンプル
🔍 Model Context Protocol(MCP)の実装サンプルプロジェクト
💡 プロジェクトの背景
このプロジェクトは以下の目的で作成されました:
- MCPの基礎学習: Model Context Protocolの基本概念を理解するための最小限の実装例を提供
- シンプルな実装: 必要最小限の機能に絞ったMCPサーバーの実装により、プロトコルの本質的な部分に焦点を当てる
- 独立した実装: Claude Desktop Appなどの特定のクライアントに依存せず、MCPサーバーを自前で実装する方法を示す
- コストをかけず検証: Google Gemini 経由で MCP を利用することで、コストをかけず(無料枠等の活用可)検証を行うことが可能
このサンプルプロジェクトを通じて、MCPの基本的な仕組みとツール連携の実装方法を学ぶことができます。
🎯 機能概要
このプロジェクトは以下の主要機能を提供します:
MCPサーバー機能
- 数値比較ツールの提供
- 2つの数字の大小比較を行うツールを実装します。とても単純ですが、AIが間違えやすい比較問題(9.11と9.9の大小比較等)を解決します。
- ツールの登録・実行管理
ツール使用前

ツール使用後

MCPクライアント機能
- サーバーとの双方向通信
- 設定ファイルによる接続管理
- エラーハンドリングとリトライ処理
チャットインターフェース
- Google Gemini APIによる自然言語処理
- MCPツールとの連携機能

📋 必要要件
- Bun ランタイム(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ツールとの連携機能を実装
データフロー
-
ユーザーがチャットCLIに入力
- 質問やコマンドをテキストで入力
- 入力は日本語で自然な形式が可能
-
Geminiクライアントが入力を処理
- 入力テキストを分析
- ツール使用の必要性を判断
- 適切なツールとパラメータを選択
-
必要に応じてMCPツールを呼び出し
- MCPクライアントを通じてサーバーと通信
- ツールに必要なパラメータを渡す
- 実行結果を受け取る
-
ツールの実行結果をGeminiに渡して応答を生成
- ツールの出力を自然言語に変換
- コンテキストに応じた適切な説明を生成
- エラー発生時は分かりやすいメッセージを作成
-
結果をユーザーに表示
- 処理結果を日本語で分かりやすく表示
- エラーが発生した場合は対処方法も提示
⚙️ 設定ガイド
サーバー設定
サーバーの設定は以下の2つのファイルで管理します:
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 | - | 30000 | ツール実行のタイムアウト時間(ミリ秒) |
⚠️ 重要な注意点
- サーバーファイルのパスは必ず絶対パスを使用
- 設定変更後はクライアントの再起動が必要
autoApproveの使用は必要最小限に- 環境変数は
.envファイルで管理し、.gitignoreに追加
基本的な使い方
# チャットの開始
bun run chat
# チャットの終了方法
exit # 終了
quit # 終了
終了 # 終了
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。