Exposes six MCP tools for reading and tracking human physiological state in real time. Send biometric data (heart rate, HRV, voice tone, facial expression, sentiment) via `ingest` and get back a 0-100 stress score plus a `suggested_action` like "de-escalate" or "simplify". The standout feature is `adaptation_effectiveness`, which tells your agent whether its previous response actually lowered stress, creating a closed-loop feedback system. Also available as an A2A agent at `https://mcp.nefesh.ai/a2a` for agent-to-agent collaboration. Free tier includes 1,000 calls per month with no credit card. Reach for this when you want your AI to adjust tone, pacing, or complexity based on measurable human state instead of guessing from chat history.
Public tool metadata for what this MCP can expose to an agent.
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) - suggest...1 paramsGet 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) - suggest...
session_idstringingestSend 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) — card...35 paramsSend 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) — card...
edavaluegazevaluesdnnvaluespo2valuetonevaluepnn50valuermssdvalueposturevalueurgencyvaluemean_ibivalueibi_countvaluesentimentvaluetimestampstringconfidencevalueengagementvalueexpressionvalueheart_ratevaluesession_idstringsubject_idvaluesleep_stagevaluespeech_ratevaluestress_scorevalueglucose_mg_dlvalueglucose_trendvaluesource_devicevalueactivity_levelvaluecognitive_loadvalueeeg_beta_powervalueglucose_mmol_lvalueeeg_alpha_powervalueeeg_theta_powervaluerespiratory_ratevalueskin_temperaturevaluepitch_variabilityvaluesteps_last_minutevalueget_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...1 paramsRetrieve 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...
subject_idstringget_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...2 paramsGet 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...
minutesintegersession_idstringrequest_api_keyRequest a free Nefesh API key. No existing API key needed for this call. Flow: call this → developer clicks email link → poll check_api_key_status with the returned request_id every 10 seconds until status is 'ready'. Free tier: 1,000 calls/month, all signal types, 10 req/min....1 paramsRequest a free Nefesh API key. No existing API key needed for this call. Flow: call this → developer clicks email link → poll check_api_key_status with the returned request_id every 10 seconds until status is 'ready'. Free tier: 1,000 calls/month, all signal types, 10 req/min....
emailstringcheck_api_key_statusPoll for API key activation after calling request_api_key. No existing API key needed. Returns status: 'pending' (keep polling) or 'ready' (includes api_key — store it immediately, returned once only). Poll every 10 seconds. Expires after 15 minutes.1 paramsPoll for API key activation after calling request_api_key. No existing API key needed. Returns status: 'pending' (keep polling) or 'ready' (includes api_key — store it immediately, returned once only). Poll every 10 seconds. Expires after 15 minutes.
request_idstringA Model Context Protocol and Agent-to-Agent (A2A) server that gives AI agents real-time awareness of human physiological state.
Send sensor data (heart rate, voice, facial expression, text sentiment), get back a unified state with a machine-readable action your agent can follow directly. Zero prompt engineering required.
On the 2nd+ call, the response includes adaptation_effectiveness — telling your agent whether its previous approach actually worked. A closed-loop feedback system for self-improving agents.
Most APIs give you a state. Nefesh tells you whether your reaction to that state actually worked.
On the 2nd+ call within a session, every response includes:
{
"state": "focused",
"stress_score": 45,
"suggested_action": "simplify_and_focus",
"adaptation_effectiveness": {
"previous_action": "de-escalate_and_shorten",
"previous_score": 68,
"current_score": 45,
"stress_delta": -23,
"effective": true
}
}
Your agent can read effective: true and know its previous de-escalation worked. If effective: false, the agent adjusts its strategy. No other human-state system provides this feedback loop.
Add the config without an API key — your agent will get one automatically.
{
"mcpServers": {
"nefesh": {
"url": "https://mcp.nefesh.ai/mcp"
}
}
}
Then ask your agent:
"Get me a free Nefesh API key using my email address"
The agent calls request_api_key → you click one email link → the agent picks up the key. No signup form, no manual copy-paste. After that, add the key to your config for future sessions:
{
"mcpServers": {
"nefesh": {
"url": "https://mcp.nefesh.ai/mcp",
"headers": {
"X-Nefesh-Key": "nfsh_free_..."
}
}
}
}
Sign up at nefesh.ai/signup (1,000 calls/month, no credit card), then add the config with your key:
{
"mcpServers": {
"nefesh": {
"url": "https://mcp.nefesh.ai/mcp",
"headers": {
"X-Nefesh-Key": "YOUR_API_KEY"
}
}
}
}
| Agent | Config file |
|---|---|
| Cursor | ~/.cursor/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Code | .mcp.json (project root) |
| VS Code (Copilot) | .vscode/mcp.json or ~/Library/Application Support/Code/User/mcp.json |
| Cline | cline_mcp_settings.json (via UI: "Configure MCP Servers") |
| Continue.dev | .continue/config.yaml |
| Roo Code | .roo/mcp.json |
| Kiro (Amazon) | ~/.kiro/mcp.json |
| OpenClaw | ~/.config/openclaw/mcp.json |
| JetBrains IDEs | Settings > Tools > MCP Server |
| Zed | ~/.config/zed/settings.json (uses context_servers) |
| OpenAI Codex CLI | ~/.codex/config.toml |
| Goose CLI | ~/.config/goose/config.yaml |
| ChatGPT Desktop | Settings > Apps > Add MCP Server (UI) |
| Gemini CLI | Settings (UI) |
| Augment | Settings Panel (UI) |
| Replit | Integrations Page (web UI) |
| LibreChat | librechat.yaml (self-hosted) |
servers instead of mcpServers{
"servers": {
"nefesh": {
"type": "http",
"url": "https://mcp.nefesh.ai/mcp",
"headers": {
"X-Nefesh-Key": "<YOUR_API_KEY>"
}
}
}
}
context_servers in settings.json{
"context_servers": {
"nefesh": {
"settings": {
"url": "https://mcp.nefesh.ai/mcp",
"headers": {
"X-Nefesh-Key": "<YOUR_API_KEY>"
}
}
}
}
}
~/.codex/config.toml[mcp_servers.nefesh]
url = "https://mcp.nefesh.ai/mcp"
.continue/config.yamlmcpServers:
- name: nefesh
type: streamable-http
url: https://mcp.nefesh.ai/mcp
All agents connect via Streamable HTTP — no local installation required.
Nefesh is also available as an A2A-compatible agent. While MCP handles tool-calling (your agent calls Nefesh), A2A enables agent-collaboration — other AI agents can communicate with Nefesh as a peer.
Agent Card: /.well-known/agent-card.json
A2A Endpoint: POST https://mcp.nefesh.ai/a2a (JSON-RPC 2.0)
| A2A Skill | Description |
|---|---|
get-human-state | Stress state (0-100), suggested_action, adaptation_effectiveness |
ingest-signals | Send biometric signals, receive unified state |
get-trigger-memory | Psychological trigger profile (active vs resolved) |
get-session-history | Timestamped history with trend |
Same authentication as MCP — X-Nefesh-Key header or Authorization: Bearer token. Free tier works on both protocols.
Source: nefesh-ai/nefesh-a2a · Docs: nefesh.ai/docs/a2a
| Tool | Auth | Description |
|---|---|---|
request_api_key | No | Request a free API key. You MUST ask the user for their real email first. Do not invent or guess emails. The user receives a verification link they must click. Poll with check_api_key_status until ready. |
check_api_key_status | No | Poll for API key activation using the same email the user provided. Returns pending or ready with API key. |
get_human_state | Yes | Get stress state (0-100), suggested_action (maintain/simplify/de-escalate/pause), and adaptation_effectiveness — a closed-loop showing whether your previous action reduced stress. |
ingest | Yes | Send biometric signals (heart rate, HRV, voice tone, expression, sentiment, 30+ fields) and get unified state back. Include subject_id for trigger memory. |
get_trigger_memory | Yes | Get psychological trigger profile — which topics cause stress (active) and which have been resolved over time. |
get_session_history | Yes | Get timestamped state history with trend (rising/falling/stable). |
Your AI agent can get a free API key autonomously. You only click one email link.
request_api_key(your_real_email). No API key needed for this call.check_api_key_status(your_real_email) every 10 secondsImportant: The agent must use your real, accessible email address. Disposable emails are blocked. The verification link must be clicked by you to activate the key.
Free tier: 1,000 calls/month, all signal types, 10 req/min. No credit card.
After adding the config, ask your AI agent:
"What tools do you have from Nefesh?"
It should list the 6 tools above.
| Plan | Price | API Calls |
|---|---|---|
| Free | $0 | 1,000/month, no credit card |
| Solo | $25/month | 50,000/month |
| Enterprise | Custom | Custom SLA |
Prefer the terminal over MCP? Use the Nefesh CLI (10-32x lower token cost than MCP for AI agents):
npm install -g @nefesh/cli
nefesh ingest --session test --heart-rate 72 --tone calm
nefesh state test --json
GitHub: nefesh-ai/nefesh-cli
Want the AI to adapt automatically? Use the Nefesh Cognitive Compute Router. Change your LLM base URL to gateway.nefesh.ai and the gateway adjusts system prompt and temperature based on biometric state. Three modes: OpenAI-compatible (/v1/chat/completions), Anthropic passthrough (/v1/messages), and Unified Anthropic for any backend. Zero code changes.
GitHub: nefesh-ai/nefesh-gateway
Nefesh implements and maintains the Human State Protocol, an open specification for exchanging human physiological state between AI systems. HSP defines a standard JSON format for stress scores, behavioral recommendations, and adaptation feedback so any agent can produce or consume human state data interoperably. Apache 2.0.
GitHub: nefesh-ai/human-state-protocol · Docs: nefesh.ai/docs/hsp
delete_subjectMIT — see LICENSE.