otto
The Otto server provides a local, AI-operable financial terminal for managing paper portfolios, running backtests, accessing market data, and performing financial research — with a strong emphasis on safety and transparent operation.
Check Terminal Health (
terminal_status): Get situational awareness including terminal health, milestone/goal status, active task, risk gate states (live trading/secrets on/off), recovery count, and provider data freshness. Recommended as the first call before any operation.Discover Available Routes (
list_routes): List all terminal routes (dashboard, markets, portfolio, backtest, settings, etc.) with their IDs, labels, categories, and primary endpoints.Read Route State (
get_route): Fetch the current read-only data payload for any route by ID — e.g. pull the current portfolio state, market data, or backtest results.Discover Operable Actions (
list_actions): List all safe, agent-executable actions from the terminal's contract, optionally filtered by route. Each action shows its ID, label, HTTP method, endpoint, safety class, whether it mutates state, and whether it requires confirmation. Safety-disabled and secret actions are automatically excluded.Execute Terminal Actions (
run_action): Run any safe action by its ID, passing a JSON body, path parameters, query parameters, and a confirmation flag when required. Refuses to execute safety-gated or secret actions.Refresh Public Market Data (
refresh_public_data): Trigger a no-key public data provider refresh and return a summary of written, available, and cached data — a convenient way to load fresh market data without credentials.
Safety-gated by design: Live trading, credential entry, and arbitrary code execution are disabled by default, ensuring a read-only/paper/dry-run environment suitable for AI-driven operation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ottobacktest moving average crossover on AAPL"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Otto
A local financial terminal your AI agent operates for you. Market data, backtests, paper books, news — driven in plain language, running entirely on your machine.

Try it
Needs uv and Python 3.12. No clone, no build, no server to start:
claude mcp add otto -- uvx --from git+https://github.com/0Smallcat0/otto otto-mcpThen ask for things:
"Refresh market data and show me the BTC snapshot."
"Backtest an SMA cross on BTCUSDT and tell me if it's any good."
"What do you make of my holdings?"
Want the dashboard as well: npm --prefix frontend install && npm --prefix frontend run build,
then uv run otto → http://127.0.0.1:8765/
Related MCP server: OpenFinClaw CLI
Why this one
It keeps score. The agent records dated calls — a stance, the reasoning, the price level that would prove it wrong, a horizon — and every call is later graded against the price the market actually printed. Calls without reasoning are refused rather than guessed, moves inside a flat band don't count as skill, and a call graded long after it matured is excluded because it measured a window its thesis never claimed. The hit rate is whatever the market says it is.
"An AI can operate it" is a benchmark here, not a tagline. A real headless agent gets 20 plain-language tasks in hermetic sandboxes, graded programmatically on terminal state and artifacts — never by an LLM judge:
Model | Passed | Avg turns |
| 20 / 20 | 6.5 |
| 19 / 20 | 6.8 |
Safety tasks grade refusal: asking for a live order must leave state unchanged. Live trading, credential entry and code execution aren't switched off — they're unreachable through the surface the agent has.
Under the hood
One typed contract (137 actions across 16 routes) is the single source of truth; the MCP tools, the UI capability catalog and the eval suite are all derived from it. 680 tests on Windows + Linux CI.
Clean-room boundary — built by observing a reference terminal's workflow, never by reading or porting its code; a test fails the build if that wall is crossed.
python -m pytest -q && python -m ruff check .License
MIT.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenanceMCP server that provides AI agents with financial tools including real-time quotes, backtesting, technical analysis, and multi-exchange data via a simple CLI interface.Last updated1MIT
- Flicense-qualityCmaintenanceEnables quant research, strategy generation, backtesting, and paper trading from natural language prompts, integrating with AI agents via an MCP server.Last updated60
- Alicense-qualityDmaintenanceEnables AI agents to interact with Interactive Brokers through 48 tools for market data, orders, account management, and more, via the MCP protocol.Last updatedMIT
- Alicense-qualityDmaintenanceProvides 10 financial data tools (market data, economic indicators, news, insider trades, and calendars) via a single MCP layer, enabling any MCP-compatible LLM to access diverse financial data through a unified interface.Last updatedMIT
Related MCP Connectors
MCP server exposing the Backtest360 engine API as tools for AI agents.
Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.
The financial MCP for AI agents - 90+ financial tables, SEC filings, signals, alt-data.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/0Smallcat0/otto'
If you have feedback or need assistance with the MCP directory API, please join our Discord server