MCP server for Otto cognitive safety layer - ThinkingMachines [He2025] compliant
Project description
Otto MCP Server
Model Context Protocol (MCP) server for Otto cognitive safety layer.
Overview
This MCP server exposes Otto's cognitive state management to any MCP-compatible client (Claude Desktop, Cursor, VS Code, etc.). It enables cross-tool safety gating and cognitive state awareness.
Installation
pip install otto-mcp
Or install from source:
cd Otto/packages/otto-mcp
pip install -e .
Configuration
Claude Desktop
Add to your Claude Desktop config (~/.config/claude-desktop/config.json on Linux/macOS or %APPDATA%\Claude\config.json on Windows):
{
"mcpServers": {
"otto": {
"command": "otto-mcp"
}
}
}
Cursor / VS Code
Add to your MCP settings:
{
"mcp": {
"servers": {
"otto": {
"command": "otto-mcp"
}
}
}
}
Tools
otto_status
Get current cognitive state.
Burnout: GREEN | Energy: medium | Max Depth: deep
{
"burnout_level": "green",
"energy_level": "medium",
"momentum_phase": "building",
"mode": "focused",
"max_thinking_depth": "deep",
"should_intervene": false,
...
}
otto_check
Check if an operation is safe given current state.
Input:
{
"operation": "deep architecture analysis",
"thinking_depth": "ultradeep"
}
Output:
ADJUST DEPTH: Burnout at ORANGE - depth capped at standard
{
"operation": "deep architecture analysis",
"requested_depth": "ultradeep",
"allowed": false,
"recommended_depth": "standard",
"reason": "Burnout at ORANGE - depth capped at standard"
}
otto_calibrate
Set focus and urgency calibration.
Input:
{
"focus_level": "locked_in",
"urgency": "deadline"
}
otto_expert
Get recommended intervention expert for a message.
Input:
{
"message": "I'm so frustrated, nothing is working!"
}
Output:
Expert: VALIDATOR (priority 1)
Trigger: frustrated_detected
{
"expert": "validator",
"trigger": "frustrated_detected",
"priority": 1,
"safety_gate_pass": true
}
otto_set_burnout
Manually set burnout level.
Input:
{
"level": "yellow"
}
otto_set_energy
Manually set energy level.
Input:
{
"level": "low"
}
Safety Gating
The MCP server enforces Otto's safety invariants:
| State | Max Thinking Depth |
|---|---|
energy=depleted |
minimal |
energy=low |
standard |
burnout>=ORANGE |
standard |
burnout=RED |
minimal |
energy=high |
ultradeep (if requested) |
Rule: Safety state ALWAYS overrides requested depth. Can reduce, never increase.
Use Cases
- Cross-tool safety: Check cognitive state before starting complex operations in any tool
- Context awareness: Let AI assistants know your current capacity
- Intervention routing: Route messages to appropriate experts based on emotional signals
- Session calibration: Set focus/urgency at the start of work sessions
Development
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest
# Run server directly
python -m otto_mcp.server
License
MIT License - see LICENSE for details.
References
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file otto_mcp-1.0.0.tar.gz.
File metadata
- Download URL: otto_mcp-1.0.0.tar.gz
- Upload date:
- Size: 8.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88e3b4a496865b3274a766afbe3050bb126f3744147357e6f82125d666807c02
|
|
| MD5 |
b854f37d99ae02475b68bfd54670b6fc
|
|
| BLAKE2b-256 |
a28d14326fb86821d103b59cbc3588da9c5bb78712a84fc572e618986be45839
|
File details
Details for the file otto_mcp-1.0.0-py3-none-any.whl.
File metadata
- Download URL: otto_mcp-1.0.0-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d98aecf33b256bce771a9fc4445b0f641b6dbf201554a0362ac32919942712a4
|
|
| MD5 |
96ab9ab90931d1e5e5ccab2dcaecf3ab
|
|
| BLAKE2b-256 |
937f09e21295f368862c1e5f0f680de218aae941ef16971ed1adc17ac9ab54af
|