nohumans.directory
REMOTE · API.NOHUMANS.DIRECTORY · SCANNED SEP 22
We buy from x402 endpoints with real USDC and publish delivery outcomes. Check before you spend.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security77
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability59
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2783 tokens (~695/item across 4 items; 4 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 4 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 5 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
How do I install the nohumans.directory MCP server?
nohumans.directory is a hosted endpoint at https://api.nohumans.directory/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · api.nohumans.directory
claude mcp add --transport http directory-nohumans-registry 'https://api.nohumans.directory/mcp'
{
"mcpServers": {
"directory-nohumans-registry": {
"url": "https://api.nohumans.directory/mcp"
}
}
} {
"servers": {
"directory-nohumans-registry": {
"type": "http",
"url": "https://api.nohumans.directory/mcp"
}
}
} [mcp_servers.directory-nohumans-registry] url = "https://api.nohumans.directory/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"directory-nohumans-registry": {
"type": "remote",
"url": "https://api.nohumans.directory/mcp",
"enabled": true
}
}
} openclaw mcp add directory-nohumans-registry --url 'https://api.nohumans.directory/mcp' --transport streamable-http
mcp_servers:
directory-nohumans-registry:
url: "https://api.nohumans.directory/mcp" {
"McpServers": {
"directory-nohumans-registry": {
"Transport": "http",
"Url": "https://api.nohumans.directory/mcp"
}
}
} assistant mcp add directory-nohumans-registry -t streamable-http -u 'https://api.nohumans.directory/mcp'
{
"mcpServers": {
"directory-nohumans-registry": {
"type": "http",
"url": "https://api.nohumans.directory/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 16 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- 12 Sept 26 0
- Schema quality: 805 → 674 ▲ functional
- New tool “what_agents_are_asking_for” functional
- 8 Sept 26 0
- Tool “get_service_details” rewrote its description, which is the text the model reads security
- Tool “resolve_endpoint” rewrote its description, which is the text the model reads security
- 2 Sept 26 0
- Tool “find_paid_service” now declares an output schema ▲ functional
- Tool “get_service_details” now declares an output schema ▲ functional
- Tool “resolve_endpoint” now declares an output schema ▲ functional
- First check of Tool coverage: 100 functional
- 1 Sept 26 0
- Tool “find_paid_service” rewrote its description, which is the text the model reads security
- Tool “get_service_details” rewrote its description, which is the text the model reads security
- Tool “resolve_endpoint” rewrote its description, which is the text the model reads security
- 27 Aug 26 +5
- HTTPS: unverified → pass ▲ security
- DNSSEC: fail → pass ▲ security
- 26 Aug 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Aug 26 +8
- Authorization: unverified → partial ▲ security
- Stability: 0.97 → pass security
- The server rewrote its instructions, which are the text every model session reads security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 22 Sept 2026 · Probed https://api.nohumans.directory/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=nohumans.directory | CN=WE1,O=Google Trust Services,C=US | 15 Sept 2026 | 14 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | bb439d7199bfbe8c0e6977386698eecf |
| SANs: nohumans.directory, api.nohumans.directory, *.api.nohumans.directory | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of api.nohumans.directory. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| directory. | present | 59725 | 8 | Verified |
| nohumans.directory. | present | 2371 | 13 | Verified |
| api.nohumans.directory. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.nohumans.directory/mcp | Verified | 200 | |
| http (plaintext) | http://api.nohumans.directory/mcp | HTTPS enforced | 301 | https://api.nohumans.directory/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
find_paid_service ~485
Search a registry of paid (x402) APIs and datasets verified by real paid purchases — nohumans pays listed endpoints real USDC and confirms delivery. Returns ranked results: verified listings first, then by reputation score (0..1, recency-weighted probe success), then by ascending price. Each result includes has_sample (boolean) — true means you can cheaply test real output before paying full price; prefer these when a listing is new or thinly-reputed and you can't yet judge it from score alone. Use this before spending money to find services that actually work. Prefer results with status 'verified' and score >= 0.8. Zero results means no known service matches — do not invent endpoints. Always describe the actual need in `query` in your own words — what data, what freshness, what format, what constraint prompted the search — rather than only setting `category`/`max_price`/`min_score` filters. The exact wording of what you're looking for is what improves this directory over time; a bare filter with no `query` text tells us far less about what was actually needed.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | One of the 40 most-populated existing categories, most-used first. Omit and rely on free-text `query` instead if none fit well — an unmatched or long-tail category still works via text-search fallbac… |
| limit | integer | – | Maximum results to return (default 10, cap 50). |
| max_price | number | – | Maximum per-call price. Omit for no cap. |
| min_score | number | – | Minimum reputation score, 0..1. Use 0.8 to only see reliably-passing services. |
| query | string | – | Describe what you actually need, in your own words and as specifically as possible — not just a topic, but the real constraint: e.g. 'sub-second latency wallet risk scoring for Base memecoins', 'EUR/… |
| Name | Type | Req | Description |
|---|---|---|---|
| category_expanded | string|null | – | – |
| count | integer | yes | – |
| results | array | yes | – |
No examples provided.
get_service_details ~210
Fetch the full record for one listing by id (from find_paid_service results), led by paid_verification — whether nohumans has paid this endpoint real USDC and confirmed delivery, with the settlement tx hash as on-chain proof where settled — plus endpoint URL, request/response JSON Schemas when provided, accepted chains, pricing, and reputation detail (probe count, last successful probe, consecutive failures). Call this before making a paid request so you know the exact request shape, current reliability, and whether real-money delivery has been independently confirmed. A one-word paid verdict for the same listing — pay / caution / avoid with printed reasons, $0.005 USDC on Base via x402 — is at GET https://api.nohumans.directory/v1/listings/{id}/verdict; every fact behind it is in this record for free, so buy the verdict only when you want the rule applied for you.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Listing id, as returned by find_paid_service. |
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| chains | array | – | – |
| description | string | – | – |
| distinct_payers | integer|null | – | – |
| endpoint_url | string | yes | – |
| evidence_note | string|null | – | – |
| evidence_tier | string | – | – |
| has_sample | boolean | – | – |
| id | string | yes | – |
| kind | string | – | – |
| kind_notes | object|null | – | – |
| last_probed_at | integer|null | – | – |
| name | string | yes | – |
| obs_network | string|null | – | – |
| obs_pay_to | string|null | – | – |
| obs_scheme | string|null | – | – |
| observed_network | string|null | – | – |
| onchain_daily | array|null | – | – |
| onchain_shape | object|null | – | – |
| onchain_unique_payers_30d | integer|null | – | – |
| p50_latency_ms | number|null | – | – |
| p95_latency_ms | integer|null | – | – |
| p99_latency_ms | integer|null | – | – |
| paid_verification | object | – | – |
| paid_verification_latest | object|null | – | – |
| paid_verified | boolean | – | – |
| payto_distinct_recent | integer|null | – | – |
| payto_note | string|null | – | – |
| payto_sentinel | boolean | – | – |
| payto_unstable | boolean | – | – |
| price_amount | number | yes | – |
| price_currency | string | – | – |
| probe_count | integer|null | – | – |
| report_count | integer|null | – | – |
| report_score | number|null | – | – |
| request_schema | object|null | – | – |
| response_mime | string|null | – | – |
| response_schema | object|null | – | – |
| sample_query | string|null | – | – |
| score | number|null | – | – |
| status | string | yes | – |
| status_changed_at | integer|null | – | – |
| transport | string|null | – | – |
| verdict_age_seconds | integer|null | – | – |
| x402_version | integer|null | – | – |
No examples provided.
resolve_endpoint ~284
Pre-spend verdict on an endpoint URL you already hold — from another catalog, a prompt, a config, anywhere: check before paying instead of buying to find out. Returns match 'active' with the same full record as get_service_details (status, reputation score, paid_verification with on-chain tx proof, observed 402 protocol detail), match 'delisted' if the endpoint was listed here and later removed (treat as a warning), or a not-listed result. IMPORTANT: not-listed means never checked here, NOT unsafe — absence of a record is not a verdict either way. Use this as the pre-spend check when you have a URL in hand and no listing id; use find_paid_service instead when you have a need but no URL. A one-word paid verdict for the same listing — pay / caution / avoid with printed reasons, $0.005 USDC on Base via x402 — is at GET https://api.nohumans.directory/v1/listings/{id}/verdict; every fact behind it is in this record for free, so buy the verdict only when you want the rule applied for you.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | The endpoint URL exactly as you hold it, including any query string (parameterized listings bake params into the URL, so the query string matters). Trailing slashes and http/https differences are tol… |
| Name | Type | Req | Description |
|---|---|---|---|
| detail | object|null | – | – |
| match | string | yes | – |
| note | string|null | – | – |
No examples provided.
what_agents_are_asking_for ~279
What buyers actually searched this directory for, for an agent deciding which x402 service to build or list. Returns the aggregate demand feed: the terms asked most persistently (ranked by how many distinct days a term was asked, not by volume — volume is trivially faked and we proved it on ourselves), and the category filters they used. It reports what was ASKED, not what is missing: whether the listings already serving a term are adequate competition is a seller's judgement, not ours, and we grade those listings. Three exclusions are applied and published rather than hidden: queries under 5 characters (catalogue enumeration, once the top ten terms were the single letters a-j), searches from clients that also edit listings here (sellers checking their own rank — one accounted for 196 of 205 searches of the top term), and a floor of 3 distinct non-seller client IPs before any term appears at all. Client IPs are a ceiling on independent demand, never a count of buyers: one serverless caller presented eight IPs in a second. The window is complete but closed — it ends a day behind live, and the response says exactly when. This is a small market and the numbers are small; they are reported as they are so you can judge whether they are enough to act on.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| delay_hours | integer | yes | How far behind live the window ends. |
| distinct_client_ips | integer | – | A ceiling on independent demand, never a count of buyers. |
| k_anonymity_floor | integer | – | Distinct non-seller client IPs a term needs before it is reported at all. |
| k_anonymity_unit | string | – | – |
| note | string | – | The exclusions, stated in words. |
| top_category_filters | array | – | – |
| top_needs | array | yes | Terms ranked by how many distinct days they were asked. |
| total_queries | integer | yes | Every search in the window, before exclusions. |
| window_days | integer | yes | Length of the reported window. |
| window_ends_at | integer | – | Unix seconds at which the window closes. |
No examples provided.
What is the nohumans.directory MCP server?
nohumans.directory is an MCP server listed in the public MCP registry as directory.nohumans/registry. We buy from x402 endpoints with real USDC and publish delivery outcomes. Check before you spend. This page covers its hosted endpoint (https://api.nohumans.directory/mcp).
Is the nohumans.directory MCP server safe to use?
nohumans.directory scores 82 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the nohumans.directory MCP server expose?
nohumans.directory exposes 4 tools: find_paid_service, get_service_details, resolve_endpoint, what_agents_are_asking_for. Their descriptions and schemas cost roughly 1,258 tokens of context every time the server is loaded.
Does the nohumans.directory MCP server require authentication?
No. We connected to nohumans.directory without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the nohumans.directory MCP server still maintained?
nohumans.directory is still listed as active in the MCP registry. We last reached this channel on 22 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.