ToolRank

io.github.brandonclark1996-design由 GitHub 帳號 brandonclark1996-design 發布v0.1.0更新於 Nov 1, 2026

Rank MCP servers/APIs for a job. Lexical ranking, 36 curated tools, no Stripe.

發布方自己的服務:Rank Fast

已驗證Streamable HTTP可網頁執行開發者工具AI 與機器學習

概覽

AI 產生的概覽

ToolRank 依你描述的工作,對一份小型精選 MCP 伺服器與 API 目錄排序,回傳健康狀態、價格區間與安裝片段。

可以做什麼
  • 依工作描述搜尋並排序目錄中的工具,可加上預算、驗證與執行方式條件
  • 依 id 取得單一目錄工具的詳細資料
  • 列出在指定 ISO 時間戳之後更新的工具
  • 回傳含健康狀態、價格區間與安裝片段的候選清單
適用情境
當助理或開發者要為某項工作挑選 MCP 伺服器或 API,並想快速取得附安裝提示的排序候選清單時使用。目錄規模不大且排序採字面比對,結果宜視為起點而非完整目錄。
執行需求
遠端 Streamable HTTP 端點,無需本機安裝。可在 Authorization 標頭提供選用的 Bearer API 金鑰以取得較高配額;未提供時依 IP 匿名限流。需要能連線至該託管服務的網路。
安裝前請注意
選用的 API 金鑰屬機密,會透過 Authorization 標頭傳送,只應使用你願意交給該第三方主機的金鑰。匿名使用依 IP 在滾動 24 小時內限額,配額存於記憶體,重啟即重置。健康狀態常為未知,排序為字面比對,並非學習所得或付費推廣。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 ToolRank,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

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

交給代理程式安裝

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

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

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

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "toolrank": {
      "type": "http",
      "url": "https://toolrank.onrender.com/mcp"
    }
  }
}

README

ToolRank (private MVP → public-ready deploy)

Ranked shortlist of MCP servers / APIs for agent jobs — health, price_band, and install snippet.

Live: https://toolrank.onrender.com — OpenAPI at /openapi.json, Streamable HTTP MCP at /mcp.

Private build for Brandon Clark / ToolRank. All Rights Reserved (see LICENSE). GitHub: brandonclark1996-design/toolrank.

Honesty: Ranking is lexical (token overlap), not learned or sponsored. Catalog is 36 curated tools. health is often unknown. Stripe is not wired. Custom domain is not purchased.

