使用说明
Azure函数创建触发器并绑定MCP服务器
档案通知
[!重要] 此存储库已存档,不再进行主动维护。
此存储库的内容已移动到以下位置:
- Azure功能MCP工具: Azure。麦克。工具。函数
- 模板目录: azure函数模板
请使用上面的存储库获取最新更新、正在进行的开发和支持。
概述
一个模型上下文协议(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界面(通常在 http://localhost:5173)
- 允许您交互式测试所有可用工具
与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 dependencies
TypeScript模板(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 settings
Java模板(基于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许可证获得许可-请参阅 许可证 文件以获取详细信息。
