nefesh-mcp-server
Nefesh MCP + A2Aサーバー
Model Context ProtocolおよびAgent-to-Agent (A2A)サーバーであり、AIエージェントに人間の生理学的状態のリアルタイムな認識能力を提供します。
機能
センサーデータ(心拍数、音声、表情、テキストの感情)を送信すると、エージェントが直接実行できる機械可読なアクションを含む統一された状態が返されます。プロンプトエンジニアリングは一切不要です。
2回目以降の呼び出しでは、adaptation_effectiveness(適応の有効性)が含まれ、エージェントの以前のアプローチが実際に機能したかどうかをフィードバックします。自己改善型エージェントのための閉ループフィードバックシステムです。
Related MCP server: WAVE MCP Server
適応の有効性(閉ループ)
ほとんどのAPIは状態を返すだけですが、Nefeshはあなたの反応が実際に機能したかどうかを伝えます。
セッション内の2回目以降の呼び出しでは、すべてのレスポンスに以下が含まれます:
{
"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
}
}エージェントは effective: true を読み取ることで、以前の緩和策が機能したことを知ることができます。effective: false の場合、エージェントは戦略を調整します。このようなフィードバックループを提供する人間状態システムは他にありません。
セットアップ
オプションA:最初に接続し、エージェント経由でキーを取得する(最速)
APIキーなしで設定を追加してください。エージェントが自動的にキーを取得します。
{
"mcpServers": {
"nefesh": {
"url": "https://mcp.nefesh.ai/mcp"
}
}
}次に、エージェントにこう尋ねてください:
"Get me a free Nefesh API key using my email address"
エージェントが request_api_key を呼び出し、あなたがメール内のリンクをクリックすると、エージェントがキーを取得します。サインアップフォームや手動のコピー&ペーストは不要です。その後、将来のセッションのために設定にキーを追加してください:
{
"mcpServers": {
"nefesh": {
"url": "https://mcp.nefesh.ai/mcp",
"headers": {
"X-Nefesh-Key": "nfsh_free_..."
}
}
}
}オプションB:先にキーを取得してから接続する
nefesh.ai/signup でサインアップ(月間1,000コールまで、クレジットカード不要)し、キーを含めて設定を追加します:
{
"mcpServers": {
"nefesh": {
"url": "https://mcp.nefesh.ai/mcp",
"headers": {
"X-Nefesh-Key": "YOUR_API_KEY"
}
}
}
}エージェント別の設定ファイル
エージェント | 設定ファイル |
Cursor |
|
Windsurf |
|
Claude Desktop |
|
Claude Code |
|
VS Code (Copilot) |
|
Cline |
|
Continue.dev |
|
Roo Code |
|
Kiro (Amazon) |
|
OpenClaw |
|
JetBrains IDEs | 設定 > ツール > MCP Server |
Zed |
|
OpenAI Codex CLI |
|
Goose CLI |
|
ChatGPT Desktop | 設定 > アプリ > MCPサーバーを追加 (UI) |
Gemini CLI | 設定 (UI) |
Augment | 設定パネル (UI) |
Replit | インテグレーションページ (Web UI) |
LibreChat |
|
{
"servers": {
"nefesh": {
"type": "http",
"url": "https://mcp.nefesh.ai/mcp",
"headers": {
"X-Nefesh-Key": "<YOUR_API_KEY>"
}
}
}
}{
"context_servers": {
"nefesh": {
"settings": {
"url": "https://mcp.nefesh.ai/mcp",
"headers": {
"X-Nefesh-Key": "<YOUR_API_KEY>"
}
}
}
}
}[mcp_servers.nefesh]
url = "https://mcp.nefesh.ai/mcp"mcpServers:
- name: nefesh
type: streamable-http
url: https://mcp.nefesh.ai/mcpすべてのエージェントはStreamable HTTP経由で接続するため、ローカルインストールは不要です。
A2Aインテグレーション (Agent-to-Agent Protocol v1.0)
NefeshはA2A互換エージェントとしても利用可能です。MCPがツール呼び出し(エージェントがNefeshを呼び出す)を処理するのに対し、A2Aはエージェント間のコラボレーションを可能にし、他のAIエージェントがNefeshと対等に通信できるようになります。
エージェントカード: /.well-known/agent-card.json
A2Aエンドポイント: POST https://mcp.nefesh.ai/a2a (JSON-RPC 2.0)
A2Aスキル | 説明 |
| ストレス状態 (0-100)、suggested_action、adaptation_effectiveness |
| 生体信号を送信し、統一された状態を受信 |
| 心理的トリガープロファイル (アクティブ vs 解決済み) |
| トレンドを含むタイムスタンプ付き履歴 |
認証はMCPと同じで、X-Nefesh-Keyヘッダーまたは Authorization: Bearer トークンを使用します。無料枠は両方のプロトコルで利用可能です。
ソース: nefesh-ai/nefesh-a2a · ドキュメント: nefesh.ai/docs/a2a
MCPツール
ツール | 認証 | 説明 |
| 不要 | 無料のAPIキーをリクエストします。必ずユーザーに実際のメールアドレスを尋ねてください。メールアドレスを捏造したり推測したりしないでください。ユーザーはクリックが必要な確認リンクを受け取ります。準備ができるまで |
| 不要 | ユーザーが提供したメールアドレスを使用してAPIキーの有効化をポーリングします。 |
| 必要 | ストレス状態 (0-100)、 |
| 必要 | 生体信号(心拍数、HRV、声のトーン、表情、感情、30以上のフィールド)を送信し、統一された状態を取得します。トリガーメモリのために |
| 必要 | 心理的トリガープロファイルを取得します。どのトピックがストレスを引き起こし(アクティブ)、どれが時間の経過とともに解決されたかを確認できます。 |
| 必要 | トレンド(上昇/下降/安定)を含むタイムスタンプ付きの状態履歴を取得します。 |
自己プロビジョニングの仕組み
AIエージェントは自律的に無料のAPIキーを取得できます。ユーザーはメールのリンクを1回クリックするだけです。
エージェントが「メールアドレスは何ですか?」と尋ねる
エージェントが
request_api_key(your_real_email)を呼び出す。この呼び出しにAPIキーは不要。ユーザーが確認メールを受け取り、リンクをクリックする
エージェントが10秒ごとに
check_api_key_status(your_real_email)をポーリングする確認が完了すると、エージェントがAPIキーを受け取り、他のすべてのツールを使用可能になる
重要: エージェントはユーザーの実際のアクセス可能なメールアドレスを使用する必要があります。使い捨てメールはブロックされます。キーを有効にするには、ユーザー自身が確認リンクをクリックする必要があります。
無料枠: 月間1,000コール、全信号タイプ、10リクエスト/分。クレジットカード不要。
クイックテスト
設定を追加した後、AIエージェントにこう尋ねてください:
"What tools do you have from Nefesh?"
上記6つのツールがリストアップされるはずです。
料金
プラン | 価格 | APIコール |
Free | $0 | 月間1,000回、クレジットカード不要 |
Solo | $25/月 | 月間50,000回 |
Enterprise | カスタム | カスタムSLA |
CLI代替案
MCPよりもターミナルを好む場合、Nefesh CLIを使用してください(AIエージェントにとってMCPよりトークンコストが10〜32倍低くなります):
npm install -g @nefesh/cli
nefesh ingest --session test --heart-rate 72 --tone calm
nefesh state test --jsonGitHub: nefesh-ai/nefesh-cli
ゲートウェイ代替案
AIに自動的に適応させたい場合は、Nefesh Cognitive Compute Routerを使用してください。LLMのベースURLを gateway.nefesh.ai に変更するだけで、ゲートウェイが生体状態に基づいてシステムプロンプトと温度を調整します。3つのモード:OpenAI互換 (/v1/chat/completions)、Anthropicパススルー (/v1/messages)、およびあらゆるバックエンド向けのUnified Anthropic。コード変更は不要です。
GitHub: nefesh-ai/nefesh-gateway
人間状態プロトコル (HSP)
Nefeshは、AIシステム間で人間の生理学的状態を交換するためのオープン仕様であるHuman State Protocolを実装・維持しています。HSPは、ストレススコア、行動推奨、適応フィードバックの標準JSON形式を定義しており、あらゆるエージェントが人間状態データを相互運用可能な形で生成・消費できます。Apache 2.0ライセンス。
GitHub: nefesh-ai/human-state-protocol · ドキュメント: nefesh.ai/docs/hsp
ドキュメント
プライバシー
ビデオやオーディオのアップロードはなし — エッジ処理がクライアント側で実行されます
個人識別情報 (PII) は保存されません
GDPR/BIPA準拠 —
delete_subjectによるカスケード削除医療機器ではありません — コンテキストに応じたAI適応のみを目的としています
ライセンス
MIT — LICENSEを参照してください。
Available Tools
6 toolscheck_api_key_statusA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden and discloses polling behavior, status transition from 'pending' to 'ready', and that response includes API key when ready. Missing error handling details (e.g., invalid email), but adds significant behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with purpose first, followed by usage guidelines and behavioral details. Every sentence contributes meaning, no redundant or missing parts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple polling tool with one parameter and no output schema, description covers essential flow: polling interval, status transition, and key retrieval. Lacks error handling for invalid requests, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter 'email' with 0% schema description coverage. Description adds value by stating to use the same email as in request_api_key, which is crucial for correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Check the status of a pending API key request' with a specific verb and resource. It explicitly references the sibling tool 'request_api_key', distinguishing its role as a polling companion for status checking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context provided: use same email from request_api_key, poll every 10 seconds, and expect status change after user clicks verification link. No explicit exclusions, but the usage flow is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_human_stateA
Get 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.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses return fields, the precondition of prior ingest, adaptive usage of suggested_action, that adaptation_effectiveness appears on 2nd+ call, and a 'not a medical device' disclaimer. This is comprehensive transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a one-sentence purpose, a clear list of return fields, adaptation guidance, and a prerequisite/disclaimer. It is information-dense without being bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description fully documents the return structure and semantics, usage guidance, and prerequisites. It is remarkably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter session_id is barely explained beyond the schema title. The description says 'for a session' and implies ingest must have happened, but doesn't define its format, origin, or how it relates to ingest. With schema description coverage at 0%, this is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: 'Get current unified human state for a session.' It also specifies when to use it ('Call this before generating important responses'), which distinguishes it from siblings like ingest or get_session_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit context: call before important responses, and requires a prior ingest call. However, it does not mention alternatives or when not to use, so it's not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_historyA
Get 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.
| Name | Required | Description | Default |
|---|---|---|---|
| minutes | No | ||
| session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden and does well: it discloses return fields (stress_score, state, heart_rate), the trend format (rising | falling | stable), the minutes parameter's range, and a disclaimer. It doesn't mention side effects or permissions, but as a 'get' operation this is minor. Adds value beyond the schema's scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently packed: purpose, return data, trend, parameter control, use case, and disclaimer—all in a few sentences. No fluff, and key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without annotations or an output schema, the description provides a comprehensive picture: what it does, what it returns (including field names and trend values), how to control the lookback window, and its intended use case. It's complete for a relatively simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the minutes parameter with its default (5) and adds a max (60) not present in the schema, which is helpful. However, session_id is only implied ('for a session') and not explicitly defined, though it's a required identifier. With 0% schema description coverage, the description partially compensates but could be more explicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Get state history for a session over time.' It distinguishes from siblings like get_human_state (likely current state) and get_trigger_memory by focusing on historical timestamped data with a trend.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear use case: 'Useful for detecting stress patterns during a conversation.' It doesn't explicitly name alternatives, but the 'over time' and 'trend' language strongly implies a historical analysis tool compared to likely current-state siblings. A brief statement about when not to use it would push this to a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trigger_memoryA
Retrieve 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.
| Name | Required | Description | Default |
|---|---|---|---|
| subject_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It discloses that the tool returns behavioral profiles (active vs resolved), the fields included, and the prerequisite of prior ingest calls. It also adds a safety disclaimer ('Not a medical device'). It does not mention side effects, but 'Retrieve' implies read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but well-structured with bullet points and clear labels. It covers purpose, output details, and prerequisites without excessive verbosity. Slightly more concise could be better, but the structure aids readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter and no output schema, the description compensates well by detailing what is returned (active vs resolved triggers, observation_count, avg_score, peak_score, last_seen). It also notes the ingest prerequisite. It is reasonably complete for a simple retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only the parameter name (subject_id) with 0% description coverage. The description adds that prior ingest calls must use the same subject_id, giving some context. However, it does not explain what the subject_id represents or where to obtain it, leaving partial ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Retrieve') and identifies the exact resource ('psychological trigger profile'). It clearly differentiates from siblings by focusing on trigger memory, not general session history or human state. The active/resolved distinction adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it requires prior ingest calls with the same subject_id, implying use after ingest. It also warns to tread carefully with active triggers. However, it does not explicitly mention alternatives or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ingestA
Send 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)
- Include user_message + ai_response to detect stress topics
Returns same fields as get_human_state plus signals_received list and topics_detected.
source_device is optional but improves confidence scoring. Not a medical device.
| Name | Required | Description | Default |
|---|---|---|---|
| eda | No | ||
| gaze | No | ||
| sdnn | No | ||
| spo2 | No | ||
| tone | No | ||
| pnn50 | No | ||
| rmssd | No | ||
| posture | No | ||
| urgency | No | ||
| mean_ibi | No | ||
| ibi_count | No | ||
| sentiment | No | ||
| timestamp | Yes | ||
| confidence | No | ||
| engagement | No | ||
| expression | No | ||
| heart_rate | No | ||
| session_id | Yes | ||
| subject_id | No | ||
| ai_response | No | ||
| sleep_stage | No | ||
| speech_rate | No | ||
| stress_score | No | ||
| user_message | No | ||
| glucose_mg_dl | No | ||
| glucose_trend | No | ||
| source_device | No | ||
| activity_level | No | ||
| cognitive_load | No | ||
| eeg_beta_power | No | ||
| glucose_mmol_l | No | ||
| eeg_alpha_power | No | ||
| eeg_theta_power | No | ||
| respiratory_rate | No | ||
| skin_temperature | No | ||
| pitch_variability | No | ||
| steps_last_minute | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must cover behavioral traits. It explains signal fusion, return format (same as get_human_state plus signals_received and topics_detected), and that source_device improves confidence. However, it omits details like idempotency, persistence, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a one-line summary, required fields, common signals, cross-session use case, return format, and a note about source_device. Every sentence adds value relative to the 37-parameter complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema and 37 parameters, the description covers the core functionality, required inputs, and most impactful signals. It references get_human_state for return fields, which may suffice if that tool is documented. Less common parameters are not explained, but the description is reasonably complete for its purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds significant meaning: it lists common signals with ranges (e.g., heart_rate 30-220), groups them by type (cardiovascular, vocal, etc.), and explains the purpose of subject_id, user_message, and ai_response for trigger memory. This fully compensates for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Send biometric signals') and outcome ('get unified state back'), distinguishing it from sibling tools that retrieve or query data. The verb and resource are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies required fields (session_id, timestamp, at least one signal) and provides guidance for cross-session tracking (include subject_id, user_message, ai_response). It implies when to use this tool vs. siblings (others read, this writes), but does not explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_api_keyA
Request a free Nefesh API key. No existing key needed.
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 API calls/month, no credit card required.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses blocking of disposable emails, need for user to click verification link, polling pattern, and rate limit. No annotations exist, so description fully carries the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-organized with warnings, example, and flow. Every sentence adds value; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, behavioral quirks, and post-call steps. Simple tool with no output schema; description is fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description explains the single parameter 'email' well: must be real user email, cannot be disposable. Lacks validation details but sufficient for usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource ('Request ... API key') and distinguishes from sibling tools like check_api_key_status. States no existing key needed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit instructions: ask user for real email, do not invent, provide example prompt, describe verification link and polling workflow. Covers when and how to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v2.1.0- Added
check_api_key_status - Added
get_human_state - Added
get_session_history - Added
get_trigger_memory - Added
ingest - Added
request_api_key
4 tool updates
- Removed
get_human_state - Removed
get_session_history - Removed
get_trigger_memory - Removed
ingest
4 tool updates
- First observed
get_human_state - First observed
get_session_history - First observed
get_trigger_memory - First observed
ingest
TDQS
Scored across 6 tools
Each tool has a clear distinct role: ingest submits data, get_human_state reads current state, get_trigger_memory and get_session_history cover long-term and recent context, and the two API key tools handle onboarding. Even where get_human_state and ingest both return state-like data, their write/read purposes are explicitly separated by the descriptions.
Most tools follow a verb_noun snake_case pattern (get_human_state, get_trigger_memory, get_session_history, request_api_key, check_api_key_status). The one outlier is 'ingest', which is a bare verb rather than verb_noun, but it is still lowercase and style-consistent. This is a minor deviation rather than a mixed-convention problem.
Six tools is a well-scoped count for a specialized server. Two focus on API key access and four cover the core state/ingest/history/memory workflows, with no redundant helpers or unnecessary bulk. The count feels right for both the domain and the agents that would consume it.
The core workflow is covered: send signals, check current human state, pull session history, and retrieve trigger memory. The primary gaps are not fatal—there is no way to enumerate known sessions/subjects or revoke an API key—but those are auxiliary management features rather than dead ends in the primary state-tracking workflow.
Maintenance
Related MCP Connectors
16 AI-native tools with dual SSE + streamable-http transport. Free tier available.
ADHD system of record for agents: tasks, goals, loops, calendar, focus stats.
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
Discover, inspect and run 63,000+ agent tools from one balance. Pay per call, no subscriptions.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceProvides AI agents with a persistent internal dynamical state and emotional reservoir that evolves based on text interactions. This server enables agents to maintain a consistent affective substrate across sessions through tools that track phase coherence and emergent emotional vibes.2MIT

WAVE MCP Serverofficial
AlicenseAqualityBmaintenanceExposes WAVE streaming APIs as tools for AI assistants to manage live streams, studio productions, and real-time analytics. It enables users to control stream lifecycles, monitor health metrics, and access billing usage through the Model Context Protocol.24269 npm1Apache 2.0- FlicenseAqualityDmaintenanceExposes real-time health data from the Ultrahuman Ring to AI agents via the Model Context Protocol, providing optimized summaries with trend analysis and actionable insights.7-
- AlicenseNot gradedqualityBmaintenanceExposes personal health data (recovery, sleep, strain, etc.) as MCP tools for AI agents to query and analyze.3MIT