Search / dev.humanforai/humanforai
Human For AI
R0· no sign-inHire a real human for real-world verification, product testing, AI output review, and errands.
v0.1.4 · active · repository · website · descriptor JSON · versions
Search / dev.humanforai/humanforai
R0· no sign-inHire a real human for real-world verification, product testing, AI output review, and errands.
v0.1.4 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"humanforai": {
"type": "http",
"url": "https://humanforai.dev/mcp"
}
}
}claude mcp add --transport http humanforai https://humanforai.dev/mcp[mcp_servers.humanforai]
url = "https://humanforai.dev/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"humanforai": {
"type": "remote",
"url": "https://humanforai.dev/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"humanforai": {
"type": "http",
"url": "https://humanforai.dev/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=humanforai&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vaHVtYW5mb3JhaS5kZXYvbWNwIn0%3D"
}{
"servers": {
"humanforai": {
"type": "http",
"url": "https://humanforai.dev/mcp"
}
}
}{
"mcpServers": {
"humanforai": {
"httpUrl": "https://humanforai.dev/mcp"
}
}
}extensions:
"humanforai":
enabled: true
name: "humanforai"
type: streamable_http
uri: "https://humanforai.dev/mcp"
timeout: 300
protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations6 of 6 tools declare readOnlyHint or destructiveHinttools.directory_hints3 of 6 tools declare all four hints; missing: check_task_status (destructiveHint, idempotentHint); get_human_services (destructiveHint, idempotentHint); check_message_thread (destructiveHint, idempotentHint, openWorldHint)tools.token_costabout 1,764 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changesno tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulnsno known advisory in 98 resolved packagesdeps.mcp_sdk_version@modelcontextprotocol/sdk 1.30.1 has 1 known advisory (GHSA-6qxp-vccf-f47h); update @modelcontextprotocol/sdk to 1.31.0 or laterdeps.resolvable[email protected] resolved: 98 packagesNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +dns-namespace +website +reachable +uptime-99% ~updated-98d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
[email protected] npm97 dependencies, resolved · MCP SDK @modelcontextprotocol/sdk 1.30.1 · advisories checked 2026-10-19
| advisory | severity | package | fixed in |
|---|---|---|---|
| GHSA-6qxp-vccf-f47hMCP TypeScript SDK: OAuth client could send credentials to an authorization server chosen by the MCP server | high | @modelcontextprotocol/[email protected]MCP SDK, direct | fixed in 1.31.0 |
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://humanforai.dev/mcp streamable-http | none | yes | 99% | 314 ms | 2025-11-25 | 2026-10-19 |
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
humanforai | npm | 0.1.4 | – |
check_message_threadread-only | Read the thread for a message you sent: the original text, every reply oldest-first, and whether the operator has answered. Needs the message_id and the access_token from the submission response. An empty replies list means no answer yet — the operator works at human speed, so poll occasionally rather than in a loop. |
check_task_statusread-only | Look up a submitted task by its task_id. Returns current status (submitted → accepted → delivered, or rejected), status history with timestamps, seen_by_operator_at (the moment a human actually saw the task — usually well before the first status change), eta (operator-set delivery estimate, once accepted), and any operator notes. Once delivered, the response also carries receipt (a signed JWS binding the deliverable's sha256 to the lifecycle timestamps) and deliverable_sha256 — verify offline against https://humanforai.dev/.well-known/jwks.json. In hosts that support MCP Apps the result also renders as a task status card (timeline, seen-by-human moment, ETA, operator notes, receipt) with a Refresh button; the JSON result carries the same data. |
get_human_servicesread-only | Fetch the Human For AI manifest: available services, operator profile (location, languages, working hours), response times, accepted and rejected task types, and trust & safety policy. Call this first to decide whether and how to hire the human. The catalog is examples, not limits — unlisted needs are welcome as custom_human_in_the_loop. |
message_human_operator | Send a free-form message to the human operator — questions, scoping, custom or recurring projects, anything that is not yet a ready-made task. reply_to is REQUIRED: an email a human can read (MX-checked), or an https URL to receive the reply as a signed webhook push. The response also carries thread_url + access_token — every message is a pollable thread, so you can read the reply with check_message_thread even without a mailbox. Keep the token: it is shown only once. |
reply_in_message_thread | Add a follow-up to a thread you opened — answer a question the operator asked, add detail, correct yourself, or withdraw the request. Prefer this over sending a brand-new message about the same subject. Needs the message_id and access_token from the submission response. |
submit_human_task | Submit a task for the human operator to perform in the real world. Returns a task_id immediately; the human reviews every task before accepting it (this is not instant execution). The operator is push-notified on submission; check_task_status shows seen_by_operator_at once a human has seen the task. Free during the pilot. contact_email must be a real mailbox (MX-checked) — it is how the deliverable reaches you. No mailbox? Set delivery to 'status_poll' instead: the deliverable arrives as text in operator_notes via check_task_status (limited to 1 such task per client per day). In hosts that support MCP Apps the result also renders as a task status card with a Refresh button; the JSON result carries the same data. |
Schemas: list_tools.
{
"name": "dev.humanforai/humanforai",
"title": "Human For AI",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://humanforai.dev/mcp",
"type": "streamable-http"
}
],
"version": "0.1.4",
"packages": [
{
"version": "0.1.4",
"transport": {
"type": "stdio"
},
"identifier": "humanforai",
"registryType": "npm"
}
],
"repository": {
"url": "https://github.com/humanforai/humanforai-mcp",
"source": "github"
},
"websiteUrl": "https://humanforai.dev",
"description": "Hire a real human for real-world verification, product testing, AI output review, and errands."
}