羊角快車二創版 v1.1 發布:友鏈雙驗證、MCP 伺服器與金鑰分型

發布日期: 2026年10月26日

目前版本: v1.1.2(最新)

本頁彙總 v1.1 版本線的全部改動,包含 v1.1.0、v1.1.1、v1.1.2 三個發布。同一版本線內的修補會合併到本頁繼續維護;新的版本線(如 1.2)才新建頁面,發布公告依改動規模與說明需要維護。

版本一覽

版本類型主要內容
v1.1.0MINOR友鏈驗證支援 DNS TXT 與 HTML 檔案兩種方式
v1.1.1MINOR新增 /mcp MCP 伺服器,接入外部 AI 用戶端
v1.1.2PATCH拆分 API 介面金鑰與 MCP 金鑰

v1.1.0 友鏈驗證支援兩種方式

訪客提交友鏈申請並通過 JSON 校驗後,機器人會進入 awaiting_method_choice 階段,請訪客選擇驗證方式:

  • 回覆 1(或 一 / 方案一 / 方法一):使用 DNS TXT 記錄
  • 回覆 2(或 二 / 方案二 / 方法二):上傳 HTML 檔案

DNS 方式會下發 _jiaofriend 主機記錄、TXT 類型、驗證碼作為記錄值的教學,驗證時透過 Cloudflare DNS-over-HTTPS 查詢 _jiaofriend.<訪客網域> 並檢查記錄值是否包含驗證碼。檔案方式保留原有嚴格校驗:GET 必須傳回 200,且剔除標籤與腳本後的 <body> 文字包含驗證碼。

狀態機新增 awaiting_verification 階段並記錄 verifyMethod;修改友鏈時,舊站點與新站點分別重新選擇驗證方式;升級前的 verifying 狀態自動回退為檔案驗證。DNS 查詢透過可注入依賴 resolveTxt(name) => Promise<string[]> 實作,便於測試與替換解析器。

本版本同時修復了友鏈驗證被 SPA 回退、自訂 404、403/500 與 30x 重新導向誤判通過的問題,以及 friends-sitemap.xml 被前端路由攔截、檢視金鑰把加密儲存改成明文、驗證碼重複初始化導致申請崩潰、郵件解析在 CJS / ESM 產物下的相容性問題。

v1.1.1 MCP 伺服器

站點在根路徑新增 /mcp 端點,把文章、動態、友鏈與站點設定接入 MCP(Model Context Protocol)。Claude Code、Cursor、Claude Desktop、MCP Inspector 等用戶端可以讀寫站點內容。

  • 傳輸方式:Streamable HTTP,每個請求獨立建立實例,不跨請求儲存狀態
  • 驗證方式:X-API-Key 或 Authorization: Bearer,沿用設定頁金鑰,並重新整理最近使用時間
  • 權限裁剪:tools/list 依金鑰權限篩選,新增 content.read 讀取權限
  • 安全校驗:Host 與 Origin 校驗阻斷 DNS rebinding,自訂網域透過 MCP_ALLOWED_HOSTS 放行
工具所需權限說明
whoami任意有效金鑰傳回金鑰 ID、帳號 ID、權限與可用工具
list_posts / get_post / search_postscontent.read列出、讀取、搜尋文章(含草稿與不公開文章)
list_tags / list_moments / list_friendscontent.read列出標籤、動態與友鏈
create_post / update_post / delete_postfeed.write建立(預設草稿)、編輯、刪除文章
create_moment / update_moment / delete_momentmoment.write建立、編輯、刪除動態
create_friend / update_friend / delete_friendfriend.write建立、編輯、刪除友鏈
get_config / update_config對應分區的 config.*讀寫設定頁分區,越權鍵會被拒絕

用戶端設定範例:

{
  "mcpServers": {
    "rin": {
      "type": "http",
      "url": "https://<站點網域>/mcp",
      "headers": {
        "X-API-Key": "<MCP 金鑰>"
      }
    }
  }
}