Skip to content

Fcheni/azure-mcp-code-processor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Azure MCP 代码处理系统

使用 Azure OpenAI + MCP 构建的云端代码处理系统,支持代码执行、分析、优化和修复。

功能特性

  • 执行 Python 代码 - 在云端安全执行代码
  • 📊 代码分析 - AI 检测性能和安全问题
  • 🔧 自动修复 - 根据错误信息修复 bug
  • 性能优化 - AI 建议代码优化方案
  • 🚀 云端部署 - 部署在 Azure App Service
  • 🔄 自动部署 - GitHub Actions 持续集成

快速开始

本地运行

# 克隆仓库
git clone https://github.com/YOUR_USERNAME/azure-mcp-code-processor.git
cd azure-mcp-code-processor

# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate  # Mac/Linux
# 或 venv\Scripts\activate  # Windows

# 安装依赖
pip install -r requirements.txt

# 配置环境变量
cp .env.example .env
# 编辑 .env,填入 Azure OpenAI 的 API 密钥和端点

# 运行服务器
python3 server.py

访问 http://localhost:8000/docs 查看 API 文档。

云端部署

步骤 1: 创建 Azure 资源组

az login
az group create --name code-processor-rg --location eastasia

步骤 2: 创建 App Service 计划(学生免费)

az appservice plan create \
  --name code-processor-plan \
  --resource-group code-processor-rg \
  --sku F1 \
  --is-linux

步骤 3: 创建 Web App

az webapp create \
  --resource-group code-processor-rg \
  --plan code-processor-plan \
  --name code-processor-app \
  --runtime "PYTHON:3.11"

步骤 4: 配置启动命令

az webapp config set \
  --resource-group code-processor-rg \
  --name code-processor-app \
  --startup-file "gunicorn --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000 -w 2 server:fastapi_app"

步骤 5: 设置环境变量

az webapp config appsettings set \
  --resource-group code-processor-rg \
  --name code-processor-app \
  --settings AZURE_OPENAI_API_KEY="your-key" \
             AZURE_OPENAI_ENDPOINT="your-endpoint" \
             AZURE_OPENAI_MODEL="gpt-4o-mini"

步骤 6: 部署代码

# 获取发布配置
az webapp deployment list-publishing-credentials \
  --name code-processor-app \
  --resource-group code-processor-rg

# 部署代码
git push azure main

GitHub + Azure 自动部署

  1. 获取发布配置文件

    az webapp deployment list-publishing-credentials \
      --name code-processor-app \
      --resource-group code-processor-rg \
      --query "{url:publishingProfileUrl}" \
      --output tsv
  2. 在 GitHub 添加 Secret

    • 去往仓库 Settings → Secrets and variables → Actions
    • 新建 Secret AZURE_WEBAPP_PUBLISH_PROFILE
    • 粘贴发布配置的 XML 内容
  3. 自动部署

    • 每次推送到 main 分支时自动部署

API 使用示例

执行代码

curl -X POST https://code-processor-app.azurewebsites.net/process \
  -H "Content-Type: application/json" \
  -d '{
    "action": "execute",
    "code": "print(\"Hello Azure!\")"
  }'

分析代码

curl -X POST https://code-processor-app.azurewebsites.net/process \
  -H "Content-Type: application/json" \
  -d '{
    "action": "analyze",
    "code": "def fib(n):\n    if n < 2:\n        return n\n    return fib(n-1) + fib(n-2)"
  }'

修复 Bug

curl -X POST https://code-processor-app.azurewebsites.net/process \
  -H "Content-Type: application/json" \
  -d '{
    "action": "fix",
    "code": "x = 1 / 0",
    "error_message": "ZeroDivisionError: division by zero"
  }'

优化性能

curl -X POST https://code-processor-app.azurewebsites.net/process \
  -H "Content-Type: application/json" \
  -d '{
    "action": "optimize",
    "code": "result = []\nfor i in range(1000):\n    result = result + [i]"
  }'

项目结构

azure-mcp-code-processor/
├── server.py                          # FastAPI 主应用
├── requirements.txt                   # Python 依赖
├── .env.example                       # 环境变量示例
├── .gitignore                         # Git 忽略文件
├── README.md                          # 本项目文档
└── .github/workflows/
    └── deploy.yml                     # GitHub Actions 部署工作流

环境变量配置

创建 .env 文件:

AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
AZURE_OPENAI_API_KEY=your-api-key
AZURE_OPENAI_MODEL=gpt-4o-mini

安全性

  • API 密钥存储在 Azure 密钥保管库(推荐)
  • 环境变量不上传到 GitHub
  • 代码执行有超时限制(10 秒)
  • 支持 HTTPS 连接

故障排查

部署失败

检查日志:

az webapp log tail --name code-processor-app --resource-group code-processor-rg

连接 Azure 失败

验证凭证:

az account show

代码执行超时

修改 server.py 中的 timeout 参数。

成本说明

  • App Service F1 免费计划:学生免费
  • Azure OpenAI API:按使用量计费(学生有初期额度)
  • 总体成本:学生通常零成本

贡献指南

欢迎提交 Issue 和 Pull Request!

许可证

MIT License

相关链接

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages