WP HealthKit

com.wphealthkit由 wphealthkit.com 發布官方發布者v0.6.4更新於 Oct 24, 2026

Security audits for WordPress plugins and themes — 62 verification layers, fix plans and SBOMs.

已驗證Streamable HTTP可網頁執行開發者工具安全與監控

概覽

AI 產生的概覽

呼叫 WP HealthKit 對 WordPress 外掛與佈景主題進行安全稽核,回傳問題清單、評級、修正提示與批次風險彙總。

可以做什麼
  • 依 slug 稽核 wp.org 外掛、稽核本機外掛 ZIP,或分批稽核目錄內所有 ZIP
  • 輪詢稽核狀態並取得完整報告、評級與風險等級
  • 依嚴重程度與類別篩選、分頁檢視問題清單
  • 取得依嚴重程度分組的 AI 修正提示,可直接交給編碼助理
  • 不消耗稽核額度地查詢外掛現有評級與問題數量
  • 查看本期用量與配額,並將問題標記為誤報
適用情境
適合在安裝或發佈 WordPress 外掛前做安全檢查、在編碼助理中把稽核結果轉成修正提示,或需要批次篩檢一批外掛 ZIP 時使用。
執行需求
需要 WP HealthKit API 金鑰,透過環境變數 WPHK_API_KEY 提供,可於服務商後台取得。可作為遠端端點使用,也可透過 npx 在本機執行(需 Node.js)。宣告使用 OAuth 驗證。選用環境變數 WPHK_API_URL 可指向自架或測試執行個體。
安裝前請注意
API 金鑰屬機密資訊,經環境變數傳入,請避免寫入共用的設定檔。稽核會消耗與方案綁定的每月配額,批次執行可能很快用完。本機 ZIP 路徑與目錄路徑會傳送到該服務進行掃描。標記誤報會向 WP HealthKit 團隊送出報告以供審查。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 WP HealthKit,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.wphealthkit%2Fmcp-server/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "wp-healthkit": {
      "type": "http",
      "url": "https://mcp.wphealthkit.com/mcp"
    }
  }
}

README

@wphealthkit/mcp-server v0.4.0

An MCP (Model Context Protocol) server that gives AI assistants direct access to WP HealthKit's plugin audit API. Once configured, tools like Claude Desktop, Claude Code, and Cursor can trigger security audits, retrieve findings, fetch AI-ready fix prompts, bulk-audit entire plugin directories, and flag false positives — all without leaving the chat interface.

Setup

Required environment variable

WPHK_API_KEY=your_api_key_here

Get your API key from wphealthkit.com/dashboard.

Claude Desktop

