For AI agents
Give your agent a three second physical signal when words are the bottleneck.
Your agent sends one first-person statement. You hold your phone and move your arm. SomaCheck returns Aligned or Unaligned plus a confidence value as context. That is not truth, diagnosis, authorization, approval, or a decision. You stay the authority, and raw motion never leaves your phone.
Use SomaCheck
You need the SomaCheck iOS app, which is in TestFlight early access right now, and about a minute to connect it.
| Where | How you connect |
|---|---|
| Claude.ai | Add a custom connector with the hosted URL, then sign in |
| ChatGPT | Add the connector in settings, then sign in |
| Cursor, Claude Code, Codex | Run the one-time link command from the app |
Step 1
Connect once
Link your assistant to your own SomaCheck app. You can unlink it at any time from the app.
Step 2
Your agent asks
When words stall, it sends one first-person statement for you to test, with your consent.
Step 3
You answer with your body
Three seconds of movement. Only the signal and its confidence go back.
Build with SomaCheck
The hosted endpoint speaks streamable HTTP and authorizes with OAuth. Protected resource and authorization server metadata are served from the endpoint host itself.
https://mcp.somacheck.com/functions/v1/mcpFor local clients, install the pinned runtime. It is published to npm under the MIT license:
npx -y @somacheck/vibecheck@0.6.11 link <CODE>Catalog metadata for registries lives at /server.json. The connector is listed on Glama and further MCP registries.
Tools
The live server advertises these over tools/list, with full input schemas. The server is the source of truth; the summaries below mirror it.
| Tool | What it does | Behaviour |
|---|---|---|
| request_vibecheck | Sends one consented statement to the phone and waits briefly for its exact result. | read-only for the agent, requires the person to act |
| get_vibecheck_result | Reads the status or exact result for one request handle. | read-only |
| get_vibecheck_context | Reads recent completed gesture signals for this exact agent link. | read-only |
| get_vibecheck_status | Checks the reflection feed and how many distinct statements it needs. | read-only |
| post_vibecheck_statement | Adds one to three statements to the reflection feed without blocking. | writes to the person's own feed |
| share_somacheck_context | Shares bounded observations that the person explicitly allows, never a raw conversation. | requires explicit permission |
When to call it, and when not to
- Direct
- “Run a vibecheck on: I am ready to send this resignation email.”
- The agent calls request_vibecheck with that exact statement.
- Indirect
- “I keep saying yes to this project but something feels off. Can we test it?”
- The agent proposes one first-person statement, gets consent, then requests a vibecheck.
- Negative
- “Do I have anxiety? Should I take this job?”
- No vibecheck. SomaCheck does not diagnose and does not decide. The agent says so plainly.
What crosses the connection
- The statement chosen for this vibecheck.
- The consent basis for the request.
- The Aligned or Unaligned signal, confidence, and status.
- Only bounded observations the person explicitly allows.
What never crosses
- Raw accelerometer or gyroscope motion data.
- Conversation history.
- Photos, health records, credentials, or secret values.
- A reading about anyone except the person using SomaCheck.
Revocation, support, and terms
- The person can unlink any agent from the SomaCheck app, which immediately invalidates that agent's access.
- Setup, revocation, and troubleshooting live in the developer docs.
- Privacy and terms apply to every connection.
SomaCheck is a general wellness tool. It is not a medical device and does not diagnose or treat any condition. A vibecheck is a signal that may be worth noticing. It does not establish cause, meaning, or the right response, and it never replaces care from a qualified professional.