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 集成