Stack

  • Node 20, TypeScript
  • Hono HTTP API
  • Zod validation
  • JSON catalog (data/catalog.json, 36 curated public tools)
  • MCP stdio (npm run mcp) and Streamable HTTP (POST /mcp) via @modelcontextprotocol/sdk
  • API-key auth + process-local soft quotas (src/auth.ts) on /v1/* and /mcp

Quick start (local)

bash
cd /workspace/toolrankcp .env.example .env# Edit .env — set TOOLRANK_API_KEYS if you want keyed access locallyexport TOOLRANK_API_KEYS='trk_live_test:builder'npm installnpm testnpm run buildnpm start              # listens on 0.0.0.0:$PORT (default 8787)# or: npm run dev

Local curl with a test key

bash
export TOOLRANK_API_KEYS='trk_live_test:builder'npm start
curl -s http://127.0.0.1:8787/health | jq .
curl -s http://127.0.0.1:8787/v1/search \  -H 'content-type: application/json' \  -H 'Authorization: Bearer trk_live_test' \  -d '{"job":"scrape website to markdown for RAG","constraints":{"budget":"any"},"limit":5}' | jq .
# Or X-API-Key:curl -s http://127.0.0.1:8787/v1/search \  -H 'content-type: application/json' \  -H 'X-API-Key: trk_live_test' \  -d '{"job":"web search for research","limit":3}' | jq .

Anonymous (no key) works until the free IP quota is hit (20 / rolling 24h).

Auth + limits

CallerHowSoft limit (process-local, rolling 24h)
AnonymousNo key20 req / IP to /v1/* and /mcp
free keyAuthorization: Bearer <key> or X-API-Key: <key>100 / key
builder keysame headers2000 / key
  • Env: TOOLRANK_API_KEYS = comma-separated keys, optional key:plan (free | builder). Example: trk_live_abc:builder,trk_live_xyz:free. Bare key → free.
  • /health and /openapi.json are always open (no auth / no quota).
  • Invalid key → 401 { error, schema_version, as_of }
  • Over quota → 429 + Retry-After (seconds hint)
  • Authed POST /v1/search responses include plan (free | builder)
  • Quotas are in-memory / process-local — fine for single-instance MVP; they reset on restart and do not sync across replicas.

Setting keys on the host (Brandon)

Do not commit real keys. Set TOOLRANK_API_KEYS in the host environment:

  1. Render: Dashboard → your Web Service → Environment → add TOOLRANK_API_KEYS = trk_live_….…:builder,… (use sync: false / secret). Redeploy.
  2. Railway: Service → Variables → TOOLRANK_API_KEYS.
  3. Docker / VPS: -e TOOLRANK_API_KEYS='…' or systemd/env file outside git.
  4. Local: export TOOLRANK_API_KEYS='trk_live_test:builder' before npm start.

Also set HOST=0.0.0.0 (default in code) and let the platform inject PORT.

HTTP API

Base: https://toolrank.onrender.com (or http://127.0.0.1:8787 locally).

MethodPathDescription
GET/healthLiveness + catalog meta (open)
POST/v1/searchRank tools for a job (auth/quota)
GET/v1/tools/:idTool detail (auth/quota)
GET/v1/fresh?since=Updated since ISO timestamp (auth/quota)
GET/openapi.jsonOpenAPI 3.1 (open)
ALL/mcpStreamable HTTP MCP (auth/quota; same tools as stdio)

Search body

json
{  "job": "string (required)",  "constraints": {    "budget": "free | paid | any",    "auth": "optional hint",    "runtime": "mcp | api | …"  },  "limit": 10,  "check_health": false}

Optional check_health: true probes top results (2s timeout). Failures stay unknown (no false down).

Deploy (no custom domain / no Stripe)

Docker

bash
docker build -t toolrank .docker run --rm -p 8787:8787 \  -e TOOLRANK_API_KEYS='trk_live_prod:builder' \  toolrank

Render

  • Blueprint: render.yaml (Docker web service, free plan friendly).
  • Live hostname: https://toolrank.onrender.com (no custom domain required).
  • Set TOOLRANK_API_KEYS in the dashboard.

Railway

  • railway.toml (Dockerfile) or Procfile (web: node dist/index.js after build).
  • Set TOOLRANK_API_KEYS in Variables. Use Railway’s public HTTP domain.

Build step for native Node hosts: npm ci && npm run build then node dist/index.js.

MCP

Tools: search_tools, get_tool, list_fresh (shared handlers for stdio + HTTP).

Streamable HTTP (production)

https://toolrank.onrender.com/mcp

Same API-key / anonymous quota as /v1/*. Official MCP Registry manifest: server.json (io.github.brandonclark1996-design/toolrank). Do not run mcp-publisher from this box unless asked.

Cursor / Claude HTTP MCP config snippet:

json
{  "mcpServers": {    "toolrank": {      "url": "https://toolrank.onrender.com/mcp"    }  }}

stdio (local)

bash
npm run mcp
json
{  "mcpServers": {    "toolrank": {      "command": "npm",      "args": ["run", "mcp"],      "cwd": "/workspace/toolrank"    }  }}

Ranking

  1. Tokenize job (drop stopwords).
  2. Score tag / name / description matches.
  3. Boost matching price_band under budget constraints.
  4. Boost health: up; penalize health: down.
  5. Tiny preference for mcp / both interfaces.

Honest lexical ranking — no paid placement. 36 curated tools. Health often unknown. Stripe not wired.

Docs

  • docs/AGENT.md — agent-readable usage (auth headers + limits)
  • docs/llms.txt — compact machine summary
  • server.json — Official MCP Registry manifest (not published yet)
  • scripts/README-ingest.md — stub for future registry.modelcontextprotocol.io ingest

Tests & build

bash
npm test    # vitest — ranking, envelope, auth middleware, /mcpnpm run build

TODO

  • Implement registry ingest (scripts/README-ingest.md)
  • Persist health probe results between restarts
  • Stripe / paid upgrades (not started)
  • Custom domain (not purchased / not wired)
  • Shared Redis (or similar) quotas if multi-instance
  • Publish server.json with mcp-publisher (not run from this change)

License

All Rights Reserved — Brandon Clark / ToolRank. See LICENSE.

來源:README.md,提交 fad9537

工具

3

search_tools

Rank MCP servers/APIs for a job. Returns shortlist with health, price_band, install snippet.

輸入參數job必填authlimitbudgetruntime

get_tool

Get a single catalog tool by id

輸入參數id必填

list_fresh

List tools updated after an ISO timestamp (optional)

輸入參數since

版本歷史

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

評分

已滿足適用檢查項的 90%

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

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。

其他 Rank 整合