使用说明
OpenAI FastMCP网关
此存储库封装了官方 openai Python SDK和 fastmcp 运行时间(根据 external/)在经过身份验证的HTTP/SSE传输上公开三个MCP工具——聊天完成、图像生成和音频合成。
项目布局
external/:反映上游openai/openai-python和jlowin/fastmcp来源。src/openai_fastmcp/:自定义FastMCP服务器、配置加载器和OpenAI服务包装器。Dockerfile:安装供应商依赖项并运行的生产映像python -m openai_fastmcp.azure-pipelines.yml:CI定义,通过Azure DevOps将容器构建/推送到Docker Hub。
设置
- 复制示例环境文件并编辑机密:
cp .env.example .env - 安装依赖项(从本地安装
external/树):pip install -r src/requirements.txt - 运行服务器:
python -m openai_fastmcp
FastMCP服务器监听 0.0.0.0:8000 默认情况下,以及 需要 每个请求都包括 Authorization: Bearer $MCP_SERVER_API_KEY.
码头工人
docker build -t fastmcp-openai .
docker run --env-file .env -p 8000:8000 fastmcp-openai
Azure OpenAI
集 AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_API_KEY,以及(可选) AZURE_OPENAI_API_VERSION。每个功能部署的覆盖可通过以下方式获得:
AZURE_OPENAI_CHAT_DEPLOYMENTAZURE_OPENAI_IMAGE_DEPLOYMENTAZURE_OPENAI_AUDIO_DEPLOYMENT
让那些未设置的选项回归到通用选项 OPENAI_*_MODEL 默认值。
Azure Blob存储
媒体制作工具(generate_image, synthesize_speech, generate_video)将输出上传到Azure Blob存储,并仅返回生成的公共Blob URL——不包括原始base64有效载荷。配置以下环境变量(与中所述的变量匹配 src/README.md)因此服务器可以存储和共享这些资产:
AZURE_STORAGE_CONNECTION_STRINGAZURE_BLOB_CONTAINERAZURE_BLOB_PUBLIC_BASE_URL- (可选)
AZURE_BLOB_PATH_PREFIX,AZURE_BLOB_IMAGE_ROOT,AZURE_BLOB_AUDIO_ROOT,AZURE_BLOB_VIDEO_ROOT
如果缺少这些变量,媒体工具会引发运行时错误,提醒您配置存储。
MCP工具
| 工具 | 目的 |
|---|---|
chat_completion |
聊天完成API,可选系统提示,JSON模式,采样旋钮,元数据传递。 |
generate_image |
gpt图像/DALL·E风格图像生成。将资产上传到Azure Blob存储并返回可共享的URL |
synthesize_speech |
使用音频语音端点进行文本到语音转换。将音频片段上传到Azure Blob存储并返回可共享的URL |
generate_video |
短片生成(Sora)。将MP4/缩略图资产上传到Azure Blob存储并返回可共享的URL |
list_supported_models |
报告用于每种功能(聊天/图像/音频/视频)的配置模型/部署。 |
视频生成仅在使用api.openai.com(Sora)时可用。Azure OpenAI目前缺少
/videos端点,因此该工具在Azure模式下引发运行时错误。
从以下位置调用服务器 mcp.json
在代理客户端内注册此服务器时,请在传输定义中包含标头。示例片段:
{
"servers": {
"fastmcp-openai": {
"transport": {
"type": "sse",
"url": "http://localhost:8000/mcp",
"headers": {
"Authorization": "Bearer ${env:MCP_SERVER_API_KEY}"
}
}
}
}
}
大多数MCP客户端(Claude Desktop、VS Code MCP等)支持 ${env:VAR} 扩张;否则,用实际的共享密钥替换该值。如果您通过Streamable HTTP连接,请添加相同的 headers 该运输配置内的块。
管道
azure-pipelines.yml 检查子模块,构建Docker镜像,并推送两者 latest 并为Docker Hub构建特定的标签。提供两个管道变量/秘密:
DOCKERHUB_SERVICE_CONNECTION:Docker注册表服务连接的名称。DOCKERHUB_REPOSITORY:例如。my-org/fastmcp-openai.