集成LLM的计算器MCP服务器🤖
MCP (Model Context Protocol) 的学习项目-提供计算器功能的服务器LLM集成客户机的实施示例。
概要
此项目包括:Microsoft 的,之MCP 根据教程创建,包括:
MCP服务器(计算器服务器)
提供以下计算功能作为工具:
- 添加:将两个数相加
- 减去:从第一个数减去第二个数
- 乘:乘以两个数
- 划分:将第一个数除以第二个数
- 力量:计算幂
客户端实现
- 基本MCP客户机 -编程工具调用
- 交互CLI -交互式计算
- 🌟 LLM统一客户端 -请求使用自然语言计算
🚀 快速启动(LLM集成客户机)
可以用自然语言计算LLM立即尝试客户端:
# 1. 依存関係をインストール
npm install
cd client && npm install && cd ..
# 2. ビルド
npm run build
cd client && npm run build && cd ..
# 3. 環境変数を設定
cd client
cp .env.example .env
# .envファイルを編集してGITHUB_TOKENまたはOPENAI_API_KEYを設定
# 4. LLMクライアントを起動
npm run llm了解更多信息 QUICKSTART.md 来修改标记元素的显示属性。
安装,安装
1.安装相关性
# サーバー
npm install
# クライアント
cd client
npm install2.构建
# サーバー
npm run build
# クライアント
cd client
npm run build3. 実行
MCP服务器单体
npm start客户机
cd client
# 基本テストクライアント
npm start
# インタラクティブCLI
npm run interactive
# LLM統合クライアント(推奨)
npm run llm测试和调试
MCP Inspector 使用测试
MCP Inspector 单击功能区上MCP 用于视觉测试服务器的工具。
npm run inspector执行此命令后,在浏览器中Inspector 启动,您可以:
- 查看服务器提供的工具列表
- 将不同的参数传递给每个工具进行测试
- 实时响应
- 检查服务器元数据和模式
工具示例
add (加法)
{
"a": 10,
"b": 5
}结果: 10 + 5 = 15
subtract (减法)
{
"a": 10,
"b": 5
}结果: 10 - 5 = 5
multiply (乘法)
{
"a": 10,
"b": 5
}结果: 10 × 5 = 50
divide (除法)
{
"a": 10,
"b": 5
}结果: 10 ÷ 5 = 2
power (幂)
{
"base": 2,
"exponent": 3
}结果: 2^3 = 8
🔒 安全注意事项
⚠️ 重要:要克隆并使用此存储库:
.env不包含文件 -必须自己创建- API绝对不要提交密钥/令牌
.env.example复制.env创建自己的API请设置键.gitignore由于.env文件将自动排除
# 正しい手順
cd client
cp .env.example .env
# エディタで.envを開いて、APIキーを設定📁 文档
- QUICKSTART.md -3步入门指南
- **** - GitHub Token设置详细信息
- LLM_CLIENT_GUIDE.md - LLM客户端完整指南
项目结构
mcp-tutorial-bymicrosoft/
├── src/
│ └── index.ts # MCPサーバーコード
├── client/ # クライアント実装
│ ├── src/
│ │ ├── index.ts # 基本テストクライアント
│ │ ├── interactive.ts # インタラクティブCLI
│ │ └── llm-client.ts # 🌟 LLM統合クライアント
│ ├── .env.example # 環境変数テンプレート
│ ├── .env # 🔒 APIキー(gitignore済み)
│ └── package.json
├── docs/ # 詳細ドキュメント
│ ├── README.md
│ ├── mcp-complete-example.md
│ ├── client-patterns.md
│ └── communication-mechanism.md
├── QUICKSTART.md # クイックスタートガイド
├── GITHUB_TOKEN_SETUP.md # GitHub Token設定
├── LLM_CLIENT_GUIDE.md # LLMクライアント完全ガイド
├── .gitignore # Git除外設定
└── README.md # このファイル技术栈
服务器
- TypeScript:型安全开发
- @模型上下文协议/sdk: MCP 公式SDK
- 黄道带:架构验证
- stdio 传输:使用标准输入输出的通信(MCP推荐方式)
LLM统一客户端
- OpenAI SDK: LLM集成和Function Calling
- Dotenv。:环境变数管理
- GitHub模型 或 OpenAI API: LLM后端
🔌 stdio 关于传输
此项目包括:MCP规格建议stdio传输中所述修改相应参数的值。
stdio什么是传输?
一种在客户端服务器之间使用标准输入和标准输出进行通信的方法。
通信流程:
クライアント ←──stdin──→ MCPサーバー
←─stdout─→
←─stderr─→ (ログのみ)优点
- ✅ 简单轻便
- ✅ Web无需服务器设置
- ✅ 安全本地通信
- ✅ 易于调试
- ✅ 2025年的MCP规格建议
了解更多信息 stdio 传输完全指南 来修改标记元素的显示属性。
📚 HTTP关于传输
MCP那么,HTTP以下传输适用于环境:
✅ Streamable HTTP(推奨)
MCP SDK v1.20.1+提供的现代的HTTP流式传输。
主要功能:
- 会话管理
- 自动重新连接恢复
- OAuth认证
- DNS Rebinding保护
- 适合生产环境
⚠️ SSE(旧版、非推荐版)
传统Server-Sent Events基本传输。
此项目包括:学习目的的SSE中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积
src-http/- SSE服务器端参考实施client/src-http/- SSE客户端参考实现
这些是概念理解的代码。请勿在新项目中使用。
详情见:
建议的传输:
- 本地运行: 标准
- 云/Web环境: 可流式传输的HTTP
错误处理
- 零除法适当地返回错误
- 无效的参数Zod 的明细栏样式中定义的设置
- 对未知工具名称也返回错误
📚 详细文档
为了更深入的理解docs/ 目录中提供了详细的文档:
了解更多信息 docs/README.md 来修改标记元素的显示属性。
