Skip to main content

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

  1. Cross-tool safety: Check cognitive state before starting complex operations in any tool
  2. Context awareness: Let AI assistants know your current capacity
  3. Intervention routing: Route messages to appropriate experts based on emotional signals
  4. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

otto_mcp-1.0.1.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

otto_mcp-1.0.1-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file otto_mcp-1.0.1.tar.gz.

File metadata

  • Download URL: otto_mcp-1.0.1.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

Hashes for otto_mcp-1.0.1.tar.gz
Algorithm Hash digest
SHA256 77de283dfa4bc52aa256e371a0f099531ee2e9fca483a5092cbf8f4b1fef99e3
MD5 2d75d13f4c17cfcc7eaa7d4e56543df2
BLAKE2b-256 a8a5b8ed5d1ada01cee428beb80c5e59b2f3dc37b7c054562595ce41166203dd

See more details on using hashes here.

File details

Details for the file otto_mcp-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: otto_mcp-1.0.1-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

Hashes for otto_mcp-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5131271b79635a313de03ca5f1b0bcaed0b7317862f406b202e0fbe0d2cc7838
MD5 8e4d86573b191c1a793874d3f85ba3f1
BLAKE2b-256 5d351921b0b805897c2fd6d64b3c4739d18456c846a30c9f2e21a52d8da48068

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page