> ## Documentation Index
> Fetch the complete documentation index at: https://docs.useotto.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Otto Intel MCP

> Connect read-only tokenized-equity, SEC ownership, and market-context scanners with one hosted URL: one successful call free per observed network origin, then x402 USDC per call.

Robinhood's agent executes your trades. **Otto is the pre-trade brains it plugs into**: tokenized-equity screening, SEC smart-money filings, and market-regime context, all read-only.

<Warning>
  Otto Intel MCP cannot place orders, move funds, sign arbitrary wallet messages, swap, bridge, deposit, or withdraw. Reference prices and scanner output are data, not executable quotes or recommendations.
</Warning>

## Connect the hosted MCP

The hosted policy is: **first call free, then pay per call in USDC (x402) — your agent brings its wallet.** One successful intelligence-tool invocation is free per observed network origin. Changing session IDs or client metadata does not create another grant; callers sharing one outbound address also share the courtesy call. `otto_catalog` is always free, does not consume it, and returns the full live x402 menu.

### Claude Code

```bash theme={null}
claude mcp add otto-intel --transport http https://mcp.ottoai.services
```

### Claude Desktop

Customize → Connectors → **+** → Add custom connector → paste `https://mcp.ottoai.services`.

### Cursor

Add it to `~/.cursor/mcp.json` (or `.cursor/mcp.json` for a single project):

```json theme={null}
{
  "mcpServers": {
    "otto-intel": {
      "url": "https://mcp.ottoai.services"
    }
  }
}
```

### Codex CLI

```bash theme={null}
codex mcp add otto-intel --url https://mcp.ottoai.services
```

### ChatGPT

Settings → Security and login → toggle **Developer mode**. Then Settings → Plugins → **+** → paste `https://mcp.ottoai.services`.

After the free call, an unpaid intelligence-tool invocation returns a machine-actionable `payment_required` result with the route's live Base-USDC x402 requirement. The hosted wrapper preserves that requirement and adds:

* `command`: an exact `curl` command for this tool path and input.
* `why_paid`: the tool and the response this payment buys.
* `pricing_model`: the shared hosted pricing policy.
* `free_call`: whether the observed network origin's grant is spent or currently in progress.
* `catalog`: the always-free `otto_catalog` pointer for comparing the full menu.

Connect an x402-capable wallet, sign the accepted requirement, and retry the same tool with the signed payload in `x_payment`. The wallet and signing key stay in the client; the hosted MCP holds neither.

If no free result is available for an input, the server responds promptly and leaves the grant available. A paid invocation sends its signed authorization once. If the public route cannot complete that read, the tool returns `x402_read_retriable` with `reuse_x_payment: false`; obtain a new requirement before another attempt.

## Hosted or local

| Scope                                                                  | Hosted MCP                                                                                    | Local stdio package                      |
| ---------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | ---------------------------------------- |
| Read tokenized-equity, SEC, Base, RH Chain, and prediction-market data | First successful call free; later calls through the route's x402 gate                         | Yes, through x402                        |
| Browse the complete live x402 menu                                     | `otto_catalog`, always free                                                                   | Use the x402 discovery catalog           |
| Unavailable-input behavior                                             | Returns promptly without consuming an unsuccessful free grant; sends each signed payload once | The paid endpoint returns its own result |
| Hold a payer wallet                                                    | Never; the calling agent supplies signed `x_payment` after the taste                          | Operator-configured, dedicated wallet    |
| Place an order or move principal                                       | Never                                                                                         | Never                                    |
| Sign arbitrary wallet messages                                         | Never                                                                                         | Never                                    |

## Local x402 package

The local package is for operators who want on-demand coverage and per-call USDC settlement. Create a fresh wallet, fund it only with the Base USDC you intend to spend, and expose its key only to the local MCP process.

```bash theme={null}
export X402_PRIVATE_KEY=0x...
```

Add the stdio server to any MCP client that accepts a command configuration:

```json theme={null}
{
  "mcpServers": {
    "otto-intel": {
      "command": "npx",
      "args": ["-y", "otto-intel-mcp"],
      "env": {
        "X402_PRIVATE_KEY": "${X402_PRIVATE_KEY}"
      }
    }
  }
}
```

<Note>
  The payer key signs bounded Base-USDC payment authorizations locally. It is never sent to Otto. Use a disposable, low-balance wallet rather than a primary wallet. Env-var syntax differs by client — Cursor expects `${env:X402_PRIVATE_KEY}` where the block above uses `${X402_PRIVATE_KEY}`.
</Note>

## Tools

Both transports consume the same ten intelligence-tool definitions. The hosted transport also exposes `otto_catalog`, the always-free storefront tool.

| Tool                            | Input             | What it reads                                                                                    | x402 price per call |
| ------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------ | ------------------: |
| `otto_tokenized_equities`       | optional `thesis` | Robinhood Chain tokenized US equities/ETFs, addresses, reference prices, and tradability samples |             \$0.001 |
| `otto_rh_season`                | —                 | Rug-screened Robinhood Chain movers and risk flags                                               |             \$0.001 |
| `otto_equity_intel`             | `ticker`          | SEC fundamentals, recent filings, and guarded narrative context                                  |             \$0.003 |
| `otto_insider_trades`           | `ticker`          | Form 4 purchase/sale activity and net balance                                                    |             \$0.003 |
| `otto_institutional_holdings`   | `manager`         | Latest amended 13F top positions by CIK or manager ticker                                        |             \$0.003 |
| `otto_equity_smart_money`       | `ticker`          | Form 4 activity plus trailing fundamentals                                                       |             \$0.006 |
| `otto_equity_smart_money_brief` | `ticker`          | Guarded AI brief over Form 4, 13D/13G, and fundamentals                                          |              \$0.10 |
| `otto_base_season`              | —                 | Quality-screened Base social and KOL context                                                     |             \$0.001 |
| `otto_pm_markets`               | —                 | Top open Polymarket probabilities and market context                                             |             \$0.001 |
| `otto_pm_crypto`                | —                 | BTC, ETH, and crypto Polymarket probabilities                                                    |             \$0.001 |

`otto_catalog` has no input and no price. It derives the current endpoint count, paths, descriptions, and prices from the live x402 discovery surfaces rather than storing a fixed count.

For SEC field semantics and amendment handling, see [SEC filings methodology](/acp-swarm/sec-filings-methodology).

## Example prompts

<AccordionGroup>
  <Accordion title="Tokenized-equity thesis screen">
    `Use otto_tokenized_equities with thesis "AI infrastructure chips." Show why each row matched, separate reference price from executable pricing, and do not recommend a trade.`
  </Accordion>

  <Accordion title="Insider and fundamentals cross-check">
    `For NVDA, compare otto_insider_trades with otto_equity_intel. Separate observed SEC data from your interpretation and call out freshness.`
  </Accordion>

  <Accordion title="Institutional ownership">
    `Use otto_institutional_holdings for Berkshire Hathaway (CIK 1067983). Summarize the latest top positions and amendment status without treating the filing as a current portfolio recommendation.`
  </Accordion>

  <Accordion title="Smart-money filing brief">
    `Run otto_equity_smart_money_brief for AAPL. Extract the Form 4 and 13D/13G evidence behind the brief and describe uncertainty.`
  </Accordion>

  <Accordion title="Market regime context">
    `Read otto_rh_season, otto_base_season, and otto_pm_crypto. Summarize where the signals agree or conflict; do not generate an order.`
  </Accordion>
</AccordionGroup>
