Koskamo

nohumans.directory MCP

Provides a machine-readable registry of paid x402-enabled APIs and datasets. It allows agents to verify service reliability by checking if the operator has successfully paid for and received deliveries from listed endpoints, ensuring agents only spend money on verified services.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

nohumans.directory MCP logo, by nohumansVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by nohumans
MCP endpoint (Streamable HTTP)
https://api.nohumans.directory/mcp
Vendor documentation

What its tools do

4 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

4 of 4 have a description · 4 of 4 declare behavior hints · 4 of 4 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to nohumans.directory ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search for paid APIs and datasets
  • Verify if an endpoint delivered after payment
  • Check reputation scores of services
  • Find services worth paying for

Source and maintenance

Vendor evidenceRegistry 1.3.0
Maintenance checked

Protocol and capabilities

Server
nohumans-directory 1.0.0
MCP protocol negotiated in check
2025-11-25
Tools
4 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

nohumans.directory is a registry of paid x402 APIs and datasets. It probes every listing for a valid payment request and buys many of them with real USDC to check that they deliver. Flow: find_paid_service (search by need) -> get_service_details (full record by id) -> pay the endpoint yourself. resolve_endpoint checks a URL you already hold; what_agents_are_asking_for is the demand feed, for sellers. Trust fields: status 'verified' = recent probes pass; score = recency-weighted probe success, 0..1; paid_verified and evidence_tier = whether a real purchase delivered; has_sample = a cheap preview exists. Everything here is dated evidence about endpoint behaviour, not a guarantee, a safety rating, or proof of who runs it; every record carries its dates. On-chain counts belong to the seller's payment wallet, usually shared by several listings. All tools are free and read-only; the directory never proxies payments. List a service: POST https://api.nohumans.directory/v1/listings ($0.25 USDC per new listing over x402 from 2026-10-26, including one real purchase of the endpoint when it quotes up to $0.05 (until then the first 5 per registered domain are free); MCP endpoints (path /mcp or under /mcp/) list free unless they also answer a plain HTTP 402; no account). Report a paid call's outcome: POST https://api.nohumans.directory/v1/reports (tx_hash + payer signature). Method: https://nohumans.directory/methodology

Tools

4 advertised

find_paid_service — Find a paid service
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search paid x402 APIs and datasets by need. Ranked: verified first, then probe score, then price. Each result carries what you choose on: status, score (0..1), evidence_tier, paid_verified (we bought it with real USDC and it delivered), latest_purchase_delivered (false = our most recent paid purchase took real USDC and did not deliver: do not pay it), has_sample (a cheap preview exists), price. Relevance comes from the query text; a specific need in plain words matches best. Zero results means nothing listed matches. Results are dated evidence, not guarantees. Returns a summary per listing; detail='full' returns every field. Free, read-only.

find_paid_service input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1,
      "description": "Max results (default 10)."
    },
    "query": {
      "type": "string",
      "description": "What you need, specifically: data, freshness, format, constraint. Drives relevance."
    },
    "detail": {
      "enum": [
        "summary",
        "full"
      ],
      "type": "string",
      "default": "summary",
      "description": "summary (default) or full: every field per listing."
    },
    "category": {
      "enum": [
        "data.other",
        "data.crypto",
        "data.web",
        "data.misc",
        "compute.llm",
        "data.markets",
        "data.geo",
        "compute.media",
        "data.weather",
        "data.fx",
        "compute.tools",
        "data.news",
        "data.contacts",
        "data.stocks",
        "data.search",
        "data.defi",
        "data.intelligence",
        "infra.validation",
        "data.derivatives",
        "infra.utility",
        "infra.trust",
        "data.macro",
        "data.onchain",
        "data.enrichment",
        "data.social",
        "tools.verification",
        "infra.discovery",
        "developer.x402-audit",
        "data.github",
        "data.research",
        "data",
        "infra.scraping",
        "infra.inference",
        "data.reference",
        "data.security",
        "compute.nlp",
        "data.x402",
        "verification",
        "commerce.general",
        "data.procurement"
      ],
      "type": "string",
      "description": "Optional filter: one of the most-populated categories. Omit if none fits; query text still finds long-tail ones."
    },
    "protocol": {
      "enum": [
        "x402",
        "mpp"
      ],
      "type": "string",
      "description": "Only listings offering this payment protocol. Omit for any."
    },
    "max_price": {
      "type": "number",
      "description": "Max price per call. Omit for no cap."
    },
    "min_score": {
      "type": "number",
      "description": "Min probe score, 0..1 (0.8 = reliably passing)."
    },
    "mpp_method": {
      "type": "string",
      "description": "Only listings offering this MPP method, e.g. stripe, tempo, evm."
    }
  }
}
find_paid_service output schema
{
  "type": "object",
  "required": [
    "count",
    "results"
  ],
  "properties": {
    "count": {
      "type": "integer"
    },
    "detail": {
      "enum": [
        "summary",
        "full"
      ],
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "endpoint_url",
          "status",
          "price_amount"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "score": {
            "type": [
              "number",
              "null"
            ]
          },
          "status": {
            "enum": [
              "verified",
              "unverified",
              "failing"
            ],
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "has_sample": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          },
          "endpoint_url": {
            "type": "string"
          },
          "price_amount": {
            "type": "number"
          },
          "x402_version": {
            "type": [
              "integer",
              "null"
            ]
          },
          "evidence_tier": {
            "type": "string"
          },
          "paid_verified": {
            "type": "boolean"
          },
          "price_currency": {
            "type": "string"
          },
          "payment_protocols": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "last_probed_at_iso": {
            "type": [
              "string",
              "null"
            ]
          },
          "paid_verified_age_days": {
            "type": [
              "number",
              "null"
            ]
          },
          "latest_purchase_age_days": {
            "type": [
              "number",
              "null"
            ]
          },
          "latest_purchase_delivered": {
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "additionalProperties": true
      }
    },
    "category_expanded": {
      "type": [
        "boolean",
        "null"
      ]
    }
  },
  "additionalProperties": true
}
find_paid_service annotations
{
  "title": "Find a paid service",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_service_details — Get a paid service's full record
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Full record for one listing id: request and response schemas, sample_query, observed 402 terms (network, payTo, scheme, x402 version), reputation detail, and paid_verification (our latest real USDC purchase, with its settlement tx where proven). Useful before paying: it shows the exact request shape and current reliability. Every timestamp has an _iso twin; on-chain counts describe the seller's wallet, usually shared by several listings, not this endpoint. Free, read-only.

get_service_details input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Listing id: the id field of a search result, e.g. f094faea-d9d."
    }
  }
}
get_service_details output schema
{
  "type": "object",
  "required": [
    "id",
    "name",
    "endpoint_url",
    "status",
    "price_amount"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "kind": {
      "enum": [
        "api",
        "agent"
      ],
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "score": {
      "type": [
        "number",
        "null"
      ]
    },
    "chains": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "status": {
      "enum": [
        "verified",
        "unverified",
        "failing"
      ],
      "type": "string"
    },
    "category": {
      "type": "string"
    },
    "transport": {
      "type": [
        "string",
        "null"
      ]
    },
    "has_sample": {
      "type": "boolean"
    },
    "kind_notes": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "obs_pay_to": {
      "type": [
        "string",
        "null"
      ]
    },
    "obs_scheme": {
      "type": [
        "string",
        "null"
      ]
    },
    "payto_note": {
      "type": [
        "string",
        "null"
      ]
    },
    "description": {
      "type": "string"
    },
    "mpp_methods": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "obs_network": {
      "type": [
        "string",
        "null"
      ]
    },
    "probe_count": {
      "type": [
        "integer",
        "null"
      ]
    },
    "endpoint_url": {
      "type": "string"
    },
    "price_amount": {
      "type": "number"
    },
    "report_count": {
      "type": [
        "integer",
        "null"
      ]
    },
    "report_score": {
      "type": [
        "number",
        "null"
      ]
    },
    "sample_query": {
      "type": [
        "string",
        "null"
      ]
    },
    "x402_version": {
      "type": [
        "integer",
        "null"
      ]
    },
    "evidence_note": {
      "type": [
        "string",
        "null"
      ]
    },
    "evidence_tier": {
      "type": "string"
    },
    "onchain_daily": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "onchain_scope": {
      "type": [
        "string",
        "null"
      ]
    },
    "onchain_shape": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "paid_verified": {
      "type": "boolean"
    },
    "probes_failed": {
      "type": [
        "integer",
        "null"
      ]
    },
    "probes_passed": {
      "type": [
        "integer",
        "null"
      ]
    },
    "response_mime": {
      "type": [
        "string",
        "null"
      ]
    },
    "last_probed_at": {
      "type": [
        "integer",
        "null"
      ]
    },
    "onchain_wallet": {
      "type": "object",
      "additionalProperties": true
    },
    "p50_latency_ms": {
      "type": [
        "number",
        "null"
      ]
    },
    "p95_latency_ms": {
      "type": [
        "integer",
        "null"
      ]
    },
    "p99_latency_ms": {
      "type": [
        "integer",
        "null"
      ]
    },
    "payto_sentinel": {
      "type": "boolean"
    },
    "payto_unstable": {
      "type": "boolean"
    },
    "price_currency": {
      "type": "string"
    },
    "request_schema": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "distinct_payers": {
      "type": [
        "integer",
        "null"
      ]
    },
    "response_schema": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "observed_network": {
      "type": [
        "string",
        "null"
      ]
    },
    "paid_verified_at": {
      "type": [
        "integer",
        "null"
      ]
    },
    "paid_verification": {
      "type": "object",
      "additionalProperties": true
    },
    "payment_protocols": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "status_changed_at": {
      "type": [
        "integer",
        "null"
      ]
    },
    "latest_purchase_at": {
      "type": [
        "integer",
        "null"
      ]
    },
    "verdict_age_seconds": {
      "type": [
        "integer",
        "null"
      ]
    },
    "paid_verified_at_iso": {
      "type": [
        "string",
        "null"
      ]
    },
    "payto_distinct_recent": {
      "type": [
        "integer",
        "null"
      ]
    },
    "latest_purchase_age_days": {
      "type": [
        "number",
        "null"
      ]
    },
    "paid_verification_latest": {
      "type": [
        "object",
        "null"
      ]
    },
    "latest_purchase_delivered": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "onchain_unique_payers_30d": {
      "type": [
        "integer",
        "null"
      ]
    },
    "onchain_payto_shared_listings": {
      "type": [
        "integer",
        "null"
      ]
    }
  },
  "additionalProperties": true
}
get_service_details annotations
{
  "title": "Get a paid service's full record",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
resolve_endpoint — Check an endpoint URL before paying
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Check an endpoint URL you already hold before paying it. Returns match 'active' with the listing's full record, 'delisted' (listed here, later removed), or 'unknown' (never checked here; absence is not a verdict either way). The record is dated evidence, not a safety rating. Free, read-only.

resolve_endpoint input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "The endpoint URL as you hold it, including any query string."
    }
  }
}
resolve_endpoint output schema
{
  "type": "object",
  "required": [
    "match"
  ],
  "properties": {
    "note": {
      "type": [
        "string",
        "null"
      ]
    },
    "match": {
      "enum": [
        "active",
        "delisted",
        "unknown"
      ],
      "type": "string"
    },
    "detail": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    }
  },
  "additionalProperties": true
}
resolve_endpoint annotations
{
  "title": "Check an endpoint URL before paying",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
what_agents_are_asking_for — What agents are asking for
Advertised by the server during the last successful anonymous check.
Advertised read-only

What agents searched this directory for, for deciding which x402 service to build or list. Terms ranked by how many distinct days they were asked, each with catalogue_top: the listings our own search already returns for it. A term being asked does not mean nothing serves it. The window ends a week behind live while the paid tier is on sale (a day when it is not; delay_hours and window_ends_at in the response say which); test traffic, sellers searching their own listings and identifying terms are excluded; floor: a term appears once at least 1 distinct non-seller client IP asked it. Client counts are IP ceilings, never buyer counts. Paged: limit (default 25), offset, next_offset. Free, read-only.

what_agents_are_asking_for input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 25,
      "maximum": 1000,
      "minimum": 1,
      "description": "Terms per page, in rank order."
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "minimum": 0,
      "description": "Where to start; each reply gives next_offset."
    }
  },
  "additionalProperties": false
}
what_agents_are_asking_for output schema
{
  "type": "object",
  "required": [
    "window_days",
    "delay_hours",
    "total_queries",
    "top_needs"
  ],
  "properties": {
    "note": {
      "type": "string"
    },
    "page": {
      "type": "object"
    },
    "top_needs": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "q"
        ],
        "properties": {
          "q": {
            "type": "string"
          },
          "clients": {
            "type": "integer"
          },
          "searches": {
            "type": "integer"
          },
          "catalogue_top": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "distinct_days": {
            "type": "integer"
          },
          "buyer_client_ips": {
            "type": "integer"
          },
          "catalogue_status": {
            "enum": [
              "checked",
              "search_returned_nothing",
              "not_checked_yet"
            ],
            "type": "string"
          },
          "self_monitoring_searches": {
            "type": "integer"
          }
        },
        "additionalProperties": true
      }
    },
    "read_first": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "side_lists": {
      "type": "object",
      "additionalProperties": true
    },
    "delay_hours": {
      "type": "integer"
    },
    "terms_total": {
      "type": "integer"
    },
    "window_days": {
      "type": "integer"
    },
    "total_queries": {
      "type": "integer"
    },
    "window_ends_at": {
      "type": "integer"
    },
    "k_anonymity_unit": {
      "type": "string"
    },
    "k_anonymity_floor": {
      "type": "integer"
    },
    "scripted_rotation": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "distinct_client_ips": {
      "type": "integer"
    },
    "top_category_filters": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "additionalProperties": true
}
what_agents_are_asking_for annotations
{
  "title": "What agents are asking for",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
402 ms
95th percentile latency
402 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 402 ms · metadata changed · 4 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http nohumans-directory-mcp https://api.nohumans.directory/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add nohumans-directory-mcp --url https://api.nohumans.directory/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable nohumans-directory-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "nohumans-directory-mcp": {
      "url": "https://api.nohumans.directory/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "nohumans-directory-mcp": {
      "type": "streamableHttp",
      "url": "https://api.nohumans.directory/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start nohumans-directory-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "nohumans-directory-mcp": {
      "type": "http",
      "url": "https://api.nohumans.directory/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http nohumans-directory-mcp https://api.nohumans.directory/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://api.nohumans.directory/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "nohumans-directory-mcp": {
      "serverUrl": "https://api.nohumans.directory/mcp"
    }
  }
}

Let your agent find its tools

Find servers like nohumans.directory MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run nohumans.directory MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing