EmDash 有一個內建的 Model Context Protocol (MCP) 伺服器,讓 AI 助手可以直接處理網站內容。你可以要求 Claude、ChatGPT 或其他工具起草文章、更新頁面、管理媒體、搜尋內容等——全部透過自然對話完成。
網站的 MCP 伺服器
MCP 伺服器預設啟用。除非你關閉它,EmDash 會掛載 /_emdash/api/mcp。端點接受 OAuth 或個人存取權杖;管理員瀏覽器工作階段本身不會驗證 MCP 請求。OAuth 允許連接客戶端的人在 EmDash 發放權杖前選擇權限範圍。
要停用它,在 Astro 設定中設定 mcp: false:
emdash({
mcp: false,
});
連接 AI 客戶端
網站的 MCP 伺服器 URL 為:
https://example.com/_emdash/api/mcp
將 example.com 替換為你的網域。本地開發使用 http://localhost:4321/_emdash/api/mcp。
Claude
將 URL 新增為遠端自訂連接器。Claude 會開啟 EmDash OAuth 流程,以便你登入並選擇權限。Anthropic 獨立於 EmDash 變更連接器介面,因此請遵循其目前自訂連接器說明了解確切的控制和方案要求。
ChatGPT
ChatGPT 開發者模式可以連接遠端 MCP 伺服器並支援 OAuth 驗證的工具。資格和設定介面可能會變更,因此請遵循 ChatGPT 開發者模式官方指南並在建立應用時使用你網站的 MCP URL。在批准前審查每個寫入呼叫。
Codex
從 Codex CLI 新增遠端伺服器,然後啟動 OAuth 登入:
codex mcp add emdash-site --url https://example.com/_emdash/api/mcp
codex mcp login emdash-siteChatGPT 桌面應用、Codex CLI 和 IDE 擴充共享同一 Codex 主機的 MCP 設定。有關設定檔、OAuth 和支援的傳輸,請參閱 Codex 官方 MCP 文件。
處理網站內容
連接後,你可以用自然語言要求 AI 助手執行以下任何操作。你不需要知道工具名稱——只需描述你想要什麼。
內容
- 瀏覽內容 — 「顯示最新的 10 篇部落格文章」或「找到所有草稿頁面」
- 閱讀內容 — 「取得名為 ‘hello-world’ 的文章並摘要」
- 建立內容 — 「寫一篇關於我們夏季促銷的新部落格文章」或「為關於區塊建立一個頁面草稿」
- 編輯內容 — 「更新定價頁面以提及新方案」或「修復 FAQ 文章中的錯字」
- 發布和排程 — 「發布夏季促銷文章」、「將公告排程到6月1日上午9點」或「取消發布文章的排程」
- 比較版本 — 「顯示首頁自上次發布以來的變化」
- 管理草稿 — 「捨棄關於頁面的草稿變更」或「複製電子報範本」
- 翻譯 — 「歡迎文章有哪些翻譯?」或「建立一個與這篇英文文章連結的法語草稿」(當 i18n 啟用時)
署名
- 瀏覽署名 — 「列出名字包含 ‘Lee’ 的客座貢獻者」
- 標注內容 — 「將 Priya Shah 新增為這篇文章的主要署名」
- 管理署名 — 「為 Sam Rivera 建立一個客座署名」或「更新這位貢獻者的簡介」
- 翻譯署名 — 「顯示此署名的語言變體」
建立、更新、刪除和翻譯署名需要編輯者角色。內容寫入工具在呼叫者有權建立或編輯該內容時接受現有署名 ID。
媒體
- 瀏覽媒體 — 「列出所有上傳的圖片」或「顯示媒體庫中的 PDF」
- 查看詳情 — 「取得此媒體項的詳情」
- 上傳檔案 — 「將此 base64 圖片上傳為
banner.png」或「從此公開 URL 匯入圖片」 - 註冊現有儲存物件 — 「將
media/2026/banner.png註冊為媒體項」 - 更新中繼資料 — 「將主圖的 alt 文字設定為 ‘山間日落’」
- 刪除檔案 — 「刪除舊的橫幅圖片」
media_upload 接受 base64 編碼的位元組或公開 HTTP(S) URL。它儲存檔案、註冊媒體項並傳回 ID 和 URL。media_create 僅註冊已在儲存中的檔案的中繼資料。URL 匯入拒絕私有網路目標並重新檢查重新導向;兩個路徑都強制執行網站的 MIME 類型和上傳大小限制。
貢獻者可以使用 media_upload。使用 media_create 註冊現有儲存物件需要作者或更高角色。
搜尋
- 尋找內容 — 「搜尋提及『無障礙』的文章」或「在所有集合中尋找關於 TypeScript 的所有內容」
分類法
- 瀏覽 — 「列出所有分類」或「顯示標籤」
- 建立術語 — 「新增一個『教學』標籤」或「在『工程』下建立一個『前端』子分類」
- 重新命名術語 — 「將『前端』分類重新命名為『Web 前端』」
- 移動術語 — 「將『教學』標籤移到『指南』分類下」或「將 ‘react’ 從其父層級分離」
- 刪除術語 — 「刪除未使用的『歸檔』標籤」
選單
- 查看選單 — 「顯示主導覽選單」或「頁尾選單裡有什麼?」
- 建立選單 — 「建立一個新的 ‘sidebar’ 選單」
- 編輯選單 — 「將 ‘main’ 選單重新命名為『主導覽』」
- 設定項目 — 「將主選單的項目替換為首頁、部落格、關於和聯繫」
- 刪除選單 — 「刪除未使用的 ‘mobile’ 選單」
網站設定
- 檢查 — 「目前網站標題是什麼?」或「顯示社群連結」
- 更新身分 — 「將網站標題設為 ‘Acme Blog’,標語設為『團隊故事』」
- 設定 Logo / Favicon — 「使用這張圖片作為網站 Logo」(用
media_upload上傳後) - SEO 預設值 — 「將預設 OG 圖片設為新橫幅」或「將標題分隔符更新為豎線」
- 社群帳號 — 「將我們的 GitHub 和 YouTube 連結新增到社群設定」
架構(僅管理員)
- 檢查 — 「存在哪些集合?」或「顯示 posts 集合的欄位」
- 建立集合 — 「建立一個包含名稱和引用欄位的新 ‘testimonials’ 集合」
- 修改架構 — 「向 posts 新增一個 ‘featured’ 布林欄位」
修訂版本
- 查看歷史 — 「顯示這篇文章的修訂歷史」
- 還原 — 「將文章還原到之前的版本」
權限
當 MCP 客戶端開啟 OAuth 同意頁面時,請求的每個權限預設被選中。在批准存取前清除客戶端不需要的任何權限。產生的權杖限於你保持選中的權限和你的 EmDash 角色允許的權限,因此授予更少的權限永遠不會增加客戶端能做的事情。
| 角色 | AI 能做什麼 |
|---|---|
| 管理員 | 所有操作,包括架構變更和更新網站設定 |
| 編輯者 | 管理所有內容、媒體、署名、分類法和選單。查看架構和讀取設定。 |
| 作者 | 建立內容;編輯和發布自有內容;上傳媒體和管理自有媒體。 |
| 貢獻者 | 建立草稿內容和上傳媒體,不能發布。 |
當權杖範圍或使用者角色不足時,EmDash 會拒絕工具呼叫。客戶端可以解釋該錯誤,但 EmDash 始終是執行權限的權威。
提示
- 對集合要具體。 如果有多個集合,說「建立一篇部落格文章」而不是「建立一篇文章」。
- 先詢問架構。 如果不確定集合有哪些欄位,在建立或編輯內容前先問「posts 集合有哪些欄位?」
- 發布前審查。 要求 AI 將內容建立為草稿,在管理面板中審查,然後要求 AI 發布——或自己發布。
- 使用比較進行審查。 發布前,問「比較這篇文章的已發布版本和草稿版本」來查看確切的變化。
- 富文字欄位使用 Portable Text。 AI 可以為富文字欄位編寫內容,但複雜格式最好在管理編輯器中完成。
面向開發者
MCP 伺服器端點、驗證方法、OAuth 探索、工具參數和錯誤處理記錄在 MCP 伺服器參考中。