MCP CONNECTOR
Your AI, with full access to the InsiderLens database..
InsiderLens speaks the Model Context Protocol — the open standard Anthropic and OpenAI use to let LLMs query external data. Add our connector once, then ask Claude or ChatGPT any question about insider buys, clusters, alpha, or company filings.
https://mcp.insiderlens.com01 · WHAT IT IS
MCP, in one paragraph.
MCP (Model Context Protocol) is a JSON-RPC contract that lets an AI client like Claude or ChatGPT call functions on a remote server you control. Our server exposes three tools: list_tables, describe_table, and query — the LLM uses them to discover the schema and run read-only SQL against the same dataset that powers the InsiderLens dashboard. Every call is authenticated with your account, rate-limited, and recorded in your audit log.
02 · HOW TO CONNECT
Three steps. Thirty seconds.
Step 1 — copy the URL
Use the connector URL below. It's the same for everyone — your account is identified during the OAuth consent step on your next sign-in.
Step 2 — Claude.com
Open Settings → Connectors → Add custom. Paste the URL. Click through the consent screen on app.insiderlens.com (you'll be asked to sign in if you aren't already). Done.
Step 2 (alt) — ChatGPT
Settings → Apps & Connectors → Custom. Paste the URL. Same OAuth consent flow. Same connector works for the deep-research mode.
Step 2 (other clients)
Claude Desktop, Cursor, Zed support remote MCP servers natively — paste the URL. A wrapper for stdio-only clients (Continue, Cline) is on the roadmap.
Step 3 — ask anything
Open a new chat and start asking. The LLM will call list_tables on its first question to discover the schema, then issue SQL queries against the views you have access to.
03 · TOOLS EXPOSED
Three tools. Maximum freedom.
We chose generic tools over a long list of pre-baked queries — that way the LLM composes whatever question you ask, even ones we never anticipated.
list_tablesReturns the curated list of tables/views the LLM can query, with one-line descriptions of what each contains. Always called first to ground the conversation.
describe_tableReturns the column names, types, and nullability of a given table. The LLM uses this when it's about to write a SELECT and needs to know exactly which columns are available.
queryRuns a read-only SELECT inside a BEGIN READ ONLY transaction with statement_timeout=5s. Returns up to 1,000 rows formatted as a markdown table — friendlier for the LLM to read than JSON arrays. Available on the Analyst plan.
04 · WHAT THE LLM CAN SEE
16 tables. The whole InsiderLens dataset.
The same data that powers your dashboard, exposed read-only via Postgres GRANTs to a dedicated role. Auth/PII tables (users, sessions, magic_tokens, oauth) are not on this list and are unreachable.
issuersPublic companies (issuers): id, lei, legal_name, country, sector, bitemporal valid_from/to.personsInsiders (officers, directors, 10% owners, PDMRs, beneficial owners): id, name, country, reporter_type.transactionsPARTITIONED transaction stream across SEC EDGAR, FCA NSM, FI Sweden, AMF, AFM, BaFin, HKEX, SGX, ASX. Filter by filed_at to prune partitions.transaction_enrichmentsComputed signals per transaction: gross_value_usd, pct_of_outstanding, is_cluster_buy, alpha_21d/126d/252d, return_*, size z-score, event proximity, comp ratio, drawdown_52w.insider_track_recordPer-insider aggregates: n_buy_tx, win_rate, hit_rate, median forward return at 21d/63d/126d.issuer_clustersPre-aggregated insider clusters per issuer: distinct insiders, total tx, total USD, cluster strength.issuer_market_cap_eodDaily end-of-day market cap and shares outstanding per issuer in USD and local currency.…Plus relationships, securities, filings, fx_rates, slugs, identifiers, and the daily-refreshed insider_activity_stats matview.
05 · EXAMPLE QUESTIONS
What you can actually ask.
- "Top 5 insider buys on the CAC40 last week, sorted by USD value, and tell me which ones are flagged as cluster buys."
- "Compute the median 90-day forward return of buys made by directors in the US tech sector in the last 12 months, grouped by company size bucket."
- "Show me Saylor's complete trading record at MicroStrategy with cumulative P&L on each trade."
- "Which insiders have the highest win-rate on 6-month forward returns, with at least 10 closed positions?"
- "Are there any clusters of insider buying right now in companies trading more than 30% off their 52-week high?"
06 · SECURITY
What we did to make this safe.
Read-only Postgres role
The connector queries via a dedicated mcp_runtime user with SELECT-only privileges on the curated whitelist. No INSERT/UPDATE/DELETE privilege exists at the database layer — even a complete bug in the binary cannot write anywhere.
Read-only transactions
Every query runs inside BEGIN ISOLATION LEVEL REPEATABLE READ READ ONLY. Postgres rejects any write at the transaction level, layered on top of the role grants.
Statement timeout 5s
Any query running over 5 seconds is killed by Postgres. Lock timeout is 500ms, so a stuck query never blocks anything else.
OAuth 2.1 + DCR
Authentication uses OAuth 2.1 with PKCE S256 and Dynamic Client Registration (RFC 7591). Your access token is bound to the resource (RFC 8707) so it cannot be replayed against another service.
Full audit log
Every call is recorded in your account: tool name, SQL (when applicable), input args, row count, duration, timestamp, originating connector. View the log in your dashboard.
Rate-limited per tier
Per-minute, per-hour, and per-day caps prevent runaway usage. Pro: 30 req/h, 200 req/day. Analyst: 60 req/h, 2,000 req/day.
07 · ACCESS
Available on Pro and Analyst.
MCP is bundled with both paid plans. The Analyst tier unlocks the query tool for arbitrary SQL.
Professional
list_tables and describe_table available. Curated tools coming back in v2 for users who don't write SQL.
Analyst
All three tools, including arbitrary read-only SELECT via the query tool. The full SQL surface of the InsiderLens dataset.
08 · FAQ
FAQ
- Does MCP work with my own LLM (open-source, local)?
- Yes. Anything that speaks the MCP protocol can connect — Cursor, Zed, Claude Desktop, Continue, and self-hosted clients via OAuth proxies all work as long as they support remote MCP with OAuth 2.1.
- Is my data sent to Anthropic / OpenAI?
- Only the rows the LLM explicitly asks for, when you ask it to. The connector runs in your account; we don't train on your queries; the LLM provider sees only the query results sent in the chat — same as if you had pasted them yourself.
- What if a query is too slow?
- Postgres kills it at 5 seconds and the LLM gets back an error message. Refine with a date filter on filed_at (the transactions table is partitioned by filed_at — filtering on it prunes 100+ partitions in one shot) or a tighter LIMIT.
- Can the AI accidentally modify my watchlist or alerts?
- No. The mcp_runtime Postgres user is read-only at the database level — no INSERT/UPDATE/DELETE privilege exists. Watchlist, alerts, and account settings are not even visible to the connector.
- How do I revoke access?
- Go to your dashboard → MCP → Active connectors → Revoke. The OAuth refresh token is invalidated immediately and the connector stops working within minutes (when the current access token expires).
- Can I see what the AI did on my behalf?
- Yes. Dashboard → MCP → Activity log shows every call — tool, arguments, SQL (when query was used), row count, duration, timestamp, and which connector made the call. Retained 90 days.