The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the ToolRank listing page.
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.
data/catalog.json, 36 curated public tools)npm run mcp) and Streamable HTTP (POST /mcp) via @modelcontextprotocol/sdksrc/auth.ts) on /v1/* and /mcpAnonymous (no key) works until the free IP quota is hit (20 / rolling 24h).
| Caller | How | Soft limit (process-local, rolling 24h) |
|---|---|---|
| Anonymous | No key | 20 req / IP to /v1/* and /mcp |
free key | Authorization: Bearer <key> or X-API-Key: <key> | 100 / key |
builder key | same headers | 2000 / key |
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).401 { error, schema_version, as_of }429 + Retry-After (seconds hint)POST /v1/search responses include plan (free | builder)Do not commit real keys. Set TOOLRANK_API_KEYS in the host environment:
TOOLRANK_API_KEYS = trk_live_….…:builder,… (use sync: false / secret). Redeploy.TOOLRANK_API_KEYS.-e TOOLRANK_API_KEYS='…' or systemd/env file outside git.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.
Base: https://toolrank.onrender.com (or http://127.0.0.1:8787 locally).
| Method | Path | Description |
|---|---|---|
| GET | /health | Liveness + catalog meta (open) |
| POST | /v1/search | Rank tools for a job (auth/quota) |
| GET | /v1/tools/:id | Tool detail (auth/quota) |
| GET | /v1/fresh?since= | Updated since ISO timestamp (auth/quota) |
| GET | /openapi.json | OpenAPI 3.1 (open) |
| ALL | /mcp | Streamable HTTP MCP (auth/quota; same tools as stdio) |
Optional check_health: true probes top results (2s timeout). Failures stay unknown (no false down).
render.yaml (Docker web service, free plan friendly).https://toolrank.onrender.com (no custom domain required).TOOLRANK_API_KEYS in the dashboard.railway.toml (Dockerfile) or Procfile (web: node dist/index.js after build).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.
Tools: search_tools, get_tool, list_fresh (shared handlers for stdio + HTTP).
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:
job (drop stopwords).price_band under budget constraints.health: up; penalize health: down.mcp / both interfaces.Honest lexical ranking — no paid placement. 36 curated tools. Health often unknown. Stripe not wired.
docs/AGENT.md — agent-readable usage (auth headers + limits)docs/llms.txt — compact machine summaryserver.json — Official MCP Registry manifest (not published yet)scripts/README-ingest.md — stub for future registry.modelcontextprotocol.io ingestscripts/README-ingest.md)server.json with mcp-publisher (not run from this change)All Rights Reserved — Brandon Clark / ToolRank. See LICENSE.