Add the following to your claude_desktop_config.json (usually at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

json
{  "mcpServers": {    "wphealthkit": {      "command": "npx",      "args": ["-y", "@wphealthkit/mcp-server"],      "env": {        "WPHK_API_KEY": "your_api_key_here"      }    }  }}

Claude Code

Add to your project's .mcp.json:

json
{  "mcpServers": {    "wphealthkit": {      "command": "npx",      "args": ["-y", "@wphealthkit/mcp-server"],      "env": {        "WPHK_API_KEY": "your_api_key_here"      }    }  }}

Cursor

Open Cursor Settings > MCP > Add Server and use:

json
{  "wphealthkit": {    "command": "npx",    "args": ["-y", "@wphealthkit/mcp-server"],    "env": {      "WPHK_API_KEY": "your_api_key_here"    }  }}

Available tools

ToolDescription
audit_pluginTrigger a security audit for a wp.org plugin by slug. Returns an audit ID.
audit_plugin_zipTrigger an audit from a local ZIP file. Returns an audit ID.
audit_plugins_bulkAudit all plugin ZIP files in a local directory. Submits in batches of 10, streams results as each completes, and prints a final summary with risk breakdown and links to top findings.
get_reportPoll the status and full results of an audit by its ID.
get_findingsGet paginated findings, with optional filters for severity and category.
get_fix_promptGet AI-ready fix prompts for an audit's findings, batched by severity.
check_pluginLook up a plugin's security grade, risk level, and findings count from the directory.
list_usageCheck your current usage — audits used this month, tier, and limits.
flag_findingFlag a finding as a false positive. The report goes to the WP HealthKit team for review; confirmed patterns result in a scanner rule update that prevents that pattern in all future audits.

Tool reference

audit_plugin

Triggers a security audit for any plugin hosted on wp.org.

Parameters

ParameterTypeRequiredDescription
slugstringYesThe wp.org plugin slug (e.g. "contact-form-7").
enginesstring[]NoAudit engines to run. Defaults to all engines.

Example

javascript
audit_plugin({ slug: "contact-form-7" })// Returns: { auditId: "abc-123", status: "queued" }

audit_plugin_zip

Triggers an audit from a local ZIP file. Useful for plugins not on wp.org or pre-release builds.

Parameters

ParameterTypeRequiredDescription
pathstringYesAbsolute path to the ZIP file on disk.
enginesstring[]NoAudit engines to run. Defaults to all engines.

Example

javascript
audit_plugin_zip({ path: "/Users/me/plugins/my-plugin.zip" })// Returns: { auditId: "def-456", status: "queued" }

audit_plugins_bulk

Audits all plugin ZIP files in a local directory. Submissions are batched in groups of 10. Results stream as each audit completes, and a final summary table is printed with a risk breakdown and links to top findings.

Parameters

ParameterTypeRequiredDescription
directorystringYesAbsolute path to the directory containing plugin ZIPs.
enginesstring[]NoAudit engines to run (e.g. ["performance"]). Defaults to all engines.
patternstringNoGlob pattern to match files. Defaults to "*.zip".

Example

javascript
audit_plugins_bulk({ directory: "/Users/me/plugins", engines: [] })

Output

Results stream to the conversation as each plugin completes. Once all audits finish, the tool prints a summary table:

Plugin                  Risk      Findings   Report----------------------  --------  ---------  ----------------------------------------my-plugin.zip           CRITICAL  14         https://wphealthkit.com/report/abc-123another-plugin.zip      LOW       2          https://wphealthkit.com/report/def-456legacy-plugin.zip       HIGH      7          https://wphealthkit.com/report/ghi-789
Summary: 3 plugins audited — 1 CRITICAL, 1 HIGH, 0 MEDIUM, 1 LOW

get_report

Polls the status and full results of an audit. Call this after audit_plugin or audit_plugin_zip to wait for completion and retrieve the report.

Parameters

ParameterTypeRequiredDescription
auditIdstringYesThe audit ID returned by audit_plugin or audit_plugin_zip.

Example

javascript
get_report({ auditId: "abc-123" })// Returns: { status: "completed", grade: "C", riskLevel: "HIGH", findingsCount: 7, reportUrl: "..." }

get_findings

Returns paginated findings for a completed audit. Supports filtering by severity and category.

Parameters

ParameterTypeRequiredDescription
auditIdstringYesThe audit ID.
severitystringNoFilter by severity: "CRITICAL", "HIGH", "MEDIUM", or "LOW".
categorystringNoFilter by category (e.g. "xss", "csrf", "performance").
pagenumberNoPage number for pagination. Defaults to 1.

Example

javascript
get_findings({ auditId: "abc-123", severity: "CRITICAL" })

get_fix_prompt

Returns AI-ready fix prompts for an audit's findings, grouped and batched by severity. Pass the output directly to a coding assistant to generate patches.

Parameters

ParameterTypeRequiredDescription
auditIdstringYesThe audit ID.
severitystringNoLimit prompts to a specific severity level.

Example

javascript
get_fix_prompt({ auditId: "abc-123", severity: "HIGH" })

check_plugin

Looks up a plugin's current security grade, risk level, and findings count from the WP HealthKit directory without triggering a new audit.

Parameters

ParameterTypeRequiredDescription
slugstringYesThe wp.org plugin slug.

Example

javascript
check_plugin({ slug: "woocommerce" })// Returns: { grade: "B", riskLevel: "MEDIUM", findingsCount: 3, lastAudited: "2026-04-20" }

list_usage

Returns your current billing period usage — audits consumed, tier, and remaining quota.

Parameters

None.

Example

javascript
list_usage()// Returns: { auditsUsed: 47, auditsLimit: 100, tier: "pro", resetsAt: "2026-05-01" }

flag_finding

Flags a finding as a false positive. The report is reviewed by the WP HealthKit team. If the pattern is confirmed as a false positive, the scanner rule is updated to prevent the same result from appearing in all future audits.

Parameters

ParameterTypeRequiredDescription
auditIdstringYesUUID of the audit containing the finding.
findingIdstringYesID of the finding to flag (e.g. "finding-12").
findingTitlestringYesTitle of the finding as shown in the report.
reasonstringNoExplanation of why this is a false positive.

Example

javascript
flag_finding({  auditId: "abc-123-def-456",  findingId: "finding-5",  findingTitle: "Named arguments used in internal function call",  reason: "These are positional args — the scanner is misidentifying the call signature"})// Returns: { flagged: true, reviewTicket: "FP-2891" }

Usage flows

Audit a single plugin and get fix prompts

audit_plugin({ slug: "my-plugin" })  → get_report({ auditId: "..." })          // poll until status === "completed"  → get_findings({ auditId: "...", severity: "CRITICAL" })  → get_fix_prompt({ auditId: "..." })

Audit all plugins in a local directory

audit_plugins_bulk({ directory: "/Users/me/plugins" })  // streams per-plugin results as they complete  // prints final summary table with risk breakdown

Check a plugin before installing

check_plugin({ slug: "advanced-custom-fields" })  // returns grade, risk level, and findings count without consuming an audit credit

Flag a false positive after reviewing findings

get_findings({ auditId: "...", severity: "HIGH" })  → flag_finding({      auditId: "...",      findingId: "finding-12",      findingTitle: "Unescaped output in template",      reason: "Output is escaped upstream via wp_kses before reaching this call"    })

Environment variables

VariableDefaultDescription
WPHK_API_KEY—Required. Your WP HealthKit API key.
WPHK_API_URLhttps://wphealthkit.com/api/v1Override to point at a self-hosted or staging instance.

License

MIT

來源:README.md,提交 9c3e31d

工具

0
該伺服器需要 API 金鑰等憑證,因此 SourceWeft 無法在沒有憑證的情況下讀取其工具,也未收錄。

版本歷史

1
  1. v0.6.4最新Sep 16, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分