打造 deapi.ai 圖片生成 MCP Server - 從 API 整合到成功產圖

今天完成了一個重要的里程碑:成功建立了 deapi.ai 文字轉圖片 API 的 MCP Server,並成功生成了第一張 AI 圖片!這篇文章記錄了整個開發過程,從 API 規範分析到最終成功產圖的完整歷程。

🎯 專案目標

建立一個 FastMCP Server,整合 deapi.ai 的文字轉圖片 API,讓 AI 助手能夠直接生成圖片並下載到本地。這個工具將大大提升內容創作的效率。

📋 開發過程

1. API 規範分析與實作

首先,我收到了 deapi.ai 的 OpenAPI 規範文件。分析後發現需要實現以下端點:

  • POST /api/v1/client/txt2img - 發送圖片生成請求
  • GET /api/v1/client/request-status/{job_request} - 查詢生成狀態

根據 API 規範,我更新了代碼以符合所有必需參數:

  • prompt - 圖片生成提示詞(必填)
  • model - 使用的模型(默認 "Flux1schnell")
  • widthheight - 圖片尺寸(默認 768x768)
  • seed - 隨機種子(默認 -1)
  • steps - 推理步數(默認 4)
  • guidance - Guidance scale(默認 7.5)
  • loras - LoRA 模型數組(默認空數組)
  • negative_prompt - 負面提示詞(可選)

2. 環境變數配置

實現了從項目根目錄的 .env 文件自動讀取 DEAPI_API_KEY,讓配置更加便捷。

3. 工具功能實現

實現了三個核心 MCP 工具:

  • generate_image - 完整的圖片生成工具,支持所有參數
  • generate_image_quick - 快速生成工具,使用默認參數
  • get_request_status - 查詢生成狀態
  • download_image - 自動查詢狀態並下載完成的圖片

4. Bug 修復

在開發過程中遇到了一個關鍵問題:download_image 工具無法直接調用 get_request_status,因為 FastMCP 的工具函數不能直接調用。

解決方案:創建了內部輔助函數 _get_request_status_internal(),讓兩個工具都能調用相同的邏輯,避免了工具間直接調用的問題。

🎨 AI 產圖成果

經過完整的開發和測試,我們成功生成了多張 AI 圖片來展示這個 MCP Server 的能力!

第一張圖片:簡約咖啡

使用最經濟的配置生成的第一張測試圖片:

  • 提示詞"a cup of coffee, simple, minimalist, clean background"
  • 尺寸:512x512 像素(為了降低成本)
  • 步數:4 步(最少步數,最經濟的配置)
  • 模型:Flux1schnell
AI 生成的咖啡圖片

AI 生成的簡約風格咖啡圖片

更多成果展示

為了展示 MCP Server 的完整能力,我們還生成了以下圖片:

開發者工作環境

開發者工作環境與 MCP Server 架構

工作流程圖

AI 圖片生成工作流程示意圖

成功慶祝

成功慶祝 - AI 圖片生成成果

生成統計

  • ✅ 總共生成:4 張圖片
  • ✅ 成功率:100%
  • ✅ 平均文件大小:約 140 KB
  • ✅ 所有圖片都已自動保存 metadata

Metadata 管理功能

為了方便未來搜索和再利用生成的圖片,我們實現了完整的 metadata 管理系統:

  • 自動保存:每次下載圖片時,自動保存生成參數(prompt, model, 尺寸等)到 JSON 文件
  • 索引系統:所有圖片 metadata 統一管理在 static/images/ai-generated/.metadata/index.json
  • 搜索功能:可以根據提示詞、模型、標籤等條件搜索已生成的圖片
  • 再利用:通過 metadata 可以輕鬆找到相似的圖片或重複使用相同的參數

Metadata 包含的信息:

  • 生成參數(prompt, model, width, height, steps, guidance, seed, loras)
  • 文件路徑和 URL
  • 生成時間
  • 標籤和描述(可手動添加)

技術亮點

這次成功產圖展示了以下技術能力:

  1. 完整的 API 整合:成功整合了 deapi.ai 的異步 API,包括請求發送、狀態查詢和下載功能
  2. MCP 工具生態:建立了可重用的 MCP 工具,讓 AI 助手能夠直接調用圖片生成功能
  3. 自動化流程:實現了從生成請求到自動下載的完整自動化流程
  4. Metadata 管理:自動保存生成參數,方便未來搜索和再利用
  5. 成本優化:使用最經濟的參數配置(512x512, 4 steps),在保證質量的同時降低成本

🚀 未來應用

有了這個 MCP Server,我們現在可以:

  • ✅ 在文章創作過程中自動生成配圖
  • ✅ 根據內容自動生成合適的插圖和示意圖
  • ✅ 為博客文章生成封面圖片
  • ✅ 快速生成各種視覺素材

這將大大提升內容創作的效率和視覺質量!

📝 技術總結

這次開發過程涵蓋了:

  • FastMCP Server 開發
  • OpenAPI 規範分析與實作
  • 異步 API 整合
  • 環境變數管理
  • MCP 工具間調用問題解決
  • 圖片下載與文件管理
  • Metadata 管理系統:自動保存生成參數,支持搜索和再利用

Metadata 功能詳解

為了實現圖片的可搜索和再利用,我們實現了完整的 metadata 管理系統:

  • 自動保存:在 generate_image 時會緩存生成參數,在 download_image 時自動保存完整的 metadata
  • JSON 格式:每個圖片都有對應的 {request_id}.json metadata 文件
  • 統一索引:所有 metadata 統一管理在 index.json 中,方便批量搜索
  • 搜索工具search_generated_images 工具支持根據提示詞、模型、標籤等條件搜索

最重要的是,我們成功驗證了整個流程,從 API 調用到最終圖片下載和 metadata 保存,所有環節都運作正常!

🎉 結語

這次成功建立 deapi-txt2img MCP Server 並生成第一張 AI 圖片,標誌著 VibeBlog 項目在 AI 內容創作能力上邁出了重要一步。未來,我們可以更高效地創作視覺豐富的內容,讓 AI 成為真正的創作夥伴!