MCP图像AI铸造厂
Azure Functions上的MCP(模型上下文协议)远程服务器,用于使用Flux Pro 2通过Azure AI Foundry生成图像。
概述
此Azure Function应用程序提供了一个MCP工具触发端点,该端点通过Azure AI Foundry使用Flux Pro 2模型生成图像。它使用Python V2编程模型为Azure函数提供MCP绑定,并使用Pydantic对工具属性进行强类型化。
特性
- Azure函数Python V2:支持异步的现代编程模型
- MCP工具触发器:用于模型上下文协议集成的本地MCP绑定
- Pydantic强打字:使用Pydantic模型的类型安全工具属性
- Flux Pro 2集成:为Flux Pro 2模型使用Azure OpenAI映像客户端
- 异步图像生成:非阻塞异步图像生成
- 错误处理:全面的错误处理和记录
- 健康检查:专用健康检查MCP工具
先决条件
- Python 3.8或更高版本
- Azure功能核心工具v4
- 具有Azure AI Foundry访问权限的Azure订阅
- 部署Flux Pro 2的Azure OpenAI资源
安装
- 克隆此存储库:
git clone https://github.com/zecloud/MCP_Image_AIFoundry.git
cd MCP_Image_AIFoundry- 安装依赖项:
pip install -r requirements.txt- 配置本地设置:
- 创建一个 local.settings.json 项目根目录中的文件,内容如下:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "python",
"AZURE_OPENAI_ENDPOINT": "",
"AZURE_OPENAI_API_KEY": "",
"AZURE_OPENAI_DEPLOYMENT_NAME": "flux-pro-2"
}
}本地开发
在本地运行该函数:
func startMCP服务器将公开以下工具:
generate_image-使用Flux Pro 2生成图像health_check-检查服务运行状况
测试
提供了一个测试脚本来验证该功能是否正常工作:
# Make sure the function is running locally
func start
# In another terminal, run the test script
python test_function.py测试脚本将:
- 检查运行状况端点
- 发送测试图像生成请求
- 显示结果
MCP工具使用
生成图像工具
工具名称: generate_image
说明: 通过Azure AI Foundry使用Flux Pro 2模型生成图像。提供描述要创建的图像的文本提示。
工具属性:
prompt(必填,字符串):要生成的图像的文本描述size(可选,字符串):图像大小,默认为“1024x1024”quality(可选,字符串):图像质量,默认为“标准”n(可选,数字):要生成的图像数量,默认为1
MCP工具调用示例:
{
"name": "generate_image",
"arguments": {
"prompt": "A beautiful sunset over mountains",
"size": "1024x1024",
"quality": "standard",
"n": 1
}
}答复:
{
"status": "success",
"images": [
{
"url": "https://...",
"revised_prompt": "..."
}
],
"created": 1234567890
}健康检查工具
工具名称: health_check
说明: 检查MCP图像生成器服务的运行状况。
答复:
{
"status": "healthy",
"service": "MCP Image Generator",
"version": "1.0.0"
}部署
部署到Azure功能:
func azure functionapp publish 请确保在Azure中配置应用程序设置:
AZURE_OPENAI_ENDPOINTAZURE_OPENAI_API_KEYAZURE_OPENAI_DEPLOYMENT_NAME
项目结构
MCP_Image_AIFoundry/
├── function_app.py # Main function app with MCP tool triggers
├── host.json # Function app host configuration
├── local.settings.json # Local development settings (gitignored)
├── requirements.txt # Python dependencies
├── test_function.py # Test script for validation
├── .env.example # Example environment configuration
├── .funcignore # Deployment filtering
├── .gitignore # Git ignore rules
└── README.md # This file依赖项
azure-functions>=1.18.0:Azure函数Python workerazureopenaigptimageclient:Flux Pro 2的Azure OpenAI映像客户端azurefunctionsmcpydantic:Pydantic到MCP工具属性转换器pydantic>=2.0.0:数据验证和设置管理requests>=2.31.0:用于测试的HTTP库
技术细节
MCP工具绑定
此项目使用Azure Functions的本机MCP工具触发器绑定,该绑定提供:
- MCP协议中的自动工具注册
- 通过Pydantic模型实现强打字
- 与MCP客户端和代理无缝集成
Pydantic模型
工具属性使用Pydantic模型定义,并使用自动转换为MCP工具属性格式 azurefunctionsmcpydantic 包裹。这确保了类型安全和更好的开发人员体验。
许可证
该项目根据MIT许可证获得许可。
贡献
欢迎投稿!请随时提交拉取请求。
