etoro-mcp
This server exposes read-only eToro portfolio data, including positions, P&L, balances, watchlists, and closed trade history, as tools that can be registered as a custom connector in Claude.ai for natural-language portfolio queries.
README
etoro-mcp
Read-only remote MCP server exposing eToro portfolio data (positions, P&L, balances, watchlists, closed trade history) as tools, so it can be registered as a custom connector in Claude (claude.ai chat, not just an editor). Runs on Cloudflare Workers over Streamable HTTP.
This is a personal, single-user tool. It never places, modifies, or closes a
trade — only GET requests against eToro's API.
Prerequisites
- Node.js (recent LTS)
- A Cloudflare account (for
wrangler devand eventual deployment) - eToro API credentials (
x-api-key/x-user-key) from api-portal.etoro.com
Install dependencies:
npm install
About Wrangler
This project deploys to Cloudflare Workers,
and Wrangler is
Cloudflare's official CLI for building, testing, and deploying Workers.
It's already listed as a devDependency, so npm install pulls it in — no
separate install needed. Used via npx wrangler ... or the npm run dev
script below. Relevant commands:
wrangler dev— runs the server locally, simulating the Workers runtime (this is whatnpm run devcalls).wrangler deploy— publishes the code to Cloudflare's edge network under a real public URL.wrangler secret put <NAME>— securely uploads a secret (e.g. your eToro API key or the connector's bearer token) to the deployed Worker, without ever committing it to the repo.wrangler.toml— this repo's Workers config (build/name/routes).
Before wrangler deploy or wrangler secret put will work, log in once:
wrangler login
Local development (wrangler dev)
-
Copy the example env file and fill in real values:
cp .dev.vars.example .dev.vars -
In
.dev.vars, set:-
ETORO_API_KEY/ETORO_USER_KEY— your eToro API credentials. -
CONNECTOR_AUTH_TOKEN— a secret bearer token that guards this connector's own/mcpendpoint (unrelated to the eToro credentials above). Generate one with:openssl rand -hex 32
.dev.varsis gitignored — never commit it. -
-
Start the local Workers dev server:
npm run dev -
Every request to
/mcpmust include the bearer token:Authorization: Bearer <CONNECTOR_AUTH_TOKEN from .dev.vars>Requests missing the header, or presenting the wrong token, get a
401. IfCONNECTOR_AUTH_TOKENisn't set at all, the server fails closed and rejects every request rather than allowing unauthenticated access.
Running tests
npm test # unit tests (node:test)
npm run typecheck
Deploying and registering as a Claude connector
Deployment and connector registration are manual steps, done by the operator (not run as part of this repo's automation):
-
Set secrets on the deployed Worker (never committed to the repo):
wrangler secret put ETORO_API_KEY wrangler secret put ETORO_USER_KEY wrangler secret put CONNECTOR_AUTH_TOKEN -
Deploy:
wrangler deployThis publishes the Worker and prints its
*.workers.devURL (or a custom route, if configured). -
Register as a custom connector in Claude:
- In claude.ai, go to Settings → Connectors → Add custom connector.
- Enter the deployed Worker's
/mcpURL. - Complete the connector's auth step, supplying the same
CONNECTOR_AUTH_TOKENvalue set viawrangler secret putabove.
-
End-to-end check: ask Claude a real portfolio question in a normal chat (e.g. "what's my eToro portfolio P&L right now?") and confirm it calls the right tool and returns live data.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.