Integrations
MCP server
Connect your agent through the Model Context Protocol.
If you consume tools over MCP rather than raw HTTP, Eclipse is a remote MCP server — JSON-RPC 2.0 over a single HTTP POST endpoint, no SDK or install required:
Connection settings
In a client that supports a remote HTTP MCP server with custom headers, use:
URL: https://www.eclipse.trade/api/v1/mcp
Transport: Streamable HTTP (JSON responses; no SSE stream)
Header: Authorization: Bearer ek_YOUR_KEY
Protocol version: 2025-06-18Initialize the connection, send notifications/initialized, then call tools/list. Catalog and statistics tools are public; state, signals, flips, confluence, and usage need your key. Clients that require OAuth instead of custom headers need an adapter.
Install in Claude Code
From your project folder, run these commands in PowerShell, macOS Terminal or a Linux shell. Start with public discovery; no key is needed:
claude mcp add --transport http --scope local eclipse https://www.eclipse.trade/api/v1/mcp
claude mcp get eclipseThe status should say Connected. Open Claude Code in that folder, run /mcp to inspect the server, then ask it to call eclipse_get_catalog. Catalog and statistics are public; a connected status alone does not validate a paid key.
Add your paid key
After checkout and key claim, replace the discovery configuration with the authenticated one. If you skipped discovery, skip the remove command:
# Remove the discovery-only configuration if you added it above
claude mcp remove eclipse --scope local
# Replace ek_YOUR_KEY with your key; this saves it in your private local config
claude mcp add --transport http --scope local eclipse https://www.eclipse.trade/api/v1/mcp --header "Authorization: Bearer ek_YOUR_KEY"
claude mcp get eclipseAsk Claude to call eclipse_get_usage to verify your key and remaining quota. If the key is rejected, follow authentication and recovery guidance.
Installation and public connection checked with Claude Code 2.1.89. See the Claude Code MCP documentation for configuration scopes.
Call the protocol directly
These curl examples use Bash syntax. MCP clients handle initialization automatically.
# Initialize — no key required
curl -X POST https://www.eclipse.trade/api/v1/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"eclipse-example","version":"1.0.0"}}}'
curl -X POST https://www.eclipse.trade/api/v1/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"notifications/initialized"}'
# Discover the tools — no key required
curl -X POST https://www.eclipse.trade/api/v1/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
# Call one — same Bearer key and same quota as the REST API
curl -X POST https://www.eclipse.trade/api/v1/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer ek_YOUR_KEY" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call",
"params":{"name":"eclipse_get_confluence",
"arguments":{"timeframe":"4h","min_agree":4}}}'tools/list is open to everyone, deliberately — you can discover the exact tools, arguments and schemas before you pay. tools/call needs the same Authorization: Bearer ek_... header as the REST API, and enforces the same quota. Catalog and statistics calls are public and do not require a key. Tools: eclipse_get_state, eclipse_get_signals, eclipse_get_confluence, eclipse_get_flips, eclipse_get_catalog, eclipse_get_stats, eclipse_get_usage.
Pagination and polling
Results are newest first. next_cursor is the newest timestamp on the page, not a link to the next page of older events. Advancing since immediately can skip unread events.
For a fixed backlog, keep since and all filters unchanged while increasing offset by limit. Consume every page before saving the newest timestamp from the first page as your next polling watermark. Deduplicate stored events by tier and id.
Offset pagination is not a frozen snapshot: new inserts can shift pages, and an exclusive timestamp can miss late-arriving events at the same time. Use overlapping polling windows and deduplication, and reconcile current readings with /api/v1/state. This interface does not guarantee lossless event replay.