Zava声称Ops-用于AI代理的匿名MCP服务器
现代 模型上下文协议(MCP)服务器 使用TypeScript构建,为AI代理提供 匿名访问 通过以下方式获取保险索赔数据 Azure表存储 整合。
📚 目录
- 🎯 这个项目提供了什么
- 🚀 技术栈
- 📋 先决条件
- 🚀 快速入门指南
- 🛠️ 可用的MCP工具
- 🌐 MCP服务器端点
- 📝 使用curl的示例
- ⚙️ 环境配置
- 📊 包含样本数据
- 🚀 生产部署:Azure容器应用
- 🔍 测试与监控
- 🧪 本地开发和测试
- 📚 其他资源和文档
- 🔒 安全注意事项
- 📝 变更日志和版本控制
- 🤝 贡献
- 📄 许可和法律
🎯 这个项目提供了什么
- 🤖 MCP服务器:用于AI代理集成的符合标准的MCP服务器
- 🌐 匿名访问:无需身份验证-所有端点都是公共的
- ☁️ Azure存储:用于可扩展数据管理的Azure表存储
- 📦 生产就绪:Docker容器化与Azure部署指南
- 🔧 完整的CRUD操作:完成索赔、检查和检查员管理的创建、读取、更新、删除操作
- 📊 丰富的样本数据:预装了真实的保险数据,以便立即进行测试
🚀 技术栈
核心技术
- 运行时:Node.js 18+与TypeScript
- MCP框架: @模型上下文协议/sdk
- Web框架:支持CORS的Express.js
- 存储:Azure表存储(使用本地Azurite模拟器)
- 验证:对所有输入进行Zod模式验证
- 测试:具有全面测试覆盖率的Jest
依赖项
- @azure/数据表:Azure表存储客户端
- @模型上下文协议/sdk:MCP服务器实现
- 表达:HTTP服务器框架
- 跨域资源共享:跨来源资源共享
- 黄道带:运行时类型验证
- 愉悦:其他验证模式
📋 先决条件
在运行此项目之前,请确保您已经:
- Node.js 18.x或更高版本 安装
- npm 或 纱线 包管理器
- TypeScript (
npm install -g typescript) - Docker 桌面版 (用于集装箱化和部署)
- Azure命令行界面 (适用于Azure部署)
- Git (用于版本控制)
🚀 快速入门指南
步骤1:克隆并安装
git clone
cd zava-mcp-server
npm install第二步:构建项目
npm run build步骤3:启动本地存储(终端1)
# Start Azure Storage Emulator - keep this running
npm run start:azurite步骤4:初始化样本数据(终端2)
# Load sample claims, contractors, inspections data
npm run init-data步骤5:启动MCP服务器(终端2)
# Start MCP HTTP server on http://127.0.0.1:3001
npm run start:mcp-http步骤6:使用MCP检查员进行测试(端子3)
# Open interactive MCP testing UI (optional)
npm run inspector🛠️ 可用的MCP工具
MCP服务器提供 15个综合工具 针对四大类人工智能代理:
📋 索赔操作
| 工具 | 说明 | 参数 | 示例用法 |
|---|---|---|---|
get_claims | 检索所有保险索赔 | 无 | 返回所有索赔列表 |
get_claim | 通过ID或号码获取具体索赔 | claimId: string | 获取索赔“1”或“CN202504990” |
create_claim | 创建新的保险索赔 | 完整索赔对象 | 创建新的风暴损失索赔 |
update_claim | 更新现有索赔 | claimId + update fields | 更新索赔状态,添加备注 |
delete_claim | 从系统中删除索赔 | claimId: string | 永久删除索赔 |
🔍 检查操作
| 工具 | 说明 | 参数 | 示例用法 |
|---|---|---|---|
get_inspections | 进行所有检查(带过滤器) | claimId?, status? | 列出具体索赔的检查 |
get_inspection | 按ID进行具体检查 | inspectionId: string | 检索检查详细信息 |
create_inspection | 安排新检查 | 任务详情 | 安排屋顶检查 |
update_inspection | 更新检查任务 | inspectionId + updates | 标记检查完成 |
delete_inspection | 删除检查任务 | inspectionId: string | 取消预定检查 |
👷 检查员操作
| 工具 | 说明 | 参数 | 示例用法 |
|---|---|---|---|
get_inspectors | 检索所有检查员(使用可选的专业过滤器) | specialization? | 按“屋顶”列出所有检查员或过滤器 |
get_inspector | 按ID获取特定检查员 | inspectorId: string | 获取分配的检查员详细信息 |
🏗️ 承包商和采购订单操作
| 工具 | 说明 | 参数 | 示例用法 |
|---|---|---|---|
get_contractors | 使用过滤器检索承包商 | name?, specialty?, isPreferred? | 寻找屋顶承包商或首选供应商 |
create_purchase_order | 为承包商工作创建新的采购订单 | claimId, contractorId, workDescription, lineItems | 发出维修工作订单 |
get_purchase_order | 按ID获取特定采购订单 | poId: string | 检索订单详细信息和状态 |
🤖 AI提示可用
| 提示 | 说明 | 参数 | 用途 |
|---|---|---|---|
claims_analysis | 生成全面的索赔分析 | claimId, analysisType? | 基于人工智能的索赔评估 |
damage_assessment | 生成损伤评估提示 | claimId, damageType, severity? | 财产损失评估 |
inspection_report | 生成检验报告提示 | inspectionId, reportType? | 结构化检查报告 |
🌐 MCP服务器端点(全公共-无身份验证)
MCP协议端点
POST /mcp/messages-JSON-RPC 2.0 MCP协议通信GET /mcp/tools-列出具有模式的可用工具POST /mcp/tools/call-直接执行工具(绕过JSON-RPC)GET /mcp/prompts-列出可用的AI提示POST /mcp/prompts/get-生成AI提示内容GET /mcp/stream-服务器发送事件流接口POST /mcp/stream/tools/call-带有流式响应的执行工具
健康与状态
GET /health-全面的健康检查功能
📝 curl用法示例(匿名访问)
测试MCP工具-无需身份验证
基本工具操作
# List available tools with schemas
curl -X GET "http://127.0.0.1:3001/mcp/tools"
# Get all claims
curl -X POST "http://127.0.0.1:3001/mcp/tools/call" \
-H "Content-Type: application/json" \
-d '{"name":"get_claims","arguments":{}}'
# Get specific claim (by ID or claim number)
curl -X POST "http://127.0.0.1:3001/mcp/tools/call" \
-H "Content-Type: application/json" \
-d '{"name":"get_claim","arguments":{"claimId":"1"}}'
# Create new claim
curl -X POST "http://127.0.0.1:3001/mcp/tools/call" \
-H "Content-Type: application/json" \
-d '{
"name":"create_claim",
"arguments":{
"claimNumber":"CN202504991",
"policyNumber":"POL-HO-2025-003",
"policyHolderName":"Jane Doe",
"policyHolderEmail":"jane.doe@email.com",
"property":"789 Oak Street, Portland, OR 97205",
"dateOfLoss":"2025-01-15T00:00:00Z",
"dateReported":"2025-01-16T10:30:00Z",
"status":"submitted",
"damageTypes":["fire_damage"],
"description":"Kitchen fire caused by electrical fault",
"estimatedLoss":25000
}
}'
# Update existing claim
curl -X POST "http://127.0.0.1:3001/mcp/tools/call" \
-H "Content-Type: application/json" \
-d '{
"name":"update_claim",
"arguments":{
"claimId":"1",
"status":"under_review",
"adjusterAssigned":"ADJ-001",
"notes":["Claim reviewed by adjuster", "Photos uploaded"]
}
}'检查操作
# Get all inspections
curl -X POST "http://127.0.0.1:3001/mcp/tools/call" \
-H "Content-Type: application/json" \
-d '{"name":"get_inspections","arguments":{}}'
# Get inspections for specific claim
curl -X POST "http://127.0.0.1:3001/mcp/tools/call" \
-H "Content-Type: application/json" \
-d '{"name":"get_inspections","arguments":{"claimId":"1"}}'
# Create new inspection
curl -X POST "http://127.0.0.1:3001/mcp/tools/call" \
-H "Content-Type: application/json" \
-d '{
"name":"create_inspection",
"arguments":{
"claimId":"1",
"taskType":"initial",
"priority":"high",
"scheduledDate":"2025-01-20T14:00:00Z",
"inspectorId":"inspector-001",
"instructions":"Assess roof damage from recent storm"
}
}'承包商和采购订单操作
# Get all contractors
curl -X POST "http://127.0.0.1:3001/mcp/tools/call" \
-H "Content-Type: application/json" \
-d '{"name":"get_contractors","arguments":{}}'
# Get contractors by specialty
curl -X POST "http://127.0.0.1:3001/mcp/tools/call" \
-H "Content-Type: application/json" \
-d '{"name":"get_contractors","arguments":{"specialty":"roofing"}}'
# Get preferred contractors only
curl -X POST "http://127.0.0.1:3001/mcp/tools/call" \
-H "Content-Type: application/json" \
-d '{"name":"get_contractors","arguments":{"isPreferred":"true"}}'
# Create new purchase order
curl -X POST "http://127.0.0.1:3001/mcp/tools/call" \
-H "Content-Type: application/json" \
-d '{
"name":"create_purchase_order",
"arguments":{
"claimId":"1",
"contractorId":"contractor-001",
"workDescription":"Emergency roof repair following storm damage",
"lineItems":[
{
"description":"Asphalt shingles (architectural grade)",
"quantity":20,
"unitPrice":45.50,
"category":"materials"
},
{
"description":"Professional installation and cleanup",
"quantity":8,
"unitPrice":125.00,
"category":"labor"
}
],
"notes":["Urgent repair needed", "Weather permitting"]
}
}'
# Get purchase order details
curl -X POST "http://127.0.0.1:3001/mcp/tools/call" \
-H "Content-Type: application/json" \
-d '{"name":"get_purchase_order","arguments":{"poId":"po-uuid-here"}}'检查员操作
# Get all inspectors
curl -X POST "http://127.0.0.1:3001/mcp/tools/call" \
-H "Content-Type: application/json" \
-d '{"name":"get_inspectors","arguments":{}}'
# Get inspectors by specialization
curl -X POST "http://127.0.0.1:3001/mcp/tools/call" \
-H "Content-Type: application/json" \
-d '{"name":"get_inspectors","arguments":{"specialization":"Roofing"}}'
# Get specific inspector by ID
curl -X POST "http://127.0.0.1:3001/mcp/tools/call" \
-H "Content-Type: application/json" \
-d '{"name":"get_inspector","arguments":{"inspectorId":"inspector-001"}}'AI提示
# List available prompts
curl -X GET "http://127.0.0.1:3001/mcp/prompts"
# Generate claims analysis prompt
curl -X POST "http://127.0.0.1:3001/mcp/prompts/get" \
-H "Content-Type: application/json" \
-d '{
"name":"claims_analysis",
"arguments":{
"claimId":"1",
"analysisType":"damage_assessment"
}
}'MCP JSON-RPC协议
# Standard MCP protocol communication
curl -X POST "http://127.0.0.1:3001/mcp/messages" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"method":"tools/list",
"id":1
}'
# Execute tool via JSON-RPC
curl -X POST "http://127.0.0.1:3001/mcp/messages" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"method":"tools/call",
"params":{"name":"get_claims","arguments":{}},
"id":1
}'健康和状态
# Comprehensive health check
curl -X GET "http://127.0.0.1:3001/health"⚙️ 环境配置
开发环境(.env)
创建 .env 根目录中的文件:
# Server Configuration
SERVER_BASE_URL=http://127.0.0.1:3001
NODE_ENV=development
LOG_LEVEL=debug
PORT=3001
# CORS Configuration - Add additional allowed origins
ADDITIONAL_ALLOWED_ORIGINS=http://localhost:6274,http://localhost:3000
# Azure Storage Configuration (Local Azurite)
AZURE_STORAGE_CONNECTION_STRING="DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;"
生产环境
对于Azure部署,请使用Azure应用配置或环境变量:
# Production Azure Storage
AZURE_STORAGE_CONNECTION_STRING="DefaultEndpointsProtocol=https;AccountName=yourprodaccount;AccountKey=...;EndpointSuffix=core.windows.net"
# Production Server Settings
NODE_ENV=production
LOG_LEVEL=info
PORT=3001可用配置选项
| 变量 | 描述 | 默认值 | 必填 |
|---|---|---|---|
PORT | 服务器端口号 | 3001 | 没有 |
NODE_ENV | 环境模式 | development | 没有 |
LOG_LEVEL | 日志记录级别 | info | 没有 |
AZURE_STORAGE_CONNECTION_STRING | 存储连接 | Azurite本地 | 否 |
ADDITIONAL_ALLOWED_ORIGINS | 额外的CORS来源 | 无 | 无 |
🚀 可用的NPM脚本
该项目包括用于所有开发和部署任务的全面npm脚本:
开发脚本
# Build and compilation
npm run build # Compile TypeScript to JavaScript
npm run clean # Remove dist directory
npm run prebuild # Auto-runs clean before build
# Local development servers
npm run start:azurite # Start Azure Storage Emulator
npm run start:mcp-http # Start MCP HTTP server
npm start # Start Azure Functions (alternative mode)
# Data initialization
npm run init-data # Load sample data (development)
npm run init-data-prod # Load data to production Azure Storage测试和质量
# Testing
npm test # Run Jest test suite
npm run test:watch # Run tests in watch mode
npm run test:coverage # Generate coverage report
# Code quality
npm run lint # Run ESLint
npm run lint:fix # Fix linting issues automaticallyMCP检查员和调试
# Development inspector (local tunnel)
npm run inspector # Open MCP Inspector (dev tunnel)
npm run inspector:dev # Start inspector with auto-reload
# Production inspector (deployed server)
npm run inspector-prod # Test production deploymentVS代码任务集成
该项目包括预配置的VS Code任务:
- 启动Azure功能 (
Ctrl+Shift+P→Tasks: Run Task) - 启动MCP HTTP服务器 (后台任务)
- 打开MCP检查器 (取决于MCP服务器)
- MCP开发人员与检查员 (联合开发)
📊 包含样本数据
该项目包括所有实体的全面、真实的样本数据:
📋 保险索赔(2个样本)
- 风暴灾害:恶劣天气造成的屋顶损坏
- 盗窃:盗窃电子产品和珠宝
- 完整的投保人信息、损害评估和索赔历史
🔍 检验任务(2个样本)
- 屋顶检查:风暴破坏评估,附照片
- 安全评估:盗窃后财产评估
- 检查员任务、时间表和详细调查结果
🔨 承包商(3个简介)
- 汤普森屋面解决方案:风暴破坏专家
- 太平洋水资源恢复:水灾专家
- 安全家居解决方案:安全系统安装程序
- 完整的业务概况,包括评级和专业化
📄 采购订单(2个样本)
- 屋顶材料:8 500美元紧急屋顶维修
- 安全设备\*安保系统升级3 200美元
- 包含材料、人工和设备成本的行项目详细信息
� 检查员(4个简介)
- 莎拉·约翰逊:屋顶和风暴损坏专家(INS-12345)
- 迈克·罗德里格斯:水损害和管道专家(INS-67890)
- 陈丽莎:火灾损害、烟雾评估和电气专家(INS-11111)
- 戴维·威廉姆斯:结构、基础和一般检查专家(INS-22222)
- 完整的联系信息、许可证号码和专业领域
示例数据结构
{
"claimNumber": "CN202504990",
"policyNumber": "POL-HO-2025-001",
"policyHolderName": "John Smith",
"policyHolderEmail": "john.smith@email.com",
"property": "123 Main Street, Seattle, WA 98101",
"dateOfLoss": "2025-01-10T08:00:00Z",
"dateReported": "2025-01-10T14:30:00Z",
"status": "under_review",
"damageTypes": ["storm_damage", "roof_damage"],
"description": "Severe storm caused significant roof damage...",
"estimatedLoss": 15000,
"adjusterAssigned": "ADJ-12345"
}数据初始化
# Initialize all sample data
npm run init-data
# For production Azure Storage
npm run init-data-prod🚀 生产部署:Azure容器应用
部署的先决条件
- 已安装Azure CLI(
az login) - Docker桌面正在运行
- 启用了容器应用程序的Azure订阅
快速部署脚本
# Set deployment variables
RESOURCE_GROUP="rg-mcp-claims-server"
LOCATION="eastus"
CONTAINER_APP_NAME="claims-mcp-app"
CONTAINER_ENV_NAME="mcp-environment"
STORAGE_ACCOUNT="claimsmcpstorage"
CONTAINER_REGISTRY="claimsmcpregistry"
# 1. Create resource group
az group create --name $RESOURCE_GROUP --location $LOCATION
# 2. Create Container Apps environment
az containerapp env create \
--name $CONTAINER_ENV_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION
# 3. Create storage account
az storage account create \
--name $STORAGE_ACCOUNT \
--location $LOCATION \
--resource-group $RESOURCE_GROUP \
--sku Standard_LRS
# 4. Create container registry
az acr create \
--resource-group $RESOURCE_GROUP \
--name $CONTAINER_REGISTRY \
--sku Basic \
--admin-enabled true
# 5. Build and push Docker image
docker buildx build --platform linux/amd64 -f Dockerfile.azure -t $CONTAINER_REGISTRY.azurecr.io/claims-mcp:latest .
az acr login --name $CONTAINER_REGISTRY
docker push $CONTAINER_REGISTRY.azurecr.io/claims-mcp:latest
# 6. Deploy container app
az containerapp create \
--name $CONTAINER_APP_NAME \
--resource-group $RESOURCE_GROUP \
--environment $CONTAINER_ENV_NAME \
--image $CONTAINER_REGISTRY.azurecr.io/claims-mcp:latest \
--target-port 3001 \
--ingress 'external' \
--min-replicas 1 \
--max-replicas 5 \
--cpu 0.5 \
--memory 1.0Gi
# 7. Configure registry authentication (CRITICAL - prevents ImagePullUnauthorized error)
# RECOMMENDED: Use managed identity (no password needed)
az containerapp registry set \
--name $CONTAINER_APP_NAME \
--resource-group $RESOURCE_GROUP \
--server $CONTAINER_REGISTRY.azurecr.io \
--identity system
# ALTERNATIVE: Use admin credentials (less secure)
# az containerapp registry set \
# --name $CONTAINER_APP_NAME \
# --resource-group $RESOURCE_GROUP \
# --server $CONTAINER_REGISTRY.azurecr.io \
# --username $CONTAINER_REGISTRY \
# --password $(az acr credential show --name $CONTAINER_REGISTRY --query "passwords[0].value" -o tsv)重要:部署后,配置环境变量和注册表身份验证:
# Set environment variables for production
az containerapp update \
--name $CONTAINER_APP_NAME \
--resource-group $RESOURCE_GROUP \
--set-env-vars \
"NODE_ENV=production" \
"AZURE_STORAGE_CONNECTION_STRING=$(az storage account show-connection-string --name $STORAGE_ACCOUNT --resource-group $RESOURCE_GROUP --query connectionString -o tsv)"使用托管身份(推荐)
要避免传递密码并使用Azure托管身份,请执行以下操作:
# 1. Enable system-assigned managed identity
az containerapp identity assign \
--name $CONTAINER_APP_NAME \
--resource-group $RESOURCE_GROUP \
--system-assigned
# 2. Grant the managed identity pull permission to the registry
PRINCIPAL_ID=$(az containerapp identity show --name $CONTAINER_APP_NAME --resource-group $RESOURCE_GROUP --query principalId -o tsv)
az role assignment create \
--assignee $PRINCIPAL_ID \
--scope $(az acr show --name $CONTAINER_REGISTRY --query id -o tsv) \
--role AcrPull
# 3. Update container app to use managed identity for registry
az containerapp registry set \
--name $CONTAINER_APP_NAME \
--resource-group $RESOURCE_GROUP \
--server $CONTAINER_REGISTRY.azurecr.io \
--identity system🔍 测试与监控
健康检查和监测
# Comprehensive server health check
curl -X GET "http://127.0.0.1:3001/health"
# Response includes:
{
"status": "healthy",
"timestamp": "2025-11-09T10:30:00.000Z",
"oauth": "disabled", // or "enabled" if OAuth configured
"capabilities": ["tools", "prompts"],
"version": "1.0.0",
"environment": "development",
"storage": "connected",
"endpoints": {
"mcp": "/mcp/messages",
"tools": "/mcp/tools",
"prompts": "/mcp/prompts",
"stream": "/mcp/stream"
}
}MCP检查器集成
该项目包括对交互式测试的完整MCP Inspector支持:
开发测试(本地)
# Start server first
npm run start:mcp-http
# In another terminal, start inspector
npm run inspector
# Opens: http://localhost:6274生产测试(已部署)
# Test deployed server
npm run inspector-prod
# Connects to: https://claims-mcp-app.yellowcliff-c66c6908.eastus.azurecontainerapps.io检查器功能
- 交互式工具测试:执行所有具有实时结果的MCP工具
- 模式验证:基于工具模式的自动输入验证
- 响应格式:打印精美的JSON响应
- 错误处理:清除错误消息和调试信息
- 快速测试:交互式生成和测试AI提示
日志记录和调试
# View server logs in real-time
tail -f logs/server.log
# Debug mode with verbose logging
LOG_LEVEL=debug npm run start:mcp-http
# Check Azurite storage logs
tail -f azurite/debug.log性能监控
- 响应时间:所有端点都包含计时信息
- 请求日志记录:全面的请求/响应日志记录
- 错误跟踪:使用堆栈跟踪记录结构化错误
- 存储指标:Azure表存储操作指标
🧪 本地开发和测试
完整的开发工作流程
- 初始设置 (一次)
git clone
cd zava-mcp-server
npm install
npm run build- 启动开发环境 (3个端子)
# Terminal 1: Storage emulator
npm run start:azurite
# Terminal 2: Initialize data and start server
npm run init-data
npm run start:mcp-http
# Terminal 3: MCP Inspector (optional)
npm run inspector- 开发周期
# Make changes to TypeScript files
# Rebuild and restart server
npm run build
npm run start:mcp-http
# Or use VS Code tasks for integrated development测试所有功能
# Test all tools programmatically
npm test
# Interactive testing with Inspector
npm run inspector
# Manual API testing
curl -X GET "http://127.0.0.1:3001/mcp/tools"
curl -X POST "http://127.0.0.1:3001/mcp/tools/call" \
-H "Content-Type: application/json" \
-d '{"name":"get_claims","arguments":{}}'数据库和存储管理
# Reset local data
rm -rf azurite/__blobstorage__/*
rm -rf azurite/__queuestorage__/*
rm azurite/*.json
npm run init-data
# Backup local data
cp -r azurite/ azurite-backup/
# View storage contents (use Azure Storage Explorer or)
# Connect to: http://127.0.0.1:10002/devstoreaccount1📚 其他资源和文档
官方文件
- 模型上下文协议规范 -完整的MCP协议文档
- MCP SDK文档 -TypeScript SDK指南
- Azure表存储API -存储服务参考
- Azure容器应用 -部署平台文档
开发工具
- MCP检查员 -交互式MCP测试工具
- Azure存储资源管理器 -Azure存储的图形用户界面
- 蓝铜矿 -本地Azure存储模拟器
- VS代码Azure扩展 -Azure开发工具
API和集成指南
- Express.js文档 -Web框架参考
- Zod验证 -模式验证库
- Jest测试框架 -测试文件
- TypeScript手册 -语言参考
🔒 安全注意事项
开发安全(匿名模式)
- 开放获取:所有端点都可以通过设计公开访问
- 本地网络:服务器仅绑定到本地主机(127.0.0.1)
- CORS政策:配置为通用开发源
- 输入验证:所有输入均已Zod模式验证
- 无敏感数据:样本数据不包含真实的个人信息
生产安全建议(即将发布)
- 认证:使用Microsoft Entra ID启用OAuth 2.0
- 授权:实现基于角色的访问控制(RBAC)
- 速率限制:配置Azure Front Door或API管理
- 秘密管理:使用Azure密钥库进行敏感配置
- 网络安全:部署在具有NSG的私有虚拟网络中
- 数据加密:为Azure表存储启用静态加密
- 监控:启用Azure安全中心和日志记录
安全标头和策略
// Recommended security middleware for production
app.use(helmet({
contentSecurityPolicy: {
directives: {
defaultSrc: ["'self'"],
scriptSrc: ["'self'", "'unsafe-inline'"],
styleSrc: ["'self'", "'unsafe-inline'"]
}
},
hsts: {
maxAge: 31536000,
includeSubDomains: true,
preload: true
}
}));数据隐私和合规
- GDPR合规性:实现数据主体权限(删除、导出)
- 数据保留:配置自动数据清理策略
- 审计日志:记录所有数据访问和修改
- 匿名化:在非生产环境中删除或哈希PII
漏洞管理
- 依赖关系扫描:使用
npm audit和Dependabot - 集装箱扫描:扫描Docker镜像以查找漏洞
- 代码分析:使用SonarQube或类似的静态分析工具
- 渗透测试:定期安全评估
📝 变更日志和版本控制
版本1.0.0(当前)
- ✅ 完成MCP服务器的实施
- ✅ 用于索赔和检查的完整CRUD操作
- ✅ AI提示生成功能
- ✅ Azure表存储集成
- ✅ 用Azurite进行当地开发
- ✅ 生产Azure容器应用程序部署
- ✅ 全面的测试覆盖率
- ✅ MCP检查器集成
- ✅ 匿名访问模式(开发)
计划功能(v1.1.0)
- 🔄 通过服务器发送事件进行实时通知
- 🔄 增强的承包商管理工具
- 🔄 文件上传和管理
- 🔄 高级报告和分析
- 🔄 Webhook支持集成
未来路线图(v2.0.0)
- 🔮 用于欺诈检测的机器学习集成
- 🔮 高级工作流自动化
- 🔮 多租户架构
- 🔮 GraphQL API端点
- 🔮 移动应用支持
🤝 贡献
开发指南
- 克隆该仓库 并创建一个特征分支
- 遵循TypeScript的最佳实践 并保持类型安全
- 编写测试 所有新功能
- 更新文档 对于任何API更改
- 跑linting 并在提交前解决所有问题
- 使用MCP检查员进行测试 以确保兼容性
代码质量标准
- TypeScript:启用了严格模式,并进行了全面的类型检查
- ESLint:配置了推荐规则和自动修复
- 更漂亮:整个项目的代码格式一致
- 玩笑:单元和集成测试覆盖率>90%
- 文档:所有公共API的JSDoc注释
拉取请求流程
# Development workflow
git checkout -b feature/your-feature-name
npm run build
npm test
npm run lint:fix
git commit -m "feat: your descriptive commit message"
git push origin feature/your-feature-name
# Create pull request on GitHub📄 许可和法律
MIT许可证 -请参阅 许可证 文件以获取完整详细信息。
本项目按原样提供,用于教育和发展目的。样本保险数据是虚构的,不能代表真实的索赔或保单。
第三方许可证
- @模型上下文协议/sdk:MIT许可证
- @azure/数据表:MIT许可证
- 表达:MIT许可证
- 黄道带:MIT许可证
- 看 获取完整的依赖关系列表
