Skip to main content
Glama
Robinhood Observatory MCP Server

Robinhood Observatory MCP Server

Robinhood Observatory

Portable, single-owner account monitoring, research, and user-operated order entry. The worker and chat tools remain observe/propose only. The authenticated /trades dashboard supports broker previews and an explicit owner Submit order button for supported stock order types/sessions and single- or multi-leg options on eligible accounts. No automatic order execution. Paper proposals remain separate, hypothetical, unfilled records.

2026-10-16 implementation status: independent account reconciliation and quote polling, reusable MCP sessions, durable checkpoints, authenticated dashboard/MCP, and observe-only analysis infrastructure are implemented. The latest release passes 181 automated tests including real PostgreSQL recovery/restore tests. Deployment-specific account metadata, operational measurements and acceptance evidence are retained privately by the owner. See market-data research, capabilities and handoff. Test results do not establish a deployment's full-session reliability.

Components

  • Paper workbench at /workbench: a no-model command assistant for stored status/quotes and isolated stock/option review rehearsals. Immutable terms, five-minute expiry, duplicate protection and database-enforced paper caps. No real-money execution. See workbench testing.

  • FastAPI + responsive static dashboard; GitHub OAuth (OIDC alternative), explicit immutable single-owner subject, secure session/CSRF controls. Separate bearer credentials for MCP reads and monitoring controls.

  • Persistent Python worker; one PostgreSQL advisory-lock leader, durable work records, checkpoints, pause state, idempotent events and shared request pacing. No Redis.

  • PostgreSQL application state with Alembic migrations. Encrypted broker credentials, including refresh tokens, survive restarts. Secrets and financial data stay out of the repository.

  • Options contracts, legs, strategies, source timestamps and explicit unknowns. Quote polling, not streaming. Observe-only methodology interface.

  • Replaceable OpenAI Responses adapter; structured validation, source references, no tools, minimized input, daily/monthly application spending reservations. AI defaults off and never gates core collection.

  • Authenticated stored-data MCP at /mcp/read/ and /mcp/control/. The latter manages monitoring and saves research proposals. Neither exposes order submission; the owner-session dashboard is the only submission route.

Related MCP server: Psagot remote MCP

Local development

Requires Docker Compose, or Python 3.12 + PostgreSQL 17. Dependencies are pinned in uv.lock; container images are pinned by digest. The .railway/railway.ts declaration uses a locked TypeScript SDK and is deliberately not auto-applied.

uv sync --frozen
uv run pytest -q
uv run ruff check observatory tests migrations scripts
npm ci --ignore-scripts
npm run check:infra

Without TEST_DATABASE_URL, PostgreSQL tests explicitly skip. That is not an acceptance pass. Dedicated test databases must contain test in their names; the test fixture resets only that database. Run against a disposable database, never production. CI supplies one and exercises encrypted backup/restore.

For a complete local stack:

  1. Run uv run python -m scripts.init_local to create ignored .env from the example and generate local-only secrets without printing them. Set OWNER_SUBJECT to the intended provider's immutable user ID, and complete the OAuth fields per setup.

  2. docker compose up --build -d. Migrations run before web/worker. The worker starts paused and unbound; it cannot read a brokerage account until independently authorized and explicitly selected.

  3. Open http://127.0.0.1:8000. No fixture data appears in the dashboard. If owner OAuth is not configured, sign-in returns a clear setup error; no anonymous data or control access is allowed.

  4. For shutdown, docker compose down keeps the durable database volume. Do not add --volumes unless intentionally deleting disposable local state.

Deployment and operations

Read setup, deployment/rollback, recovery/rotation, ChatGPT integration, costs, and acceptance evidence. Railway is the sole application host. A separate external dead-man heartbeat service detects missed work outside Railway. No Cloudflare dependency.

Automatic production deployment from ordinary pushes is disabled by design. The release workflow is manual, takes an exact reviewed commit, and requires the railway-production protected environment. A database migration/restore and live-auth gate must pass before the first release is promoted.

MIT license covers this application, not Robinhood brokerage/market-data rights, Railway service terms or OpenAI service access. It is not affiliated with Robinhood or OpenAI. Proprietary external dependencies and licensing limits are listed in capabilities.

Trade review and phone notifications

/trades provides a real-instrument research inbox, broker previews, encrypted phone Web Push, and direct user-operated submission. The signed-in owner reviews exact terms and a fresh preview, acknowledges use of real funds, and clicks Submit order. Automatic trade selection, worker execution and ChatGPT event delivery are not enabled. See workflow, setup, limitations and sources. The synthetic workbench remains separate.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables MCP clients to read Webull account balances, positions, orders, stock quotes, historical bars, and US option market data, with live equity trading available only as an explicitly enabled opt-in.
      MIT
    • F
      license
      Not graded
      quality
      B
      maintenance
      Enables MCP clients to securely access read-only Psagot Trade account and market information through authenticated HTTP endpoints. It exposes only read-only tools, with no trade-submission capabilities.
      -
    • A
      license
      B
      quality
      C
      maintenance
      Enables read-only access to Questrade accounts, portfolios, market data, transactions, technical analysis, and order history through MCP.
      11
      196 npm
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      Enables read-only access to HackerOne Hacker API data including program policies, structured scopes, scope exclusions, hacktivity/prior art, and your own reports through MCP clients.
      8
      MIT