关于 Calculator SSE
Calculator SSE 是一个 Node.js 和 TypeScript MCP 服务示例,通过 SSE 提供 BMI 计算和加法工具,供探索与 GitHub Copilot Agent 和 Microsoft Copilot Studio 的集成。
主要功能
- 01BMI 计算工具
- 02加法工具
- 03SSE 传输
- 04GitHub Copilot Agent 集成
- 05Microsoft Copilot Studio 集成
适用场景
- 01通过 MCP 客户端计算 BMI
- 02通过 MCP 客户端进行加法运算
- 03测试基于 SSE 的 MCP 连接
- 04探索 Copilot 集成
MCP 相关
它通过 /sse SSE 端点向 MCP 客户端提供 BMI 计算和加法工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🧮 MCP 服务的分步实现,以及与 Microsoft Copilot Studio 和 Github Copilot Agent 的集成
这是一个使用 Model Context Protocol SDK 的 Node.js + TypeScript MCP SDK 演示项目。它通过 MCP 提供 BMI 计算和加法等简单计算工具,并支持通过服务器发送事件(SSE)实时响应。 使用 MCP 架构和 SSE 传输,了解 MCP 架构和最佳实践。
🚀 功能
- ✅ 支持 SSE(服务器发送事件)
- ✅ BMI 计算工具
- ✅ 加法工具
- ✅ MCP 工具 + Github Copilot Agent 集成
- ✅ MCP 工具 + Microsoft Copilot Studio 集成
- ✅ 已适配 Azure App Service
📁 项目结构
⚙️快速开始
npm install # Install dependencies
npm run build # Compile TypeScript
npm run start # Start server (http://localhost:3001)
应用将在 http://localhost:3001 运行(除非另有配置)。
🧪 MCP 工具
🔹 calculate-bmi
输入:
{
"weightKg": 70,
"heightM": 1.75
}
响应:
{
"content": [{ "type": "text", "text": "22.86" }]
}
🔹 calculate-sum
输入
{
"a": 5,
"b": 3
}
响应:
{
"content": [{ "type": "text", "text": "8" }]
}
🔁 SSE 端点
服务通过以下端点支持服务器发送事件(SSE):
GET /sse
🖥️ MCP 工具 + Github Copilot Agent 集成(VSCode)
- 打开命令面板(
Ctrl+Shift+P或Cmd+Shift+P)。 - 输入 "Add MCP Server" 并选择该项。
- 使用以下内容更新
.vscode/mcp.json:
{
"servers": {
"my-mcp-server": {
"type": "sse",
"url": "http://localhost:3001/sse"
}
}
}
Github Copilot Agent 中的结果
🖥️ MCP 工具 + Microsoft Copilot Studio 集成(自定义连接器)
有关如何使用自定义连接器将模型上下文协议(MCP)工具集成到 Microsoft Copilot Studio 的详情,请参阅 Microsoft 官方文档:🔗 在 Copilot Studio 中使用 MCP 扩展 Copilot 操作
MCP 自定义连接器与 Copilot Studio 集成
本文介绍如何设置 MCP 工具,使其能够通过自定义连接器在 Copilot Studio 中执行操作。
Swagger 规范
swagger: '2.0'
info:
title: MCPCalculatorDemo
description: Calculate BMI and Calculate sum using MCP SSE server
version: '1.0'
host: calculatormcp-dummyurl.azurewebsites.net
basePath: /
schemes:
- https
definitions:
QueryResponse:
type: object
properties:
jsonrpc:
type: string
id:
type: string
method:
type: string
params:
type: object
result:
type: object
error:
type: object
paths:
/sse:
get:
summary: MCP Server Actions for calculating BMI and sum
parameters:
- in: query
name: sessionId
type: string
required: false
produces:
- application/json
responses:
'200':
description: Immediate Response
schema:
$ref: '#/definitions/QueryResponse'
'201':
description: Created and will follow callback
operationId: CalculatorDemo
tags:
- Agentic
- McpSse
securityDefinitions: {}
security: []
在 Copilot Studio 中使用 MCP 服务操作
访问 MCP 服务操作的步骤
-
打开 Copilot Studio
前往你的 Copilot Studio 工作区。 -
前往操作
点击左侧边栏中的 Action 菜单。 -
选择“Custom connector”
在 Action 菜单下,选择 Custom connector。 -
找到 MCP 服务操作
系统将自动显示可用工具。从列表中选择 MCP Server Action。 -
预览 MCP 服务操作
你可以查看所选 MCP 服务操作的详情,如下所示:
📌 注意事项
-
✅ 在初始化 MCP 传输时,
/sse端点应返回完整 URI(包括协议和主机)。这样可确保在不同环境(例如 localhost 与 Azure)中部署时保持兼容,并建立用于流式传输 MCP 交互的实时连接。示例:
const protocol = req.protocol; const host = req.get('host'); const fullUri = `${protocol}://${host}/mcp`;
🔄 Return / Server-Sent Events (SSE) with Full URI
Ensure your custom connector supports SSE (Server-Sent Events) and returns the full URI as shown:
🏷️ Add Tags to Your Custom Connector
tags:
- Agentic
- McpSse
⚠️ 命名指南
请勿将 "InvokeMCP" 用作 operationId。
请选用更具体且描述性更强的名称,以体现操作的用途并避免冲突。
☁️ 部署到 Azure(可选)
创建 Azure App Service(Node.js 18+) 设置启动命令(如有需要):
npm run build && npm run start
SSE 部署更新
使用 Basic 计划在 West US 2 区域将 SSE 部署到 Azure 已成功完成,并通过测试,未发现问题。
🛠️ 故障排除
✅ 如何检查 SSE 服务是否正常运行
请按照以下步骤验证 SSE(Server-Sent Events)服务是否正常运行:
🔍 步骤 1:访问 SSE 端点
-
打开浏览器并访问:
http://localhost:3000/sse(如果在本地运行),或- 已部署的 Azure URL。
-
打开 开发者工具 → 网络 标签页。
-
查找 EventStream 连接。
-
在
Event部分中,你应看到:- 端点:SSE 端点
- 数据:完整 URI 端点
🧪 步骤 2:通过 Postman 测试 SSE 端点
- 复制 完整 URI(来自 EventStream 的
data)。 - 使用 Postman 向该 URI 发送
POST请求。
示例 URL:
http://calculatormcp-dummyurl.azurewebsites.net/mcpfy/v1/calculatordemo?sessionId=620c84e1-81e2-484d-8737-a7fbc93165b1
示例请求负载:
{
"jsonrpc": "2.0",
"id": "2",
"method": "tools/call",
"params": {
"name": "calculate-bmi",
"arguments": {
"weightKg": 180,
"heightM": 1.8
}
}
}
如果成功,你将收到一条包含 "message" 的响应,确认服务运行正常。
🖼️ 示例截图
浏览器网络事件跟踪:
Postman 响应:
或者,你也可以使用 MCP Inspector 进行测试:https://github.com/modelcontextprotocol/inspector
免责声明
这是一个不受支持、实验性且非 Microsoft 官方产品的项目。它按“原样”提供,不提供支持,也不作任何明示或默示的保证。这包括但不限于对适销性、特定用途适用性和不侵权的保证。
在任何情况下,作者或版权持有人均不对因软件或使用软件或与软件相关的其他交易而引起、产生或相关的任何索赔、损害或其他责任承担责任,无论是基于合同、侵权还是其他原因。
⚠️ 重要说明:
这是一个为演示目的创建的示例自定义 MCP 服务。它部署在 Microsoft Azure 上,仅用于原型设计或示例场景中与 Copilot Studio 集成。
此组件不属于任何 Microsoft 官方产品,且不可用于生产环境。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。