
Hudu
io.github.wyre-technology由 GitHub 帳號 wyre-technology 發布v1.3.7更新於 Nov 3, 2026
MCP server for Hudu IT documentation — companies, assets, articles, passwords, and procedures.
概覽
面向 Hudu IT 文件平台的 MCP 伺服器,讓助理列出、讀取、建立、更新、封存與刪除公司、資產、文章、密碼和網站。
- 可以做什麼
- 列出、讀取、建立、更新、刪除與封存公司,並可測試連線
- 列出、讀取、建立、更新、刪除與封存資產,並管理資產版面配置
- 列出、讀取、建立、更新與刪除資產密碼
- 列出、讀取、建立、更新、刪除與封存知識庫文章
- 列出、讀取、建立、更新與刪除受監控網站
- 列出資料夾、流程、活動日誌、關聯與 Magic Dash 項目,並提供公司、資產、文章的唯讀資源
- 適用情境
- 適合讓助理直接處理 IT 團隊或託管服務商的 Hudu 文件:查詢客戶公司與其資產、撰寫或更新知識庫文章、檢視流程與活動日誌,不必離開對話。
- 執行需求
- 以本機 stdio(或 HTTP Streamable)方式執行,可用容器映像或從原始碼搭配 Node.js 啟動。需要 HUDU_BASE_URL;傳統 REST 模式另需 HUDU_API_KEY,未設定金鑰時改用針對執行個體自帶 MCP 伺服器的互動式 OAuth 瀏覽器流程。HTTP 傳輸另需 CONDUIT_S2S_SECRET。從原始碼建置需要具備 read:packages 權限的 GitHub 權杖以存取私有 npm 來源。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Hudu,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
hudu-mcp
[CI] [License: Apache-2.0] [Node.js]
MCP (Model Context Protocol) server for Hudu IT documentation platform. Provides 39 tools and 6 resources for managing companies, assets, articles, passwords, websites, and more through any MCP-compatible client.
Features
- 39 MCP tools covering all major Hudu resources
- 6 MCP resources for direct data access
- Dual auth mode: classic
HUDU_API_KEYREST access, oroauth— a thin, authenticated proxy to a newer Hudu instance's own native MCP server - Dual transport support: stdio (default) and HTTP Streamable
- Lazy initialization - SDK client created on first tool call
- Connection testing built-in
- All logging to stderr to avoid polluting MCP stdio transport
One-Click Deployment
[!IMPORTANT] Before you click: this server depends on
@wyre-technology/node-hudu, which is hosted on the GitHub Packages npm registry. GitHub Packages has no anonymous access — even though the package is public, everynpm installneeds a token. The cloud builder runsnpm installfor you, so you must give it one, or the build fails withnpm error 401 Unauthorized ... npm.pkg.github.com.
- Create a GitHub Personal Access Token with the
read:packagesscope (classic token). Any GitHub account works — you do not need to be a member of thewyre-technologyorg to read its public packages.- Add it as a build variable when prompted by the deploy flow:
- DigitalOcean App Platform → set an encrypted env var named
NODE_AUTH_TOKENwith scope Build Time to your PAT (theDockerfilereads it viaARG NODE_AUTH_TOKENto authenticatenpm ci).- Cloudflare Workers → set a build variable named
NODE_AUTH_TOKENto your PAT (Workers → Settings → Build → Variables and Secrets).
[Deploy to Cloudflare Workers]
[!NOTE] The DigitalOcean target builds the full Docker image and runs the complete MCP server over HTTP — this is the recommended path for operators. This repo does not ship a
wrangler.json/Workers entrypoint, so for a self-hosted server prefer DigitalOcean or the prebuilt container image (ghcr.io/wyre-ai/hudu-mcp).
Installation
This project depends on @wyre-technology/node-hudu, published to the GitHub
Packages npm registry, which requires a token even for public packages.
Authenticate npm once before installing:
The repo's .npmrc already points the @wyre-technology scope at GitHub Packages and
reads the token from NODE_AUTH_TOKEN, so no further config is needed.
Configuration
Authentication modes
This server talks to Hudu in one of two ways. HUDU_AUTH_MODE picks between
them; if it's unset, the mode is auto-detected from whether HUDU_API_KEY
is set:
-
api_key(auto-selected whenHUDU_API_KEYis set) — the classic mode. This server calls Hudu's REST API directly via@wyre-technology/node-huduand implements all 39 tools itself, exactly as before. This is the mode every existing deployment already uses, and it is 100% unchanged and unaffected by everything below. -
oauth(auto-selected whenHUDU_API_KEYis not set) — for newer Hudu instances that expose their own native MCP server (Hudu Admin -> External Apps -> MCP), protected by interactive OAuth rather than a static API key. In this modehudu-mcpdoes not reimplement any tools; it acts as a thin, authenticated proxy that forwards MCP requests straight through to{HUDU_BASE_URL}/mcpand relays the responses back, so you automatically get whatever tool surface that Hudu instance exposes.The OAuth flow (RFC 9728/8414 discovery, RFC 7591 Dynamic Client Registration, PKCE
authorization_code, no client secret — this is a public client) runs the first time a request needs a token:hudu-mcpdiscovers the instance's OAuth metadata from{HUDU_BASE_URL}/.well-known/oauth-protected-resource/mcpand{HUDU_BASE_URL}/.well-known/oauth-authorization-server.- It registers itself as a public OAuth client via Dynamic Client
Registration (once per Hudu instance — the issued
client_idis cached). - It prints an authorization URL to stderr. Open it in a browser and approve access.
- A short-lived local server on
http://127.0.0.1:<ephemeral-port>/callbackcatches the redirect and exchanges the code for tokens. - Tokens are cached at
~/.hudu-mcp/credentials-<hash-of-base-url>.json(file mode0600), and transparently refreshed on later runs — you should only see the browser prompt again if the refresh token itself expires or is revoked.
Because this flow needs a browser that can reach a callback server bound to
127.0.0.1on the machine runninghudu-mcp, it works forstdio(always local to the calling MCP client) and for a self-hostedhttptransport running on the same machine you're browsing from — e.g. local testing onlocalhost:8080. It does not work for anhttptransport deployed to a remote host you don't have browser-level access to (a cloud VM, a container, etc.): your browser can't reach that machine's own loopback interface to complete the redirect, so the first-run authorization would hang. This is unrelated to gateway mode (AUTH_MODE=gateway), which is a stateless multi-tenant proxy with credentials injected per request via headers and has no single user to run a browser flow for at all — settingHUDU_AUTH_MODE=oauthtogether withAUTH_MODE=gatewayis a startup error.HTTP transport (both
api_keyandoauth) also requiresCONDUIT_S2S_SECRETorMCP_ALLOW_INSECURE_DEV=1. The dev flag binds127.0.0.1only. See HTTP authentication. The stdio transport does not useCONDUIT_S2S_SECRET.
Usage
Claude Desktop (stdio)
Add to your claude_desktop_config.json:
For a newer Hudu instance with its own native MCP server (see
Authentication modes), omit HUDU_API_KEY and only set
HUDU_BASE_URL — hudu-mcp will print an authorization URL to the terminal the
first time it's launched:
HTTP Transport
/health stays unauthenticated and does not read credentials.
Local HTTP without a service-to-service secret is development-only. It binds 127.0.0.1 and logs a warning:
HTTP authentication
With MCP_TRANSPORT=http and a real CONDUIT_S2S_SECRET, every /mcp request must include X-Gateway-S2S. The check is verifyS2sHeader in src/mcp/s2s-verify.ts: the header value is t=<unix seconds>,v1=<hex>, where the hex is HMAC-SHA256 of the literal string t=<unix seconds> keyed with CONDUIT_S2S_SECRET (64 lowercase hex characters). The timestamp must be within 300 seconds of the server clock. A missing or invalid header is HTTP 401, before Hudu credentials are read.
In AUTH_MODE=gateway, /mcp also requires X-Hudu-Base-URL and X-Hudu-API-Key. Those headers are the only credential source for that request. A missing header is HTTP 401 and does not fall back to HUDU_BASE_URL or HUDU_API_KEY in the environment.
Compose refuses to start when CONDUIT_S2S_SECRET is unset. The gateway service sets AUTH_MODE=gateway, does not inject HUDU_BASE_URL or HUDU_API_KEY, and publishes 127.0.0.1:8080:8080:
The image listens on 0.0.0.0 inside the container and still refuses to start without a real secret. Publish the port on loopback:
Tools (39)
Companies (8 tools)
Assets (6 tools)
Asset Layouts (4 tools)
Asset Passwords (5 tools)
Articles (6 tools)
Websites (5 tools)
Other Resources (5 tools)
Resources
Development
License
來源:README.md,提交 5143738
工具
0版本歷史
1- v1.3.7最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分