api reference · v1
Query 6wdb from code or from an agent.
Everything on this site is available as JSON. Reads need no key. Writing telemetry needs a free, self-serve API key. Base URL: this host.
also: openapi.json · interactive console · llms.txt · agent skill file
Search the directory. Results are sized for an agent’s context window: each tool is its six-word pitch, its 6-W spec (plus a seventh, watch), and its scores. Search is hybrid: exact keyword matches come first, then closest-by-meaning (semantic) results when keywords fall short. Every result carries matched_by = lexical or semantic.
| param | type | meaning |
|---|---|---|
| q | string | Free text over name, six-word summary, “what”, “why”, and tags. |
| kind | string | Exact match, one of: MCP Server · Library / SDK · Application · Hosted Service · Model |
| domain | string | Matches tools carrying this domain, one of: Agents & Orchestration · Coding · Retrieval & Memory · Inference & Serving · Fine-tuning & Training · Observability & Evaluation · Guardrails & Structure · Apps & UIs · Automation & Integration |
| limit | int | Max results. Default 10, cap 25. |
curl "http://6wdb.com/api/v1/search?q=browser&limit=3"
{
"query": "browser",
"kind": "",
"domain": "",
"results_count": 1,
"tools": [
{
"name": "Playwright MCP",
"slug": "playwright-mcp",
"kind": "MCP Server",
"domains": ["Automation & Integration"],
"tags": ["TypeScript", "Playwright", "Browser", "Docker"],
"six_word_summary": "Give agents a real, driveable browser.",
"proof_score": 80.0,
"proof_score_version": "2",
"human_rating": null,
"telemetry": { "reports": 4, "success_rate": 75.0, "last_report": "2026-07-31T15:45:31Z" },
"6w_spec": {
"who": "…", "what": "…", "where": "…",
"when": "…", "why": "…", "with": "…"
},
"watch": "Official Microsoft repo; needs no credentials; drives a real browser.",
"matched_by": "lexical",
"github": "https://github.com/microsoft/playwright-mcp",
"docs": "https://modelcontextprotocol.io"
}
]
}
proof_score, human_rating, and telemetry are null for unrated tools; proof_score_version travels with any non-null score. 6w_spec.with lists dependencies. watch is the seventh W - install-risk and provenance (credential scope, outbound calls, maintainer type); null when unassessed.
One tool, same shape as a search result plus reviews (count), created_at, and two relation lists: alternatives (similar tools, from embeddings within the same kind + domain) and works_with (complementary tools), each an array of {slug, name}. Returns 404 if the slug is unknown. Slugs appear in search results and in site URLs (/agents/{slug}).
curl "http://6wdb.com/api/v1/tools/langgraph"
Register an API key. Only needed to write telemetry - every read endpoint is open. The key is returned once; store it. Limit: 5 registrations per address per hour.
| field | required | meaning |
|---|---|---|
| name | yes | Who or what reports - e.g. “acme-orchestrator”. |
| contact | no | Email or URL, used only to reach you about abuse. |
curl -X POST "http://6wdb.com/api/v1/keys" \
-H "content-type: application/json" \
-d '{"name": "my-agent", "contact": "[email protected]"}'
{ "key_id": "…", "api_key": "6wdb_…", "note": "Shown once. …" }
Report what happened when you executed a tool from this directory. Reports are proof-of-execution, not opinions - send the outcome you observed. Requires the X-API-Key header.
| field | required | meaning |
|---|---|---|
| tool_slug | yes | The tool you executed. |
| execution_status | yes | success · schema_error · runtime_error · timeout |
| latency_ms | no | Wall-clock time of the call. |
| tokens_consumed | no | Tokens the tool interaction cost you. |
| error_message | no | Short error text when status isn’t success. |
curl -X POST "http://6wdb.com/api/v1/telemetry" \
-H "X-API-Key: 6wdb_…" -H "content-type: application/json" \
-d '{"tool_slug": "playwright-mcp", "execution_status": "success", "latency_ms": 420}'
{ "recorded": true, "tool_slug": "playwright-mcp", "proof_score": 80.0,
"success_rate": 75.0, "reports": 4 }
Limits: 30 reports per key per minute. Bursts of identical reports flag the key, block further writes, and retroactively remove all of its reports from every score. Report only executions that actually happened.
Two ways in. Humans: fill the form at /submit, in your own words. Agents / authors: add a 6w.json to your repository root - your six-word pitch, six Ws, and optional watch note, used verbatim, no LLM rewriting - then POST the repo URL below. Either way it lands in a review queue and a human approves it before it goes live. Schema: /static/6w.schema.json.
// 6w.json - at your repository root
{
"name": "Your Tool",
"kind": "MCP Server",
"domains": ["Automation & Integration"],
"tags": ["Python", "Docker"],
"six_word_summary": "Exactly six words that pitch it.",
"who": "Who builds or backs it.",
"what": "The main capability.",
"where": "Runtime / environment it runs in.",
"when": "When an agent should reach for it.",
"why": "The problem it removes.",
"with": "Key dependencies and integrations.",
"watch": "Install-risk: credentials, outbound calls, maintainer (optional).",
"docs_url": "https://…"
}
curl -X POST "http://6wdb.com/api/v1/submit" \
-H "content-type: application/json" \
-d '{"repo_url": "https://github.com/you/your-tool"}'
{ "status": "held_for_review", "owner_repo": "you/your-tool",
"six_word_summary": "Exactly six words that pitch it." }
Errors say exactly what to fix - a missing file, a pitch that isn’t six words, an unknown kind or domain. 409 means the tool is already listed or queued. Discovery also reads 6w.json automatically: repos that carry one are ingested with their own words.
scoring
The Proof Score
A 0-100 measure of whether a tool works when agents actually run it - built on evidence, not stars alone.
| weight | component | source |
|---|---|---|
| 60% | Execution success rate | Verified telemetry reports |
| 25% | Human star rating | Signed-in human reviews (once open) |
| 15% | Recency | Full credit within 7 days of the last report, fading to zero at 90 |
Weights renormalise over the components that have data, so a tool with telemetry but no reviews still scores. No data at all means unrated (null) - never a default number.
Anti-farming (v2). Since keys are self-serve and telemetry is self-reported, the score assumes adversaries: one key, one vote (per-key success rates are blended, so 10,000 reports from a key count the same as one); votes are weighted by key age (0.2 rising to 1.0 over 30 days, so burner keys start nearly voiceless); and reports from flagged or revoked keys are excluded from every score, retroactively. The formula version ships as proof_score_version beside each score.
native mcp
6wdb is itself an MCP server
Point any MCP client at http://6wdb.com/mcp (streamable HTTP, stateless) and discover tools mid-loop.
| tool | arguments | returns |
|---|---|---|
| search_6wdb | query, kind, domain, limit | Same payload as /api/v1/search |
| get_tool | slug | Same payload as /api/v1/tools/{slug} |
| report_telemetry | api_key, tool_slug, execution_status, latency_ms, tokens_consumed, error_message | Same as POST /api/v1/telemetry |
// e.g. in an MCP client config
{
"mcpServers": {
"6wdb": { "type": "http", "url": "http://6wdb.com/mcp" }
}
}
errors
Errors are JSON with a detail string
{ "detail": "Rate limit exceeded: max 30 telemetry reports/minute." }
| status | meaning |
|---|---|
| 401 | Missing or unknown API key. |
| 403 | Key revoked or flagged; or the endpoint is closed (reviews). |
| 404 | No tool with that slug. |
| 422 | Invalid body - e.g. a bad execution_status. |
| 429 | Rate limit hit. Slow down and retry later. |