protogrid

Search / ai.nefesh/human-state

Nefesh — Real-Time Human State Awareness for AI

R0· no sign-in

Fuses biometric signals into a stress score (0-100) for AI adaptation. MCP + A2A native.

v4.0.0 · active · repository · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality71needs work
Trust82of 100
Uptime, 30 days100%
Latency p50423 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "human-state": {
      "type": "http",
      "url": "https://mcp.nefesh.ai/mcp",
      "headers": {
        "X-Nefesh-Key": "${X_NEFESH_KEY}"
      }
    }
  }
}
claude mcp add --transport http human-state https://mcp.nefesh.ai/mcp --header "X-Nefesh-Key: ${X_NEFESH_KEY}"
[mcp_servers.human-state]
url = "https://mcp.nefesh.ai/mcp"
env_http_headers = { "X-Nefesh-Key" = "X_NEFESH_KEY" }
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "human-state": {
      "type": "remote",
      "url": "https://mcp.nefesh.ai/mcp",
      "enabled": true,
      "headers": {
        "X-Nefesh-Key": "{env:X_NEFESH_KEY}"
      }
    }
  }
}
{
  "mcpServers": {
    "human-state": {
      "type": "http",
      "url": "https://mcp.nefesh.ai/mcp",
      "headers": {
        "X-Nefesh-Key": "${X_NEFESH_KEY}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=human-state&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLm5lZmVzaC5haS9tY3AiLCJoZWFkZXJzIjp7IlgtTmVmZXNoLUtleSI6IiR7WF9ORUZFU0hfS0VZfSJ9fQ%3D%3D"
}
{
  "servers": {
    "human-state": {
      "type": "http",
      "url": "https://mcp.nefesh.ai/mcp",
      "headers": {
        "X-Nefesh-Key": "${X_NEFESH_KEY}"
      }
    }
  }
}
{
  "mcpServers": {
    "human-state": {
      "httpUrl": "https://mcp.nefesh.ai/mcp",
      "headers": {
        "X-Nefesh-Key": "${X_NEFESH_KEY}"
      }
    }
  }
}
extensions:
  "human-state":
    enabled: true
    name: "human-state"
    type: streamable_http
    uri: "https://mcp.nefesh.ai/mcp"
    headers:
      "X-Nefesh-Key": "${X_NEFESH_KEY}"
    timeout: 300

Placeholders to fill from your own secret store: ${X_NEFESH_KEY}. The registry never accepts secret values.

Quality 71 / 100needs work

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene79 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • warn
    tools.annotationsonly 1 of 7 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: delete_subject (readOnlyHint, openWorldHint); ingest (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_human_state (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 2,116 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability50 · weight 15
  • pass
    stability.changes5 tool changes in 30 days
  • fail
    stability.rug_pull2 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

7 tools, about 2,116 tokens to load them all · tool set 96797c858f02 · tools last changed 2026-10-02 · checked 2026-10-20 10:03 UTC

Tool changes

  • check_api_key_statuschangeddescription, input schemameaning changed
    before

    Check the status of a pending API key request. Use the exact same email the user provided to request_api_key. Poll this every 10 seconds. Once the user clicks the verification link in their inbox, status changes from 'pending' to 'ready' and the response includes the API key. Store it immediately — returned once only. Expires after 15 minutes.

    after · 32% of words in common

    Check a pending API key authorization using its request_id. Use request_id exactly as returned by request_api_key, never an email. Poll every 10 seconds. awaiting_user means the user must open the URL; pending means email verification is still required. ready returns the API key once only. Store it and include it in all subsequent HTTP calls. Stop on expired; ask the user before starting another authorization.

  • request_api_keychangeddescription, input schemameaning changed
    before

    Request a free Nefesh API key. No existing API key needed for this call. IMPORTANT: You MUST ask the user for their real email address before calling this tool. Do NOT invent, guess, or generate an email address. The user will receive a verification link they must click to activate the key. Without clicking that link, no API key will be issued. Disposable or temporary email services are blocked. Example prompt to the user: "What is your email address? You will receive a verification link to activate your free API key." Flow: call this with the user's real email, then poll check_api_key_status every 10 seconds until status is 'ready'. Free tier: 1,000 calls/month, all signal types, 10 req/min. No credit card.

    after · 27% of words in common

    Start free API key authorization; no existing API key needed. Returns a verification_url. Ask the user to open that URL in their browser, enter their own email, then open the verification email and confirm access for their agent. This tool does not accept email addresses and does not send email. Do not choose, invent, or submit an email on the user's behalf. Poll check_api_key_status with the returned request_id at the supplied interval. Stop if the request expires. Never create new requests in a loop.

  • delete_subjectadded

    Permanently delete all sessions and trigger memory for a subject. Irreversible. Only call when the user explicitly requests this deletion.

  • get_session_historychangedinput schema
  • ingestchangedinput schema

Full history: list_changes · trend: quality JSON.

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.

Trust 82 / 100

provenance75
liveness100
freshness45
hygiene100

+repository +dns-namespace +reachable +uptime-100% -stale-200d

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.nefesh.ai/mcp streamable-httpnoneyes100%423 ms2025-11-252026-10-20

Tools (7)

check_api_key_statusCheck a pending API key authorization using its request_id. Use request_id exactly as returned by request_api_key, never an email. Poll every 10 seconds. awaiting_user means the user must open the URL; pending means email verification is still required. ready returns the API key once only. Store it and include it in all subsequent HTTP calls. Stop on expired; ask the user before starting another authorization.
delete_subjectdestructivePermanently delete all sessions and trigger memory for a subject. Irreversible. Only call when the user explicitly requests this deletion.
get_human_stateGet current unified human state for a session. Call this before generating important responses. Returns: - state: calm | relaxed | focused | stressed | acute_stress - stress_score: 0-100 (lower = calmer) - confidence: 0.0-1.0 (based on signal quality and device type) - suggested_action: maintain_engagement | simplify_and_focus | de-escalate_and_shorten | pause_and_ground - action_reason: human-readable explanation of why this action was suggested - adaptation_effectiveness (on 2nd+ call): shows whether your previous suggested_action actually reduced stress — contains previous_action, stress_delta, and effective boolean. Use this to self-improve. Use suggested_action to adapt your response: calm/relaxed = full complexity, focused = shorter and structured, stressed = max 2 sentences, acute_stress = one grounding sentence only. Requires a prior ingest call to have data. Not a medical device.
get_session_historyGet state history for a session over time. Returns timestamped datapoints with stress_score, state, and heart_rate for each observation. Includes an overall trend: rising | falling | stable. Use minutes parameter to control the lookback window (default: 5, max: 60). Useful for detecting stress patterns during a conversation. Not a medical device.
get_trigger_memoryRetrieve psychological trigger profile for a subject. Returns which conversation topics consistently cause stress (active triggers) and which have been resolved over time. - active triggers: topics where stress was elevated across multiple sessions. Tread carefully. - resolved triggers: topics where stress has decreased. Safe to explore deeper. Each trigger includes observation_count, avg_score, peak_score, and last_seen. Requires prior ingest calls with the same subject_id. Not a medical device.
ingestSend biometric signals from any sensor, get unified state back. Required: session_id + timestamp (ISO 8601) + at least one signal. Send whatever you have — the API fuses all signals into one state. Common signals (highest impact): - heart_rate (bpm, 30-220) + rmssd (ms) — cardiovascular - tone: calm | tense | anxious | hostile — vocal - sentiment: -1.0 to 1.0 — textual - expression: relaxed | neutral | tense — visual For trigger memory (cross-session psychological tracking): - Include subject_id (consistent per user, hashed) Returns same fields as get_human_state plus signals_received list and topics_detected (if conversation text was included). source_device is optional but improves confidence scoring. Not a medical device.
request_api_keyStart free API key authorization; no existing API key needed. Returns a verification_url. Ask the user to open that URL in their browser, enter their own email, then open the verification email and confirm access for their agent. This tool does not accept email addresses and does not send email. Do not choose, invent, or submit an email on the user's behalf. Poll check_api_key_status with the returned request_id at the supplied interval. Stop if the request expires. Never create new requests in a loop.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "ai.nefesh/human-state",
  "title": "Nefesh — Real-Time Human State Awareness for AI",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.nefesh.ai/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "X-Nefesh-Key",
          "isSecret": true,
          "description": "API key. Get free at https://nefesh.ai/signup (1,000 calls/month) or connect without a key and use the request_api_key tool."
        }
      ]
    }
  ],
  "version": "4.0.0",
  "repository": {
    "url": "https://github.com/nefesh-ai/nefesh-mcp-server",
    "source": "github"
  },
  "description": "Fuses biometric signals into a stress score (0-100) for AI adaptation. MCP + A2A native."
}