Vaali MCP 服务器
☁️ Azure 部署
您的MCP服务器可以部署到Azure应用服务,以实现云访问和扩展性。
🚀 表示火箭或快速上升、飞速前进的意思。 GitHub Actions 部署(推荐)
最简单的部署方式是通过GitHub Actions自动化进行:
- 为这个仓库创建分支 到你的GitHub账户
- 获取Azure发布配置文件:
az webapp deployment list-publishing-profiles -n your-app-name -g your-resource-group --xml- 添加GitHub密钥:
- 前往你的克隆仓库 → 设置 → 秘密和变量 → 操作(或“Actions”,根据上下文可译为“工作流”) - 点击“新建仓库密钥” - 名字: AZURE_WEBAPP_PUBLISH_PROFILE - 值:粘贴第2步中的XML输出
- 自动部署:
- ✅ 推送到主分支 → 自动构建和部署 - ✅ TypeScript 编译 → 正确处理构建过程 - ✅ 已准备好投入生产 → 自动配置环境
🎯(靶心) 自动化的作用:
- ✅ 正确地将TypeScript编译为JavaScript
- ✅ 安装生产依赖项
- ✅ 部署到 Azure 应用服务
- ✅ 配置Node.js环境
- ✅ 提供部署状态和URL
A. 模型上下文协议(MCP)服务器 该系统通过交互式参数收集和上下文工作流自动化,展示了高级人工智能代理的能力,同时具备官方MCP(可能是指某种特定的配置或参数管理框架)引导和智能参数指导功能。
📑 目录
- 一键式Azure部署
- 这是什么?
- 技术创新
- 快速入门
- 完整的Azure部署指南
- 配置指南
- 完整的MCP(多控制器协议/管理控制平面等,具体含义根据上下文确定)实施
- 文档
- VS Code 集成
- 这之所以特别
- 研究应用
- 项目状态
🎯 这是什么?
“Vaali”在中文中通常被翻译为“瓦利”或保持原音译“瓦利”,具体翻译可能根据上下文或文化背景有所调整,但直接音译是较为常见的做法。 开发人工智能助手(如Claude) 更聪明且更有帮助 通过给予他们:
- 🔧(螺丝刀或维修工具的符号,常用于表示需要修理或维护) 工具 他们可以使用(天气数据、计算工具、文本分析工具)
- 📋 代表一个清单或待办事项的符号,可翻译为“清单”或“待办事项”。 提示 指导复杂工作流程
- 📁 文件夹 资源 根据您的数据和偏好
- 机器人 交互式参数收集 智能地请求缺失信息
简单示例:
You: "What's the weather like?"
With Elicitation-Capable Client:
✨ Interactive form appears asking for location
📍 You enter "Seattle, WA"
🌤️ "Current weather in Seattle: 45°F, Cloudy"
With Standard Client:
📋 "I can help with weather! Please provide your location:
• City: 'Seattle', 'London', 'Tokyo'
• City with region: 'Austin, TX', 'Paris, France'
Or enter any city name..."📸 实际应用中的Real Claude桌面版需求激发演示
以下是Vaali MCP服务器在Claude Desktop中的诱因(或触发条件)展示方式:
Claude Desktop Elicitation Screenshot
*截图展示了Claude Desktop与Vaali MCP服务器进行交互式参数收集的过程——体现了混合引导模式下的无缝用户体验。*
🧠 技术创新(面向研究人员)
这个项目实施了 官方MCP(可能指某种模型或系统配置)提取与智能参数引导模式两者兼备展示了在AI代理工作流中全面的交互式参数收集方法。
混合方法:两种互补的方法
- 🔥 官方MCP(可能指某种特定计划或项目的缩写,具体需根据上下文确定)需求征集 (新增):在工具执行过程中收集缺失参数的交互式工作流
- 服务器直接使用(某种方式/协议)向客户端请求结构化数据 server.elicitInput() - 在支持客户端中实现JSON模式驱动的表单和对话框 - 接受/拒绝/取消响应模型,支持即时参数收集 - 标准化协议功能,提升用户体验
- 📋 参数指导模式利用现有MCP功能实现通用兼容方法
- 通过智能错误处理和上下文引导,与任何MCP客户端兼容工作 - 丰富的上下文帮助、示例和智能建议 - 客户端智能用于错误恢复和偏好学习
关键技术贡献
- 🚀 交互式工作流逐步启动执行并收集缺失参数的工具
- 🔄 混合兼容性相同的工具适用于能够进行引出(elicitation)的标准MCP客户端和普通MCP客户端
- 🛡️ 优雅的回退机制自动检测客户端能力并采用相应的响应模式
- 🎯 渐进增强为有能力的客户提供增强体验,为所有人提供通用功能
- 📊 全面实施配备齐全资源、工具、提示和引导功能的完整MCP服务器
研究意义
- 交互式人工智能工作流展示了工具如何在执行过程中无缝收集参数
- 协议进化展示了官方MCP(可能是指某种方法、策略或协议,具体需根据上下文确定)的提取过程与现有参数指导并行工作的场景
- 通用兼容性单一实现适用于所有MCP客户端功能
- 用户体验从错误信息到交互式表单的渐进式增强
- 混合架构两全其美——标准化引导+通用备用方案
🚀 快速入门
先决条件
- Node.js 18及以上版本
- VS Code(推荐)
安装与测试
# Clone and setup
git clone
cd vaali
# Install dependencies
npm install
# Build the project
npm run build
# Test elicitation concepts (educational walkthrough)
npm run test:advanced-concept
# Test with real MCP clients
npm run test:working-advanced
# Run all tests
npm run test:all
# Start server for Claude Desktop (stdio mode)
npm run start:stdio
# Start server with SSE transport (for debugging)
npm run start:sseClaude 桌面集成
在您的Claude桌面配置文件中添加:
Windows: %APPDATA%\Claude\claude_desktop_config.json\ macOS: ~/Library/Application Support/Claude/claude_desktop_config.json\ Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"vaali": {
"command": "node",
"args": ["C:/absolute/path/to/vaali/lib/src/index.js", "stdio"],
"cwd": "C:/absolute/path/to/vaali"
}
}
}注: 使用绝对路径以确保可靠运行。请替换为您的实际项目路径。
然后尝试使用自然语言指令:
"What's the weather in Tokyo?"
"Generate a weather report for Alice"
"Calculate 25 * 4 + 10"
"Test the elicitation tool"🏗️ 完成MCP(可能指某种管理系统、控制协议或特定项目)的实施
这台服务器展示了所有四种MCP功能协同工作的能力:
✅ 资源(静态数据)
- 配置应用程序配置和设置
- 样本数据用户资料和偏好设置
- 读我(或:使用说明/注意事项)项目文档
✅ 工具(交互功能)
- 天气工具当前状况、天气预报、位置查询
- 分析工具文本分析、计算、数据处理
- 引出工具(或“启发工具”)交互式参数收集测试
✅ 提示(工作流模板)
- 天气报告生成器多步骤个性化报告
- 代码审查结构化审查清单
- 文档撰写员全面的文档生成
✅ 引导(交互式参数收集)
- 官方MCP(多主体协同规划/多主体协同项目等,具体含义需根据上下文确定)需求挖掘JSON模式驱动的交互式表单
- 参数指导全面兼容,提供丰富的上下文帮助
- 混合实施为实现最大兼容性而自动回退
📚 了解更多
对于用户和初学者
- 文件/CLAUDE桌面指南.md - 完整的Claude Desktop使用指南
- docs/README.md(可翻译为):文档/README.md(说明文件/入门指南文件) - 文档索引和导航
对于开发者
- docs/IMPLEMENTATION_COMPREHENSIVE_GUIDE.md 翻译为中文是:docs/实施综合指南.md - 完整的技术实现
- 文件/docs/test-documentation.md(可译为:文档/docs/测试文档说明.md,但通常文件名不翻译,保持原样) - 测试套件文档
对于研究人员
- docs/ELICITATION_COMPREHENSIVE_GUIDE.md 翻译为中文是:docs/需求引出全面指南.md - 引导模式与最佳实践
- docs/高级实现概要.md - 技术架构概述
🎮 VS Code 集成
| 调试模式 | 用途 | 使用方法 |
|---|---|---|
| 代理构建器 | 使用AI工具包进行测试 | F5 → “在Agent Builder中调试” |
| MCP 检查器 | 协议调试 | F5 → “在检查器中调试SSE” |
| STDIO 模式 | 客户端集成 | F5 → “在Inspector中调试STDIO” |
🔬 使这个特别的原因是什么
对于本科生: 交互式人工智能工具
AI工具可以超越固定的模式 自然地收集信息 在对话过程中——比如当你询问天气时要求获取你的位置,或者在发送信息时要求获取你的邮件主题。
对于研究生: 双模式参数收集
实施(方案/措施) 两种互补的方法官方MCP(管理控制协议)交互式表单提取功能,为支持客户端提供丰富交互体验,同时具备通用参数指导,通过智能错误处理和提示,与任何MCP客户端兼容。
对于博士研究生: 混合协议架构
证明;展示 渐进增强 在结构化协议中——工具自动检测客户端能力,并在保持通用兼容性(通过指导回退机制)的同时,提供最佳用户体验(交互式表单)。展示了如何在不破坏现有实现的情况下演进协议。
🧪 研究应用
- 交互式人工智能工作流程工具如何在执行过程中无缝收集参数
- 协议增强在保持兼容性的前提下,逐步扩展MCP的功能
- 用户体验设计从错误信息到交互式表单再到自然对话
- 客户端-服务器架构能力检测与优雅降级模式
- 混合系统设计将标准化协议与智能行为相结合
🎯 项目状态
✅ 完整的MCP(可能指某种特定系统或协议的缩写,如“多通道处理”等,具体需根据上下文确定)实现 具备所有四种能力(资源、工具、提示、引出)\ ✅ 交互式工作流工具 在执行过程中收集参数\ ✅ 混合兼容性 - 与能够进行引出(或信息提取)的标准客户端协同工作\ ✅ 全面的测试套件 展示交互式工作流程\ ✅ Claude Desktop 集成 使用自然语言\ ✅ 以学习为中心 用于教育和实验的服务器架构\ ✅ 麻省理工学院(MIT)授权 - 开源且欢迎贡献
基于MCP SDK 1.7.0构建,展示用于学习目的的交互式AI工具功能。
☁️ Azure 基础设施设置
如果您需要先创建 Azure 资源,可以使用 Bicep/ARM 模板:
🏗️ 这个符号通常代表“建筑工地”或“正在施工中”,在中文中可以翻译为“正在建造中”或“建筑工地”。 手动基础设施创建:
# Create resource group
az group create --name vaali-mcp-rg --location centralus
# Deploy infrastructure using Bicep
az deployment group create \
--resource-group vaali-mcp-rg \
--template-file infra/main.bicep \
--parameters webAppName=your-unique-app-name
# Or deploy using ARM template
az deployment group create \
--resource-group vaali-mcp-rg \
--template-file infra/azuredeploy.json \
--parameters webAppName=your-unique-app-name� 定价层级:
| 类别 | 使用场景 | 相对成本 |
|---|---|---|
| B1 基础 | 学习、演示 | 最低的 ✅ |
| B2 基础级 | 团队建设 | 2倍B1(或译为:B1的2倍) |
| S1 标准 | 生产 | ~5倍B1 |
⚠️ 注意: App Service全天候运行。检查当前状态 Azure定价 适用于您的地区。
🔧 配置指南
📱 本地开发环境设置
对于Claude桌面集成(推荐用于开发):
- 构建项目:
npm install
npm run build- 配置Claude桌面版:
Windows: 编辑 %APPDATA%\Claude\claude_desktop_config.json\ macOS:(可翻译为)苹果电脑操作系统 编辑 ~/Library/Application Support/Claude/claude_desktop_config.json\ Linux: 编辑 ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"vaali": {
"command": "node",
"args": ["C:/absolute/path/to/vaali/lib/src/index.js", "stdio"],
"cwd": "C:/absolute/path/to/vaali",
"env": {
"NODE_ENV": "development"
}
}
}
}- 测试连接:
- 重启Claude桌面版 - 尝试问:“你们有哪些可用的工具?” - 尝试:“测试降雨预测的引出工具”
用于本地SSE测试:
# Start server in SSE mode
npm run start:sse
# Test connection
curl http://localhost:3001/sse☁️ Azure 生产环境设置
在部署到Azure后,您的服务器将可通过以下地址访问:
- 主要网址:
https://vaali-mcp-server.azurewebsites.net - SSE 端点:
https://vaali-mcp-server.azurewebsites.net/sse
对于支持SSE传输的MCP客户端:
// Example: Connecting to Azure-deployed Vaali server
const { SSEClientTransport } = require('@modelcontextprotocol/sdk/client/sse.js');
const { Client } = require('@modelcontextprotocol/sdk/client/index.js');
const client = new Client(
{
name: "vaali-client",
version: "1.0.0"
},
{
capabilities: {}
}
);
const transport = new SSEClientTransport(
new URL('https://your-app-name.azurewebsites.net/sse')
);
await client.connect(transport);对于Web应用程序:
const eventSource = new EventSource('https://your-app-name.azurewebsites.net/sse');
eventSource.onmessage = function(event) {
console.log('MCP Message:', event.data);
};
🔀 传输协议解析
STDIO 传输(本地)
- 用例: 与Claude桌面版的直接集成
- 其工作原理如下: 进程间通信
- 优点: 低延迟、安全、无网络开销
- 配置: Claude Desktop 配置文件
SSE 交通(Azure/网络)
- 用例: 基于Web的MCP客户端,云部署
- 工作原理: HTTP 服务器发送事件
- 优点: 能穿透防火墙,与网页兼容,可扩展
- 配置: HTTP 端点 URL
🧪 测试您的部署
本地测试(STDIO):
# Test basic functionality
npm run test:advanced-concept
# Test with Claude Desktop
# 1. Configure Claude Desktop (see above)
# 2. In Claude: "What's the weather in Tokyo?"
# 3. In Claude: "Test the elicitation tool"Azure 测试(SSE):
# Health check
curl https://your-app-name.azurewebsites.net/sse
# Test MCP capabilities
curl -X POST https://your-app-name.azurewebsites.net/messages \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "test", "version": "1.0.0"}}}'🔧 环境变量
本地开发:
NODE_ENV=development
TRANSPORT=stdioAzure 生产环境:
NODE_ENV=production
TRANSPORT=sse
PORT=3001
WEBSITE_NODE_DEFAULT_VERSION=18-lts
SCM_DO_BUILD_DURING_DEPLOYMENT=true🚀 快速入门示例
在Claude桌面版(本地)中尝试以下命令:
"What's the weather in Seattle?"
"Calculate 25 * 4 + 10"
"Analyze the sentiment of 'This is amazing!'"
"Generate a weather report for Alice"
"Test the elicitation tool for rain prediction"Azure 部署的 API 示例:
# Get weather (via SSE)
curl -X POST https://your-app.azurewebsites.net/messages \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "get_weather", "arguments": {"location": "Tokyo"}}}'
# Test elicitation
curl -X POST https://your-app.azurewebsites.net/messages \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "rain_prediction_with_elicitation", "arguments": {}}}'🎯 生产注意事项
安全:
- 在Azure部署中强制使用HTTPS
- 为网页访问配置了CORS(跨源资源共享)
- 日志中无敏感数据
演出
- B1 应用服务计划,适合中度使用
- 如有需要,提供自动扩展功能
- SSE(服务器发送事件)的持续连接
监测:
- 提供Application Insights集成
- 健康检查端点:
/sse - 通过Azure门户进行日志流式传输
成本优化:
- B1等级:基础费用约13美元/月
- 对于MCP请求,不收取额外费用
- 根据需要进行扩大/缩小规模
🌟 主要特点
- 🔄 混合引出法官方MCP(可能指某种特定的模型或参数配置)提取与通用参数指导均采用
- 📊 完全符合MCP(微软商业伙伴计划)规定资源、工具、提示和引出(信息)功能
- 🎯 渐进增强基于客户能力的最佳体验
- 🛡️ 全面兼容性与任何MCP客户端兼容
- 🧪 准备就绪,可用于研究学术与工业研究的全面实例
- 🚀 准生产就绪强大的错误处理和优雅的回退机制
🤝 贡献
欢迎投稿!本项目展示了先进的MCP(多路复用器/控制面板等,具体含义需根据上下文确定)模式,非常适合用于:
- 研究人员扩展诱发模式与协议研究
- 开发者添加新工具并提高客户端兼容性
- 学生了解交互式人工智能工作流程和协议设计
开发环境设置
# Development mode with hot reload
npm run dev:stdio
# Run tests continuously
npm run test:watch
# Debug with VS Code
Press F5 → Select debug configuration贡献领域
- 额外的引出模式和示例
- 展示参数收集功能的新交互式工具
- 客户端兼容性测试及改进
- 文档和教育内容
- 性能优化和错误处理
📄 许可证
此项目采用MIT许可证授权——详见 许可证 详情请见文件。
______________________________________________________________________
想知道交互式工作流程如何改变人工智能的交互方式吗? 跑 npm run test:advanced-concept 来一场教育性的导览吧!
