您的 MCP 服务器可以部署到 Azure 应用服务以获得云访问和可扩展性。
最简单的部署方式是通过自动化的 GitHub Actions:
将此仓库 分叉到您的 GitHub 账户中
获取 Azure 发布配置文件:
az webapp deployment list-publishing-profiles -n your-app-name -g your-resource-group --xml
添加 GitHub 密钥:
AZURE_WEBAPP_PUBLISH_PROFILE自动部署:
一个 模型上下文协议 (MCP) 服务器,通过交互式参数收集和上下文工作流自动化来展示高级 AI 代理的能力,包括官方 MCP 引发和智能参数引导模式。
Vaali 使 AI 助手(如 Claude)变得更聪明和更有帮助,通过提供:
简单示例:
您: "天气怎么样?"
带有引发能力的客户端:
✨ 出现一个交互表单询问位置
📍 您输入 "西雅图,华盛顿州"
🌤️ "西雅图当前天气:45°F,多云"
标准客户端:
📋 "我可以帮助查询天气!请提供您的位置:
• 城市:'西雅图','伦敦','东京'
• 带区域的城市:'奥斯汀,德克萨斯州','巴黎,法国'
或输入任何城市名称..."
这是 Vaali MCP 服务器在 Claude 桌面上的引发操作:

截图展示了 Claude 桌面与 Vaali MCP 服务器的交互式参数收集,演示了无缝的用户体验和混合引发模式。
本项目实现了 官方 MCP 引发和智能参数引导模式,展示了交互式参数收集在 AI 代理工作流中的全面方法。
🔥 官方 MCP 引发(新):在工具执行过程中收集缺失参数的交互工作流
server.elicitInput() 向客户端请求结构化数据📋 参数引导模式:通过智能错误处理和上下文引导实现普遍兼容性的方法
# 克隆并设置
git clone <repository-url>
cd vaali
# 安装依赖项
npm install
# 构建项目
npm run build
# 测试引发概念(教育性演练)
npm run test:advanced-concept
# 使用真实 MCP 客户端测试
npm run test:working-advanced
# 运行所有测试
npm run test:all
# 为 Claude 桌面启动服务器(stdio 模式)
npm run start:stdio
# 以 SSE 传输启动服务器(用于调试)
npm run start:sse
添加到您的 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"
}
}
}
注意: 使用绝对路径以确保可靠运行。替换为您实际的项目路径。
然后尝试自然语言命令:
"东京的天气怎么样?"
"生成爱丽丝的天气报告"
"计算 25 * 4 + 10"
"测试引发工具"
此服务器展示了所有四个 MCP 能力协同工作的示例:
| 调试模式 | 目的 | 如何使用 |
|---|---|---|
| AI 工具构建者 | 使用 AI 工具包测试 | F5 → "在 AI 工具构建者中调试" |
| MCP 检查器 | 协议调试 | F5 → "在检查器中调试 SSE" |
| STDIO 模式 | 客户端集成 | F5 → "在检查器中调试 STDIO" |
代替僵硬的表单,AI 工具可以在对话过程中自然地收集信息——例如,在询问天气时询问您的位置,或在发送消息时询问邮件主题。
实现了两种互补的方法:官方 MCP 引发,支持丰富交互表单的客户端,以及通过智能错误处理和提示实现普遍兼容性的参数引导。
展示了结构化协议的渐进增强——工具自动检测客户端能力,并提供最佳用户体验(交互表单),同时保持普遍兼容性(引导回退)。展示了如何在不破坏现有实现的情况下进化协议。
✅ 完整的 MCP 实现,具有所有四种能力(资源、工具、提示、引发)
✅ 交互式工作流工具,在执行过程中收集参数
✅ 混合兼容性 —— 适用于引发能力和标准客户端
✅ 全面的测试套件,展示交互式工作流
✅ Claude 桌面集成,支持自然语言使用
✅ 学习导向的服务器架构,适合教育和实验
✅ MIT 许可 —— 开源且准备接受贡献
基于 MCP SDK 1.7.0,旨在教学目的展示交互式 AI 工具的能力。
如果您需要先创建 Azure 资源,可以使用 Bicep/ARM 模板:
# 创建资源组
az group create --name vaali-mcp-rg --location centralus
# 使用 Bicep 部署基础设施
az deployment group create \
--resource-group vaali-mcp-rg \
--template-file infra/main.bicep \
--parameters webAppName=your-unique-app-name
# 或使用 ARM 模板部署
az deployment group create \
--resource-group vaali-mcp-rg \
--template-file infra/azuredeploy.json \
--parameters webAppName=your-unique-app-name
| 层级 | 使用场景 | 相对成本 |
|---|---|---|
| B1 基础 | 学习、演示 | 最低 ✅ |
| B2 基础 | 团队开发 | 2x B1 |
| S1 标准 | 生产 | ~5x B1 |
⚠️ 注意: 应用服务全天候运行。请查看您所在地区的 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"
}
}
}
}
测试连接:
对于本地 SSE 测试:
# 在 SSE 模式下启动服务器
npm run start:sse
# 测试连接
curl http://localhost:3001/sse
部署到 Azure 后,您的服务器将在以下地址可用:
https://vaali-mcp-server.azurewebsites.nethttps://vaali-mcp-server.azurewebsites.net/sse对于支持 SSE 传输的 MCP 客户端:
// 示例:连接到 Azure 部署的 Vaali 服务器
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 应用:
<!-- 从浏览器直接连接 SSE -->
<script>
const eventSource = new EventSource('https://your-app-name.azurewebsites.net/sse');
eventSource.onmessage = function(event) {
console.log('MCP 消息:', event.data);
};
</script>
# 测试基本功能
npm run test:advanced-concept
# 使用 Claude 桌面测试
# 1. 配置 Claude 桌面(参见上文)
# 2. 在 Claude 中:"东京的天气怎么样?"
# 3. 在 Claude 中:"测试引发工具"
# 健康检查
curl https://your-app-name.azurewebsites.net/sse
# 测试 MCP 能力
curl -X POST https://your-app-name.azurewebsites.net/messages \
-H "Content-Type: application/json" \
-d '{"jsonrpc