Skip to content

add vibecode-integration-robinhood-mcp skill - #61

Draft
shrey258 wants to merge 3 commits into
mainfrom
shrey/robinhood-mcp-skill
Draft

shrey258 wants to merge 3 commits into
mainfrom
shrey/robinhood-mcp-skill

Conversation

@shrey258

@shrey258 shrey258 commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Summary

Foundational provider skill for the `robinhood-mcp` connection landed in chorus. Lets agents look up the user's Robinhood positions and orders, research tickers, and place trades in the user's Agentic account.

Key Changes

  • Add `Foundational/vibecode-integration-robinhood-mcp/SKILL.md`
  • JSON-RPC over HTTP against `https://agent.robinhood.com/mcp/trading\` (and the banking server) with `ROBINHOOD_MCP_ACCESS_TOKEN` as Bearer — no Nango proxy
  • Discover-then-call pattern (always `tools/list` before `tools/call`); no hard-coded tool names
  • Safety guardrails: read access spans every account, trades only land in the Agentic account, every trade requires preview + explicit user confirmation before commit

Testing

  • Skill discovered via `integration_dependencies: [robinhood-mcp]` — matches the provider id registered in chorus
  • Live test pending merge of companion chorus PR

Related

Companion chorus PR: vibecode/chorus#273

Note

Add Robinhood MCP provider skill documentation

Adds SKILL.md documenting the Robinhood MCP integration skill, including frontmatter metadata, account scope constraints, JSON-RPC over HTTP protocol usage examples, trade preview/confirm flow requirements, and common error handling guidance.

Macroscope summarized 5f37340. (Automatic summaries will resume when PR exits draft mode or review begins).

Greptile Summary

Adds Foundational/vibecode-integration-robinhood-mcp/SKILL.md, a new provider skill that guides agents through the full Robinhood MCP integration — covering auth, account scope constraints, the JSON-RPC over Streamable HTTP session lifecycle, a discover-then-call pattern for tool discovery, and explicit safety guardrails for trading actions.

  • Session lifecycle: Documents the complete initializenotifications/initializedtools/listtools/call handshake with Mcp-Session-Id threading, addressing both steps previously missing from an earlier draft.
  • Trade safety: Requires preview + explicit user confirmation before committing any trade; modify/cancel operations get their own confirmation workflow with a "cancel all" guard.
  • Dual-server setup: Separates the trading (agent.robinhood.com) and banking (banking-agent.robinhood.com) endpoints with a warning against cross-server session reuse.

Confidence Score: 5/5

Safe to merge — the skill document is complete, previously missing protocol steps are now present, and all destructive trade actions require explicit user confirmation.

The document correctly captures the full MCP session lifecycle, enforces the Agentic-account-only constraint, and provides explicit preview-then-confirm and cancel-confirmation guardrails. The only remaining gap is the shared SESSION_ID variable name for both servers, but the explicit prose warning covers the intent.

No files require special attention beyond the SESSION_ID variable naming note on SKILL.md.

Important Files Changed

Filename Overview
Foundational/vibecode-integration-robinhood-mcp/SKILL.md New provider skill documenting the Robinhood MCP integration — full session lifecycle, dual-server setup, discover-then-call pattern, preview/confirm for trades, and modify/cancel guidance. Both previously flagged gaps (notifications/initialized handshake and modify/cancel guidance) are addressed. Single P2: shared SESSION_ID variable name could cause session confusion when both trading and banking endpoints are used in the same agent turn.

Sequence Diagram

sequenceDiagram
    participant U as User
    participant A as Agent
    participant T as Trading Server
    participant B as Banking Server

    Note over A,T: Session initialization (once per turn)
    A->>T: POST /mcp/trading - initialize
    T-->>A: 200 OK + Mcp-Session-Id header
    A->>T: POST /mcp/trading - notifications/initialized
    T-->>A: 202 Accepted

    Note over A,T: Tool discovery
    A->>T: tools/list (Mcp-Session-Id: id)
    T-->>A: tool catalog

    Note over A,T: Place a trade
    A->>T: tools/call (place-trade)
    T-->>A: Preview
    A->>U: Show preview, ask confirmation
    U-->>A: Explicit yes
    A->>T: tools/call (confirm/submit)
    T-->>A: Order result

    Note over A,B: Banking - independent session
    A->>B: POST /mcp/banking - initialize
    B-->>A: 200 OK + separate Mcp-Session-Id
    A->>B: notifications/initialized
    B-->>A: 202 Accepted
    A->>B: tools/call (transfer/balance)
    B-->>A: Result
Loading

Reviews (3): Last reviewed commit: "document -32000 Server not initialized r..." | Re-trigger Greptile

Foundational skill for the robinhood-mcp connection. Pattern differs from
slack-mcp/render-mcp because Robinhood exposes only an MCP server (JSON-RPC
over HTTP), not a public REST API — so the skill teaches the agent the
JSON-RPC envelope, the discover-then-call pattern, and Robinhood's hard
constraints around trading.

Safety guardrails baked in: read access spans every Robinhood account but
trades can only land in the user's Agentic account, and every trade-placing
tool surfaces a preview that the user must confirm before commit. The skill
explicitly tells the agent not to auto-confirm.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@shrey258

Copy link
Copy Markdown
Contributor Author

@greptile review

Comment thread Foundational/vibecode-integration-robinhood-mcp/SKILL.md
Comment thread Foundational/vibecode-integration-robinhood-mcp/SKILL.md
…idance

- Add the missing notifications/initialized step + Mcp-Session-Id header
  threading per the MCP Streamable HTTP spec. Without these, tools/list
  returns -32000 Server not initialized and the skill is non-functional
  as previously written. Also include MCP-Protocol-Version: 2025-06-18
  on every request per spec. (Greptile P1.)
- Add a modify/cancel section to match the frontmatter trigger list,
  including the order-ID lookup pattern, the "confirm before cancel"
  rule (no preview exists for cancels), and a guardrail against
  blanket "cancel all" calls. (Greptile P2.)

Both flags verified against modelcontextprotocol.io/specification/2025-06-18.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@shrey258

Copy link
Copy Markdown
Contributor Author

@greptile review

The protocol section called it out as the failure mode for skipping the
handshake or dropping Mcp-Session-Id, but the Errors table didn't list it.
Add a row pointing back to the handshake steps.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@shrey258

Copy link
Copy Markdown
Contributor Author

@greptile review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant