Agnovat MCP 服务器
版本: 1.0.0 最小可行性产品(MVP) 项目代码: AGNOVAT-MCP-MVP 翻译为中文可以是:“AGNOVAT-MCP-MVP(注:此为专有名词或特定项目/产品的名称,直接保留原样,若需解释性翻译,可为‘AGNOVAT的MCP-MVP(最小可行产品)’,但具体含义需根据上下文确定)”。不过,通常情况下,如果这是一个特定的项目、产品或技术名称,直接保留原名并在必要时加以解释会更为合适 状态: 第四阶段 - MCP(多项目控制计划/主控制计划等,具体含义根据上下文确定)集成完成 ✅
概述
一个针对NDIS(国家残疾保险计划)参与者支持管理的健壮型模型上下文协议(MCP)服务器。该服务器通过符合MCP标准的接口,提供了32项全面工具,用于管理客户、目标、活动、利益相关者、班次记录以及仪表板分析。
使命宣言
构建一个可扩展的MCP服务器,用于支持NDIS(网络数据采集与服务接口)参与者管理,该服务器可将文档编制时间缩短40%,同时提高目标跟踪的准确性和交接沟通的效率。
特点 ✅
核心功能(完整)
- ✅ 客户管理创建、检索、更新、停用和搜索客户资料
- ✅ 目标追踪通过自动化进度追踪和风险检测来管理NDIS(国家残疾保险计划)参与者的个人目标
- ✅ 活动日志记录记录支持活动,并关联目标及日期范围查询
- ✅ 换班笔记/交接班记录全面的班次记录文档,拥有24小时编辑窗口
- ✅ 利益相关者管理追踪支持人员、协调员及其他利益相关者
- ✅ 仪表盘实时概览,包含聚合指标及风险目标检测
MCP 集成(完成)
- ✅ 32 MCP 工具对所有实体执行完整的CRUD操作(创建、读取、更新、删除)
- ✅ 6 个资源端点基于URI的直接实体访问
- ✅ 6个提示模板常见任务的引导式工作流程
- ✅ MCP协议合规性工具、资源和提示已全面实施
技术特性(完整版)
- ✅ 带严格类型检查的TypeScript
- ✅ 基于JSON的数据存储,支持文件锁定
- ✅ 原子写入以防止数据损坏
- ✅ 备份和恢复功能
- ✅ 全面的错误处理
- ✅ 保护个人身份信息(PII)的安全日志记录
项目结构
agnovat-mcp-server/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── tools/ # MCP tool implementations
│ ├── resources/ # MCP resource handlers
│ ├── prompts/ # MCP prompt templates
│ ├── storage/ # Data persistence layer
│ ├── models/ # Data models and types
│ ├── validation/ # Zod schemas and validation
│ └── utils/ # Utilities and helpers
├── data/ # JSON data storage
├── tests/ # Test suite
├── docs/ # Documentation
└── plan.md # Detailed development plan开发环境设置
先决条件
- Node.js 18及以上版本
- npm 或 pnpm
安装
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode
npm run dev可用脚本
npm run build- 将TypeScript编译为JavaScriptnpm run dev- 开发用的监视模式npm start- 运行编译后的服务器npm test- 运行测试套件npm run test:watch- 在监视模式下运行测试npm run test:coverage- 生成覆盖率报告npm run lint- 代码整洁度(或代码规范性检查)npm run lint:fix- 检查并自动修复问题npm run format- 使用 Prettier 格式化代码npm run type-check- 检查 TypeScript 类型而不出发(即不生成代码)
测试MCP服务器
MCP服务器可以无需前端,直接通过像Claude Desktop这样的AI应用进行测试。
见 TESTING_GUIDE.md 翻译为中文是:《测试指南》.md(文件名) 完整的测试说明,包括:
- Claude Desktop的配置与设置
- 使用自然语言进行交互式测试
- 用于调试的MCP检查器
- 测试了全部32个工具、6个资源和6个提示
- 性能测试和生产准备检查清单
快速入门Claude桌面版
- 安装 Claude Desktop(可译为“Claude桌面版”或保持原样,根据上下文决定是否需要具体化为某个平台或版本的名称)
- 构建项目:
npm run build - 添加到Claude桌面配置(
~/Library/Application Support/Claude/claude_desktop_config.json(在 macOS 上):
{
"mcpServers": {
"agnovat": {
"command": "node",
"args": ["/absolute/path/to/agnovat-mcp/dist/index.js"],
"env": {
"STORAGE_TYPE": "json",
"DATA_DIR": "/absolute/path/to/agnovat-mcp/data"
}
}
}
}- 重启Claude桌面版
- 开始测试:“你能为我创建一个新的NDIS客户端吗?”
MCP 工具(共32个)
客户端工具(6)
create_client- 创建带有验证的新客户档案get_client- 获取带有汇总统计信息的客户端list_clients- 列出/搜索客户并应用筛选条件update_client- 更新客户信息deactivate_client- 带验证的软删除search_clients- 全文名称搜索
目标工具(6)
create_goal- 制定带有里程碑的NDIS目标get_goal- 获取包含详细信息的目标list_goals- 按状态、类别、客户过滤update_goal- 更新目标属性update_goal_progress- 更新进度并提供自动状态建议archive_goal- 归档已完成/已终止的目标
活动工具(6)
create_activity- 记录支持活动并关联目标get_activity- 获取包含详细信息的活动list_activities- 按日期、状态、客户、目标筛选update_activity- 更新活动信息get_activities_by_date_range- 按日期范围查询get_upcoming_activities- 获取接下来N天的日程安排
利益相关者工具(6)
create_stakeholder- 创建支持工作人员/协调员的个人资料get_stakeholder- 附带活动摘要进行检索list_stakeholders- 按角色、激活状态筛选update_stakeholder- 更新利益相关者信息deactivate_stakeholder- 对利益相关者进行软删除search_stakeholders- 全文名称搜索
Shift 笔记工具(6)
create_shift_note- 随附相关活动/目标的文件转移get_shift_note- 获取包含详细信息的班次记录list_shift_notes- 按客户、利益相关者、日期筛选update_shift_note- 在24小时窗口期内进行编辑get_recent_shift_notes- 获取最近N次班次的笔记get_shift_notes_for_week- 获取每周的班次记录
仪表盘工具(2)
get_dashboard- 聚合指标、处于风险中的目标、最近活动get_client_summary- 客户概况及目标进度get_statistics- 高级系统统计信息
MCP资源公司(6)
通过URI访问实体:
client:///{client_id}- 客户资料goal:///{goal_id}- 目标详情activity:///{activity_id}- 活动详情shift_note:///{shift_note_id}- 班次备注stakeholder:///{stakeholder_id}- 利益相关者概况dashboard://summary- 仪表盘数据
MCP 提示(6)
引导式工作流程:
create_shift_note_for_client- 分步骤的交接班记录review_client_progress- 全面进展审查plan_activity_for_goal- 活动规划助手handover_summary- 交接报告生成weekly_report- 为客户/组织提供每周总结goal_risk_review- 风险目标分析及行动计划
开发阶段
第一阶段:基础 ✅
- ✅ 项目设置与配置
- ✅ 数据模型和Zod模式(7个实体)
- ✅ 带文件锁定的JSON存储
- ✅ 实用工具和错误处理
第二阶段:核心工具 ✅
- ✅ 客户管理工具(6项功能)
- ✅ 目标管理工具(7项功能)
- ✅ 活动管理工具(6项功能)
- ✅ 利益相关者管理工具(6项功能)
第三阶段:转移笔记与仪表板 ✅
- ✅ 切换笔记工具(6种功能)
- ✅ 仪表板聚合功能(3项功能)
- ✅ 目标风险检测
- ✅ 每周/每日总结
阶段4:MCP集成 ✅
- ✅ MCP服务器入口点
- ✅ 工具注册(32个工具)
- ✅ 资源端点(6个资源)
- ✅ 提示模板(6个提示)
阶段5:测试与文档编制(接下来)
- ⏳ 单元测试(目标:80%+覆盖率)
- ⏳ 集成测试
- ⏳ 端到端测试
- ⏳ API文档
- ⏳ 用户指南
- ⏳ 与支持工作人员进行UAT(用户验收测试)
配置
环境变量
STORAGE_TYPE存储后端类型 (json或者convex,默认:json)DATA_DIRJSON数据存储目录(默认:./data)CONVEX_URL凸部署URL(如果...则为必填项)STORAGE_TYPE=convex)
数据存储选项
JSON 文件存储(默认)
- 基于本地文件的存储
- 原子写入以防止数据损坏
- 文件锁定以支持并发访问
- 用于性能提升的内存缓存
- 每日自动备份至
data/backups/
凸数据库(可选)
- 基于云的实时数据库
- 自动扩展和复制
- 内置认证和文件存储功能
- 使用生成的 TypeScript 类型实现类型安全
- 提供免费层级以供开发使用
示例用法
创建客户端
{
"name": "John Smith",
"date_of_birth": "1995-03-15",
"ndis_number": "43012345678",
"support_notes": "Requires assistance with daily living skills"
}设定一个目标
{
"client_id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Independent meal preparation",
"category": "daily_living",
"target_date": "2025-12-31",
"description": "Develop skills to prepare simple meals independently",
"milestones": [
"Learn basic kitchen safety",
"Prepare cold meals independently",
"Cook simple hot meals with guidance"
]
}记录转变过程
{
"client_id": "550e8400-e29b-41d4-a716-446655440000",
"stakeholder_id": "660e8400-e29b-41d4-a716-446655440001",
"shift_date": "2025-10-18",
"start_time": "14:00",
"end_time": "18:00",
"general_observations": "Client was engaged and motivated today. Great progress on meal prep skills.",
"activity_ids": ["770e8400-e29b-41d4-a716-446655440002"],
"goals_progress": [
{
"goal_id": "880e8400-e29b-41d4-a716-446655440003",
"progress_notes": "Successfully prepared pasta with minimal guidance. Required help with timing.",
"progress_observed": 5
}
],
"mood_wellbeing": "Positive mood, expressed pride in achievements",
"handover_notes": "Continue working on timing and multitasking in kitchen"
}业务规则
数据完整性
- 所有ID均为UUID v4格式
- ISO 8601格式的时间戳(协调世界时)
- 对所有关系进行外键验证
- 仅进行软删除(不进行物理删除)
验证规则
- 无法为非活跃客户创建目标
- 无法停用具有活跃目标的客户端
- 活动必须属于有效的客户和利益相关者
- 目标和活动必须属于同一客户
- 排班备注只能在排班日期后的24小时内编辑
- NDIS编号在所有活动客户端中必须唯一
目标风险检测
当以下情况发生时,目标会被标记为“处于风险之中”:
- 进度 \():
Types: feat, fix, docs, test, refactor, perf, chore
## 许可证
ISC(International Space Command,国际空间司令部,注:具体名称可能根据上下文有所不同,此处为一种可能的翻译)
## 支持
如遇问题或疑问,请参阅项目文档或联系开发团队。
______________________________________________________________________
**版本**1.0.0 最小可行性产品(MVP)
**最后更新时间**2025年10月18日
**当前阶段**第四阶段完成 - MCP(多点控制单元/管理控制协议等,具体根据上下文确定)集成 ✅
**下一阶段**第五阶段 - 测试与文档编制