CNET Nightcout MCP Http服务器(SSE)
使用C#的模型上下文协议(MCP)服务器实现。NET 8.0,支持服务器发送事件(SSE)。
概述
此MCP服务器提供可通过模型上下文协议访问的工具,实现与AI助手和其他MCP客户端的集成。服务器在HTTP端口8089上运行,可以从任何网络接口访问。
特性
- HTTP传输:使用HTTP与服务器发送的事件进行通信
- 工具发现:自动从当前部件中发现和注册工具
- 交叉平台的:建立在。NET 8.0,可以在包括Linux在内的各种平台上运行
项目结构
Program.cs-主要应用程序入口点和配置McpServer.csproj-具有依赖关系的项目文件Tools/*Tool.cs-MCP工具实施appsettings.json-应用程序配置appsettings.Development.json-开发特定设置
依赖项
- 模型上下文协议 (v0.3.0--综述.3)
- 模型上下文协议。AspNetCore (v0.3.0--综述.3)
运行服务器
- 确保你有。已安装NET 8.0 SDK
- 导航到项目目录
- 运行以下命令:
dotnet restore
dotnet run服务器将启动并监听 http://0.0.0.0:8089
可用工具
服务器会自动从当前程序集中发现MCP工具。以下是可用的工具(工具名称与方法名称匹配):
| 工具 | 描述 | 参数 | 返回 |
|---|---|---|---|
GetBloodGlucose | 获取过去的血糖值(mg/dL) | count: int (默认值:12) | string (按日期分组的人类可读表) |
DeleteTreatment | 按ID删除治疗 | _id: string | string (成功/失败消息) |
GetBasalInsulin | 获取最新的基础(慢作用)胰岛素记录 | count: int (默认值:12) | string (按日期分组) |
GetFingerPrickCapillaryGlucometerChecks | 进行手指点刺/毛细管血糖仪血糖检查 | count: int (默认值:12) | string (按日期分组) |
GetInsulinBoluses | 获取最新的胰岛素推注记录 | count: int (默认值:12) | string (按日期分组) |
GetExercise | 获取记录的锻炼记录 | count: int (默认值:12) | string (按日期分组) |
GetMeals | 获取记录的膳食(碳水化合物和描述) | count: int (默认值:12) | string (按日期分组) |
GetNotes | 获取记录的笔记 | count: int (默认值:12) | string (按日期分组) |
GetSensorStart | 获取传感器启动的日期/时间 | months: int (默认值:1) | string (按事件行) |
RecordBasalInsulin | 记录基础胰岛素给药 | absolute: double? (单位), duration: int? (默认值:1440), notesDescription: string?, eventTime: string? (yyyy-MM-dd HH:mm,欧洲/里斯本) | string (治疗ID的成功/失败) |
RecordBolusInsulin | 记录单次胰岛素给药 | insulin: double?, notesDescription: string?, eventTime: string? | string (治疗ID的成功/失败) |
RecordExercise | 记录锻炼活动 | duration: int?, notesDescription: string?, eventTime: string? | string (治疗ID的成功/失败) |
RecordFingerPrickCapillaryGlucometerCheck | 记录手指点刺/毛细管血糖仪血糖检查 | glucose: int (mg/dL), eventTime: string? | string (治疗ID的成功/失败) |
RecordFood | 记录含碳水化合物的食物摄入量 | carbs_g: double?, notesDescription: string?, eventTime: string? | string (治疗ID的成功/失败) |
RecordNotes | 记录笔记/事件 | notesDescription: string, eventTime: string? | string (治疗ID的成功/失败) |
笔记:
- 所有返回值都是针对聊天显示优化的人类可读字符串。
- 在适用的情况下,葡萄糖的数量使用mg/dL,胰岛素的数量使用国际单位(u)。
eventTime参数是可选的,如果提供,则必须在yyyy-MM-dd HH:mm使用欧洲/里斯本当地时间。
配置
服务器配置为:
- 在HTTP端口8089上运行
- 接受来自任何网络接口的连接(0.0.0.0)
- 使用HTTP传输进行MCP通信
- 从当前部件中自动发现工具
发展
本项目使用:
- .NET 8.0作为目标框架
- 启用了可为空的引用类型
- 已启用隐式使用
- 工具集成的模型上下文协议
许可证
本项目按原样提供,用于演示和开发目的。
