Azure函数创建触发器并绑定MCP服务器
 ](https://www.npmjs.com/package/azure-functions-templates-mcp-server) 
一个模型上下文协议(MCP)服务器,提供跨4种编程语言的即用型Azure函数模板,其中71个模板涵盖了所有主要的Azure服务绑定和触发器类型。模板包括完整的项目结构、配置文件,并遵循现代编程模式,以实现快速开发和部署。
目录
特性
多语言支持:C#(.NET隔离)、Java(Maven)、Python(v2模型)、TypeScript(Node.js v4)\ 完整模板:完整的项目结构,包括依赖关系、配置和最佳实践\ 现代模式:最新编程模型和Azure Functions运行时功能\ 丰富的类别:Web API、存储、数据库、流媒体、消息传递、AI/ML、分析\ 工具集成:内置支持VS Code Copilot、MCP Inspector和AI助手\ 打包分发:模板嵌入服务器,便于部署和离线使用
先决条件
- Node.js 18+(建议使用LTS):运行MCP服务器所需
- npm:包管理器(包含在Node.js中)
- MCP客户端:例如带有副驾驶的VS Code或MCP检查器
- Git:用于克隆存储库(如果从源构建)
安装
选项1:从npm安装(推荐)
全局安装已发布的包:
npm install -g azure-functions-templates-mcp-server或者在项目中本地安装:
npm install azure-functions-templates-mcp-server验证安装:
验证全局安装
npm list -g azure-functions-templates-mcp-server或验证本地安装
npm list azure-functions-templates-mcp-server或者检查可执行文件是否在PATH中可用
which azure-functions-templates-mcp-server运行烟雾测试以验证安装
npm run smoke或者运行探针测试
npm run probe选项2:从源代码构建
# Clone and build from source
git clone https://github.com/Azure/azure-functions-templates-mcp-server.git
cd azure-functions-templates-mcp-server
npm install
npm run build快速开始
运行服务器
如果全局安装:
azure-functions-templates-mcp-server如果本地安装:
npx azure-functions-templates-mcp-server源代码构建:
node dist/src/server.js这将启动等待MCP客户端连接的stdio MCP服务器。服务器使用stdio传输,从不登录到stdout(保留给MCP协议消息)。错误将转到stderr。
测试服务器
npm run smoke运行一个简单的测试,使用示例请求调用MCP服务器工具。
与MCP检查器一起使用
这 MCP检查员 是MCP服务器的调试和测试工具。要使用MCP检查器测试此服务器,请执行以下操作:
选项1:使用npm包(推荐)
# If installed globally
npx @modelcontextprotocol/inspector azure-functions-templates-mcp-server
# If installed locally
npx @modelcontextprotocol/inspector npx azure-functions-templates-mcp-server选项2:使用源代码构建
# Start the inspector with your built server
npx @modelcontextprotocol/inspector node dist/src/server.js选项3:全局安装检查器
# Install MCP Inspector globally
npm install -g @modelcontextprotocol/inspector
# Run with npm package
mcp-inspector azure-functions-templates-mcp-server
# Or run with source build
mcp-inspector node dist/src/server.js检查员将:
- 将MCP服务器作为子进程启动
- 打开web界面(通常在 )
- 允许您交互式测试所有可用工具
与VS代码一起使用
您可以通过GitHub Copilot或其他MCP兼容扩展将此MCP服务器与VS Code一起使用。以下是几种方法:
选项1:使用npm包(推荐)
- 全局安装软件包:
npm install -g azure-functions-templates-mcp-server- 在VS Code mcp.json设置中配置:
{
"servers": {
"azure-functions-create-triggers-bindings": {
"type": "stdio",
"command": "azure-functions-templates-mcp-server"
}
}
}选项2:使用本地npm安装
- 在项目中本地安装该包:
npm install azure-functions-templates-mcp-server- 在VS Code mcp.json设置中配置:
{
"servers": {
"azure-functions-create-triggers-bindings": {
"type": "stdio",
"command": "npx",
"args": ["azure-functions-templates-mcp-server"]
}
}
}选项3:使用源代码构建
- 从源代码构建项目 (见安装部分)
- 在VS Code mcp.json设置中配置:
{
"servers": {
"azure-functions-create-triggers-bindings": {
"type": "stdio",
"command": "node",
"args": ["D:\\path\\to\\azure-functions-templates-mcp-server\\dist\\src\\server.js"]
}
}
}替换 D:\\path\\to\\azure-functions-templates-mcp-server 使用克隆存储库的实际路径。
提高副副本的可发现性
默认情况下,Copilot可能不会自动使用MCP服务器工具。为确保Copilot在使用Azure Functions时使用此服务器,请添加提示指令文件:
选项A:VS代码提示文件(推荐)
创建 .github/copilot-instructions.md 在您的项目中:
When creating, modifying, or adding Azure Functions code, triggers, or bindings:
1. ALWAYS use the `azure-functions-create-triggers-bindings` MCP server tools
2. Start with `get_languages_list` to see supported languages
3. Call `get_project_template` to get project scaffolding files
4. Call `get_azure_functions_templates_list` to browse available triggers and bindings
5. Call `get_azure_functions_template` to get ready-to-use function code
6. Do NOT write Azure Function code from scratch选项B:VS代码用户提示文件
在VS Code的用户设置目录中创建一个提示文件:
- 窗户:
%APPDATA%\Code\User\prompts\azure-functions.md - macOS:
~/Library/Application Support/Code/User/prompts/azure-functions.md - Linux:
~/.config/Code/User/prompts/azure-functions.md
---
applyTo: '**/*.{cs,java,py,ts}'
---
When working with Azure Functions code, use the azure-functions-create-triggers-bindings MCP server.
Start with get_languages_list, then get_project_template, then get_azure_functions_templates_list.
Always fetch templates using get_azure_functions_template instead of writing function code manually.它提供了什么
Azure Functions模板管理的四个可组合工具:
get_languages_list:获取具有运行时版本和功能的支持语言列表get_project_template:获取具有可配置运行时参数的项目初始化文件(host.json、package.json、pom.xml等)get_azure_functions_templates_list:获取特定语言的所有可用功能模板,包括描述和类别get_azure_functions_template:获取特定功能模板的完整源代码,以及所需的应用程序设置和包
支持的语言和模板:
- C#(.NET隔离工作器):26个模板,包括HTTP、Blob、计时器、服务总线、Cosmos DB、持久函数、MySQL/SQL绑定、MCP工具和资源触发器
- Java(基于Maven):15个模板,涵盖核心触发器、绑定、持久函数和基于注释的配置的MCP工具触发器
- Python(v2编程模型):16个模板使用基于现代装饰器的模式,包括blob处理、数据库触发器、流媒体、AI/ML集成和通用触发器支持
- TypeScript(Node.js v4):14个模板,具有完整的类型安全性,涵盖存储、数据库、流媒体、MCP集成和实时通信场景
每个模板包括:
- 完整的功能代码 通过适当的绑定和错误处理
- 配置文件 (host.json、local.se.json等)
- 项目文件 (requirements.txt、package.json、.csproj、pom.xml等)
- 特定语言模式 (Python的装饰器,Java的注释,C#的独立worker)
- 最佳实践 对于每个运行时和编程模型
模板类别:
- Web API:REST端点和Webhook的HTTP触发器
- 存储:Blob触发器/绑定、队列处理
- 数据库:Cosmos DB、SQL Server、MySQL触发器和绑定
- 流媒体:用于实时数据处理的事件中心
- 消息传递:服务总线、事件网格、RabbitMQ集成
- 调度:使用CRON表达式触发计时器
- 耐用功能:工作流的协调器、活动、实体
- AI/ML:用于AI助手的模型上下文协议(MCP)工具和资源集成
- 实时:args用于实时更新和通知
非常适合引导新的Azure Functions项目、学习跨语言模式和快速原型制作。
最新动态
运行时版本参数:添加可选 runtimeVersion 参数到 get_project_template 和 get_azure_functions_template Java和TypeScript的工具。自动替换模板中的版本占位符。\ Java 8支持:正确地将Java 8转换为Maven兼容 1.8 格式\ 模板清单已更新:已将模板列表与实际可用模板同步\ 语言无关描述:从描述中删除了特定语言的实现细节\ 一致的类别:跨所有语言的统一模板分类\ 准确计数:更新了模板计数(C#:26,Java:15,Python:16,TypeScript:14)\ 清洁文档:改进了描述,以提高工具兼容性(VS代码副本、MCP检查器)\ 现代模式:反映当前的Azure Functions编程模型和最佳实践
模板结构
此MCP服务器允许跨多种编程语言访问Azure Functions模板。每种语言都遵循现代编程模型和最佳实践:
Python模板(v2编程模型)
HttpTrigger/
├── function_app.py # Main function code with @app decorators
├── host.json # Function host configuration
├── local.settings.json # Local development settings
└── requirements.txt # Python dependenciesTypeScript模板(Node.js v4模型)
HttpTrigger/
├── src/ # Source code directory
├── package.json # Node.js dependencies and scripts
├── tsconfig.json # TypeScript configuration
├── host.json # Function host configuration
└── local.settings.json # Local development settingsJava模板(基于Maven)
HttpTrigger/
├── pom.xml # Maven configuration and dependencies
├── host.json # Function host configuration
├── local.settings.json # Local development settings
└── src/ # Java source code with annotations
└── main/
└── java/C#模板(.NET独立工作器)
HttpTrigger/
├── HttpTriggerCSharp.cs # Main function code (isolated worker)
└── .template.config/ # Template metadata for tooling
├── template.json # Template definition
└── vs-2017.3.host.json # Visual Studio configuration项目脚本
npm run build:将TypeScript编译为dist/npm start:运行已编译的服务器(dist/src/server.js)npm run smoke:带有示例模板请求的测试服务器npm run dev:使用ts节点运行(用于快速迭代)npm run probe:服务器的简单健康检查
目录结构
src/server.ts--MCP服务器实现templates/--Azure功能模板(与服务器打包)dist/--编译的JavaScript输出tools/smoke.mjs--简单测试客户端
使用示例
工作流:创建新的Azure函数项目
这些工具被设计为按顺序使用:
- 发现语言 →
get_languages_list - 初始化项目 →
get_project_template(带运行时参数) - 浏览模板 →
get_azure_functions_templates_list - 添加功能 →
get_azure_functions_template(具有所需设置)
发现可用语言
获取支持的语言:
Tool: get_languages_list返回所有支持的语言,包括运行时详细信息、编程模型和模板计数。
初始化项目
获取Python的项目文件:
Tool: get_project_template
Language: python获取特定Node.js版本的TypeScript项目文件:
Tool: get_project_template
Language: typescript
runtimeVersion: "20"获取特定Java版本的Java项目文件:
Tool: get_project_template
Language: java
runtimeVersion: "21"返回所有应用了指定运行时参数的项目初始化文件(host.json、requirements.txt、package.json、pom.xml等)。
按语言探索模板
获取特定语言的模板:
Tool: get_azure_functions_templates_list
Language: python返回所有带有描述、类别和用例的Python模板。
获取函数模板
获取完整的函数模板:
Tool: get_azure_functions_template
Language: python
Template: HttpTrigger返回函数源代码,以及任何必需的应用程序设置和其他包。
特定语言示例
获取特定JDK版本的Java Cosmos DB触发器:
Tool: get_azure_functions_template
Language: java
Template: CosmosDBTrigger
runtimeVersion: "17"获取C#持久函数编排:
Tool: get_azure_functions_template
Language: csharp
Template: DurableFunctionsOrchestration获取特定Node.js版本的TypeScript Blob触发器:
Tool: get_azure_functions_template
Language: typescript
Template: BlobTrigger
runtimeVersion: "22"故障排除
常见问题
服务器未启动
- 问题:找不到命令或服务器无法启动
- 解决方案:
- 验证安装: npm list -g azure-functions-templates-mcp-server - 如有需要,请重新安装: npm install -g azure-functions-templates-mcp-server - 检查Node.js版本: node --version (要求18+)
MCP客户端中没有可用的工具
- 问题:MCP客户端不显示Azure功能工具
- 解决方案:
- 验证MCP客户端设置中的服务器配置 - 检查客户端配置中的路径是否为绝对路径 - 确保 npm run build 如果从源构建成功 - 首先与MCP检查员进行测试: npx @modelcontextprotocol/inspector azure-functions-templates-mcp-server
模板检索错误
- 问题:请求模板时出错
- 解决方案:
- 验证语言参数是否为以下之一: csharp, java, python, typescript - 检查模板名称是否完全匹配(区分大小写) - 使用 get_azure_functions_templates_list 查看有效的模板名称
性能问题
- 问题:响应时间慢
- 解决方案:
- 模板与服务器打包在一起,以便快速访问 - 使用 get_azure_functions_template 只需获取所需的函数代码 - 项目文件通过以下方式单独获取 get_project_template
调试模式
运行烟雾测试以验证功能:
npm run smoke使用MCP检查器进行交互式调试:
npx @modelcontextprotocol/inspector azure-functions-templates-mcp-server支持
- 问题:报告错误
- 文档:完整文档可在 仓库
贡献
我们欢迎捐款!请看 贡献.md 作为指导方针。
贡献者快速入门
git clone https://github.com/Azure/azure-functions-templates-mcp-server.git
cd azure-functions-templates-mcp-server
npm install
npm run build
npm test开发笔记
- 预留标准:从不添加
console.log声明;stdout保留用于MCP协议消息 - 错误处理:所有错误都转到stderr,工具错误使用
isError: true旗帜 - 模板打包:模板嵌入包中以供脱机使用
- 协议遵从:服务器正确实现MCP规范
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
