API & MCP
Connect Mirror Ai to your AI tools
Sign in from claude.ai, ChatGPT or Claude Code, or create a key for Cursor, VS Code, Windsurf and Codex, then ask your assistant for Mirror Ai research directly.
What this is
MCP is a standard way for an AI assistant to use an outside source of data. Connecting Mirror Ai over MCP lets the assistant you already work in pull Mirror Ai research itself, instead of you copying numbers out of the workspace and pasting them into a chat.
Once connected, your assistant can reach 48 Mirror Ai tools across five areas:
- Market data. Live prices, price history, OHLCV candles, technical indicators, momentum and volatility, DEX trading signals and cross-venue arbitrage.
- DeFi. Protocols, liquidity pools, pool performance, yield opportunities and DEX liquidity comparisons.
- Research. Case files, the evidence behind a finding, findings by token, pattern analysis and whitepaper research.
- Security. Token scans, address reputation, holder analysis, contract source, high-risk tokens, threat feed, and your own watchlist and alerts.
- Compliance. Regulatory documents, rules by jurisdiction, jurisdiction scores, regulatory timelines and per-token regulatory risk.
Two ways to connect
Your tool decides which way you connect. Some tools sign in with your Mirror Ai account, and the rest use an API key that you create.
Sign in (claude.ai, ChatGPT, Claude Code)
Add Mirror Ai's address to the tool, then sign in to Mirror Ai in your browser and allow access. There is no key to create, copy or store.
Use an API key (Cursor, VS Code, Windsurf, Codex, scripts; Claude Code also works)
Create a key in your Mirror Ai workspace and paste it into the tool's settings. Use this for tools that cannot sign in, and for your own scripts.
Both ways give your assistant the same 48 tools and the same limits, and both need an active Mirror Ai plan. You can use both at once, for example ChatGPT signed in on the web and Cursor with a key on your laptop.
Before you start
You need an active Mirror Ai plan or free trial, or VIP access, and one of the tools listed in Step 2. claude.ai and ChatGPT also have plan rules of their own for adding an outside service; Step 2 says what they are.
Step 1, create your key
Signing in from claude.ai, ChatGPT or Claude Code? Skip this step and go to Step 2. You only need a key for a tool that cannot sign in, or if you prefer one.
A key is how your AI tool proves it is you. You make one inside Mirror Ai, in three clicks.
- Open your Mirror Ai workspace and choose API & MCP in the left rail. It is also linked from your profile page.
- Select Create key.
- Give it a name and choose when it expires, then select Create key again.
Name the key after the machine or the tool it is for, so that "Work laptop, Claude Code" tells you what stops working if you ever revoke it. Expiry defaults to 90 days, and 30 days and 365 days are the other two choices.
The key is shown once. It appears in full on that screen and nowhere else, ever again. Copy it into your password manager before you close the panel. If you lose it, you do not recover it, you rotate the key and get a new one.
A Mirror Ai key always begins gl_mcp_ followed by a long random string. Throughout this page that key is written as gl_mcp_YOUR_KEY: everywhere you see it, paste your own key in its place, including the gl_mcp_ part.
Step 2, connect your tool
Find your tool below and follow the one set of instructions for it. The first group signs in with your Mirror Ai account. The other two use the key from Step 1. Every snippet has a Copy button, and the label above each snippet says where it goes.
Every tool connects to the same address:
https://mcp.mirror.glasslane.io/mcp
Sign in with your Mirror Ai account
These three ask you to sign in to Mirror Ai in your browser and then to allow access. What signing in looks like, below them, walks through the screens you will see.
Claude Code
Claude Code is set up by typing into a terminal. A terminal is a plain window where you type commands instead of clicking. If you have never opened one:
- On a Mac, press Cmd and Space together, type
Terminal, and press Return. - On Windows, select the Start button, type
PowerShell, and select Windows PowerShell.
A window opens with a blinking cursor. Paste this line and press Return. It has no key in it, on purpose:
claude mcp add --transport http --scope user mirror https://mcp.mirror.glasslane.io/mcp
--scope user is what makes the connection available in every project rather than only in the folder you happen to be in. Leave it in.
Run claude mcp list. Mirror Ai shows as mirror with ! Needs authentication next to it. That is expected: Claude Code knows where Mirror Ai is, and you have not signed in yet. To sign in:
- Start Claude Code: type
claudeand press Return. - Type
/mcpand press Return. - Choose
mirror, then Authenticate. Your browser opens. - Sign in to Mirror Ai and select Allow access.
- Go back to Claude Code. Mirror Ai is connected.
Set Mirror Ai up with a key before? Remove that entry first, or Claude Code keeps using the old key and never offers to sign in. How to remove it is in the troubleshooting section. If you would rather keep using a key, see Claude Code with a key.
claude.ai
Claude calls an outside service like Mirror Ai a custom connector. On a Free, Pro or Max plan you add it yourself:
- In Claude, go to Customize, then Connectors.
- Select +, then Add custom connector.
- Name it
Mirror Aiand paste the MCP server URL from the top of this step. - Leave Advanced settings alone. The OAuth Client ID and OAuth Client Secret stay empty, because Mirror Ai does not issue them.
- Select Add, then Connect. Sign in to Mirror Ai in the window that opens and select Allow access.
To use it in a conversation, select + at the lower left of the chat box, then Connectors, and make sure Mirror Ai is on.
A Free plan can add one custom connector. On a Team or Enterprise plan, only an Owner can add one: an Owner adds Mirror Ai under Organization settings, then Connectors, and each member then finds it under Customize, then Connectors, and selects Connect to sign in with their own Mirror Ai account.
These labels follow Anthropic's own guide, Get started with custom connectors using remote MCP. If your screen differs, that page has the current ones.
ChatGPT
ChatGPT connects to an outside service like Mirror Ai through developer mode. OpenAI offers it on the web only, not in the ChatGPT phone apps, and lists it for Plus, Pro, Business, Enterprise and Edu plans. On a Business plan only workspace admins and owners can turn it on, and on Enterprise and Edu an admin has to grant it to you first. A Free plan cannot add Mirror Ai.
- In ChatGPT on the web, open Settings, then Apps, then Advanced settings, and turn on Developer mode.
- Back in Apps, select Create.
- Name it
Mirror Ai, paste the MCP server URL from the top of this step, and choose OAuth as the authentication. Leave any client ID and secret fields empty. - Select Scan Tools. ChatGPT opens Mirror Ai's sign-in: sign in and select Allow access. When the scan finishes, select Create.
- Mirror Ai now appears in Settings, Apps, with a Dev label. In a chat, choose it from the tools menu to use it.
OpenAI is reworking these screens. Its help article, Developer mode and MCP apps in ChatGPT, uses the labels above; its developer guide puts the switch under Settings, then Security and login, and calls Apps "Plugins". If you do not see one set of labels, look for the other.
What signing in looks like
The same few screens appear whichever of the three you use:
- The Mirror Ai sign-in page, if you are not already signed in to Mirror Ai in that browser. Sign in as usual and you are taken straight back to the connection.
- Connect an app to Mirror Ai. This screen names the app, the website that vouches for it, and the Mirror Ai account it will use. It lists what the app can do (read Mirror Ai data, and add to or dismiss items on your own security watchlist and alerts) and what it cannot (use the Mirror Ai AI assistant tools, see your payment details, or keep working if your plan lapses).
- Signed in as the wrong account? Select Not you? Switch Mirror Ai account, sign out, and sign in as the right one. Nothing is connected until you allow it.
- Allow access sends you back to the app, connected. Deny cancels, and nothing is connected.
If the screen says unverified where the website would be, the app registered itself with Mirror Ai and its name has not been checked. Only continue if you started the connection yourself.
You type your password on Mirror Ai's own page, so the app never sees it. What the app receives works only with Mirror Ai's MCP server, renews itself every hour while you use the app, and stops the moment you disconnect the app.
Terminal tools, with a key
Both of these are set up by typing into a terminal. How to open one is under Claude Code, above. Paste the line for your tool, press Return, and that is the whole setup.
Claude Code with a key
claude mcp add --transport http --scope user mirror https://mcp.mirror.glasslane.io/mcp --header "Authorization: Bearer gl_mcp_YOUR_KEY"
This is the same line as the sign-in one with your key added at the end. Use one or the other, not both: while an entry carries a key, Claude Code uses the key and does not offer to sign in.
Codex
Codex reads the key from an environment variable rather than from its config file. Set the variable first, in the same terminal window:
export MIRROR_MCP_KEY="gl_mcp_YOUR_KEY"
setx MIRROR_MCP_KEY "gl_mcp_YOUR_KEY"
Then add the server:
codex mcp add mirror --url https://mcp.mirror.glasslane.io/mcp --bearer-token-env-var MIRROR_MCP_KEY
If you would rather edit the file by hand, the same thing written into ~/.codex/config.toml on macOS, or %USERPROFILE%\.codex\config.toml on Windows, is:
[mcp_servers.mirror]
url = "https://mcp.mirror.glasslane.io/mcp"
bearer_token_env_var = "MIRROR_MCP_KEY"
On macOS, export sets the variable for that terminal window only. To keep it, add the same line to the end of ~/.zshrc. On Windows, setx keeps it for good, but only in terminal windows opened after you run it, so close the window and open a new one.
Editor tools, with a key
Cursor, VS Code and Windsurf are set up by putting a small block of text into a settings file. Each one below says exactly which file and where to find it. If the file does not exist yet, create it with that name, and paste the whole block in including the outer { and }. If the file already has something in it, ask whoever set the tool up for you, because merging two of these blocks by hand is the one step on this page that is easy to get wrong.
Cursor
{
"mcpServers": {
"mirror": {
"url": "https://mcp.mirror.glasslane.io/mcp",
"headers": {
"Authorization": "Bearer gl_mcp_YOUR_KEY"
}
}
}
}
Save the file and restart Cursor. On a Mac, ~ means your home folder; press Cmd Shift G in Finder and type ~/.cursor to get there, because folders whose name starts with a dot are hidden by default.
VS Code
Open the Command Palette with Cmd Shift P on a Mac, or Ctrl Shift P on Windows, type MCP: Open User Configuration, and press Return. That opens the right file wherever it lives, so you never have to find it yourself. Paste this in:
{
"servers": {
"mirror": {
"type": "http",
"url": "https://mcp.mirror.glasslane.io/mcp",
"headers": {
"Authorization": "Bearer ${input:mirror-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "mirror-key",
"description": "Mirror Ai MCP key",
"password": true
}
]
}
There is no key in that block on purpose. VS Code asks you for it the first time it connects and then stores it in the system keychain, so your key never sits in a file at all. Paste the key when it asks.
Windsurf
{
"mcpServers": {
"mirror": {
"serverUrl": "https://mcp.mirror.glasslane.io/mcp",
"headers": {
"Authorization": "Bearer gl_mcp_YOUR_KEY"
}
}
}
}
Windsurf spells it serverUrl, not url. It is the only tool on this page that does. Copy the block above rather than adapting the Cursor one, because a Windsurf entry with url in it fails without saying why.
Step 3, check it worked
Restart the tool first if it is an editor or a terminal tool. None of those read their settings again while they are running, so nothing you just pasted takes effect until you quit the application completely and open it again. claude.ai and ChatGPT pick up a new connection straight away.
Then ask the tool itself whether it sees Mirror Ai:
- Claude Code. Run
claude mcp listin a terminal.mirrorshould be listed and marked as connected. If it says! Needs authentication, the sign-in has not finished: run/mcpinside Claude Code and choose Authenticate. - claude.ai. Customize, then Connectors. Mirror Ai should be listed and should not be asking you to connect.
- ChatGPT. Settings, then Apps. Mirror Ai should be listed with the Dev label.
- Codex. Run
codex mcp list.mirrorshould be listed. - Cursor. Settings, then MCP.
mirrorshould show a green dot and a tool count. - VS Code. Command Palette, then
MCP: List Servers. Selectmirrorto see whether it is running. - Windsurf. Open the Cascade panel and its MCP or plugins list.
mirrorshould appear with its tools.
If you signed in, Mirror Ai keeps its own record as well. In your workspace, open API & MCP: Connected apps lists every app you have signed in to, with the date and time it connected. If the app is there, the sign-in worked.
A connection still does not prove that Mirror Ai will answer, because your plan is checked on each call rather than when the tool connects. So ask a question that has to go through Mirror Ai to be answered:
Use the mirror server to get current market data for ETH.
A good answer names the tool it used and comes back with figures, roughly like this:
I used the mirror server's get_current_market_data tool. ETH is trading at $2,847.12, down 1.8% over 24 hours, with $14.2B of 24 hour volume and a market cap of $342.7B. Data as at 2026-09-16 04:12 UTC.
If the assistant answers from memory instead, with no tool named and no timestamp, it has not used Mirror Ai. In claude.ai and ChatGPT, check that Mirror Ai is turned on for that conversation. Then ask again and say "use the mirror server". If it says it has no such tool, or the call is refused, go to If something goes wrong.
What you can ask for
Ask in plain language and name the server. Your assistant decides which of the 48 tools to call, and it can chain several in one answer. These are the shapes that work well:
Market and trading
- Use the mirror server to chart SOL's hourly candles for the last week and tell me where volatility spiked.
- Use the mirror server to compare momentum for BTC, ETH and SOL over 1, 4 and 24 hours, and say which is diverging.
- Use the mirror server to find arbitrage opportunities above 0.5% right now and tell me which of them clear their own gas cost.
DeFi and liquidity
- Use the mirror server to find stablecoin yield opportunities above 6% and show me the TVL behind each one.
- Use the mirror server to compare DEX liquidity for this token across protocols and tell me where a $250k order moves the price least.
Security and diligence
- Use the mirror server to scan this contract address, check its holder concentration, and summarise what a fund should worry about.
- Use the mirror server to check the reputation of this address and tell me whether it appears in the threat feed.
Research and compliance
- Use the mirror server to pull the research findings for this token and cite the evidence behind each one.
- Use the mirror server to summarise the regulatory rules that apply to a staking product in Australia and Singapore, and note where they conflict.
Two habits worth keeping. Name the server in the request, because an assistant that is not told will often answer from memory. And ask for the evidence, because every Mirror Ai research answer can name its source and an answer that will not is an answer worth checking.
Keeping your key safe
- A key is a password to your Mirror Ai account. Anyone holding it can read everything your plan covers, without your email address or your password.
- Never send it in an email, a chat message or a screenshot. Put it in a password manager, or in the tool's own secret storage, and nowhere else.
- One key per machine. They are free, and separate keys are what lets you turn off a lost laptop without touching anything else.
- Revoking a key affects only that key. Your other keys, your login, and everyone else on your team carry on working. If you think a key has leaked, revoke it immediately and make a new one.
- Disconnect signed-in apps you no longer use. In your workspace, open API & MCP, then Connected apps, and select Disconnect. The app's next call fails, and connecting it again means signing in again. Your keys and your other apps are not affected.
- Only allow access you asked for. Select Allow access only when you started the connection yourself and the app and website on the screen are the ones you meant.
- Leave your tool's approval prompts on. An AI assistant reads web pages, documents and files, and text inside those can carry instructions aimed at the assistant rather than at you. The prompt that asks before a tool runs is what stops that turning into an action on your account.
If something goes wrong
Find what you are seeing. Each one says what is happening and what to do.
Signing in
Claude Code says "Server rejected the configured Authorization header (HTTP 401)"
Why. An older Mirror Ai entry in Claude Code still carries a key, and that key no longer works, usually because it expired or was revoked. While an entry carries a key, Claude Code will not offer to sign in, which is what the end of the message, "OAuth fallback is disabled when headers.Authorization is set", is saying.
Fix. Remove the old entry, add it again without the key, then sign in as in Claude Code:
claude mcp remove "mirror" -s user
claude mcp add --transport http --scope user mirror https://mcp.mirror.glasslane.io/mcp
"An active subscription is needed"
Why. Connecting an app needs an active Mirror Ai plan or free trial on the account you signed in with, and that account does not have one. Nothing was connected. It also appears if you signed in with a different account from the one that has the plan. Access through a wallet NFT does not include connecting apps yet.
Fix. Check the plan in your subscription, or sign in with the account that has it. Then go back to the app and start the connection again.
ChatGPT has no Developer mode setting, or no Create button
Why. Adding Mirror Ai to ChatGPT needs developer mode, and developer mode depends on your ChatGPT plan and, in a workspace, on your admin. It is web only, so the phone apps never show it.
Fix. On the web, look under Settings, Apps, Advanced settings (or Settings, Security and login). If the switch is not there, your plan does not include it: a Free plan does not, on Business only admins and owners have it, and on Enterprise and Edu an admin has to grant it. Nothing on the Mirror Ai side changes this. Any tool that uses a key, such as Cursor or VS Code, works in the meantime.
"This connection request has expired", or "has already been answered"
Why. Each sign-in request is good for one answer and for a short time. It expires if the screen was left open too long or an old tab was reopened, and it has already been answered if you went Back, or used a second tab, after selecting Allow access or Deny.
Fix. Go back to the app you were connecting and start again from there. If the app already shows Mirror Ai as connected, there is nothing to do.
An app that was signed in asks you to sign in again
Why. A sign-in renews itself every hour while the app uses Mirror Ai. It ends if the app has not used Mirror Ai for 30 days, or if the app was disconnected under Connected apps.
Fix. Sign in again with the same steps as the first time. In Claude Code that is /mcp, then mirror, then Authenticate.
Signing in takes you to billing: "Your last payment didn't go through"
Why. The last payment on your Mirror Ai plan failed. Until it is fixed, signing in takes you to the subscription section of your profile rather than on to the connection.
Fix. Update your payment method there. Once the payment goes through, use Continue where you left off if your profile page offers it, or go back to the app and start the connection again.
"Temporarily unavailable", "We could not check your subscription" or "Mirror Ai could not record your answer"
Why. Something on the Mirror Ai side did not answer in time. Nothing was connected, and nothing is wrong with your account.
Fix. Wait a moment and select Try again on that page. If it happens again, go back to the app and start the connection again.
Keys and settings files
The tool says the key is invalid, and you are sure you copied it
Why. Almost always a stray space, a line break, or half a key. Copying from a screen rather than with the Copy button often takes a trailing space, and a key that is too short was truncated when it was pasted.
Fix. Check the key in your config starts with gl_mcp_ and is one unbroken run of characters with no spaces and no line break in the middle. Quotation marks around it in JSON are correct and stay. If in doubt, rotate the key in the console and paste the fresh one with the Copy button.
Cursor, VS Code or Windsurf reports an authentication error straight away
Why. Mirror Ai refuses any request that arrives without a key. Tools that can sign in (claude.ai, ChatGPT and Claude Code) take that refusal as the cue to start signing in. A tool set up with a key shows an authentication error instead, and when that happens at once it almost always means the key was not sent at all, because the Authorization line did not survive the paste.
Fix. Check that the line reads "Authorization": "Bearer gl_mcp_...", with the word Bearer, one space, then the key. Missing Bearer, or a missing space after it, produces exactly this.
It worked yesterday and stopped today
Why. The key expired, or it was revoked, or the subscription behind it lapsed. Keys are not revoked when a plan lapses, but every call made with one is refused until the plan is active again.
Fix. Open API & MCP in your workspace and look at the key's status column. Expired or Revoked means make a new key. Active means check your plan on the subscription page; a resumed plan starts working again within about five minutes. For a signed-in app, see "An app that was signed in asks you to sign in again", above.
Windsurf will not connect, and the same settings work elsewhere
Why. Windsurf expects serverUrl where every other tool on this page expects url. A Windsurf entry with url in it is not an error to Windsurf, it is a server with no address, so it fails silently.
Fix. Open mcp_config.json and check the line reads "serverUrl". Copy the Windsurf block from Step 2 rather than adapting another one.
Codex cannot find the key you set
Why. An environment variable belongs to the terminal window it was set in. Codex only sees MIRROR_MCP_KEY if it was started from a window where that variable exists, so setting it in one window and launching Codex from another, or from the Dock or the Start menu, leaves Codex with nothing.
Fix. On a Mac, add the export line to the end of ~/.zshrc, then close every terminal window and open a new one. On Windows, setx already saved it, but only windows opened after that command can see it, so close the window and open a new one.
Any tool
You saved everything and nothing changed
Why. The tool is still running with the settings it read when it started. This is the single most common cause, and it looks exactly like a broken key.
Fix. Quit the application completely, not just the window, and open it again. On a Mac that is Cmd Q; closing the window is not enough. For Claude Code and Codex, close the terminal window and open a new one.
The address is refused, or nothing responds at all
Why. The address is wrong. The most common version of this is dropping the /mcp at the end, which leaves you pointing at the server's front door instead of at the MCP entrance.
Fix. The address is exactly https://mcp.mirror.glasslane.io/mcp. All lower case, https not http, no slash on the end, and /mcp present.
It works at home and not on the office network
Why. Corporate networks commonly block outbound connections to addresses they do not recognise, and an MCP connection is an ordinary outbound HTTPS connection to a domain your IT team has probably never seen.
Fix. Ask your IT team to allow mcp.mirror.glasslane.io on port 443. For keys, that is the whole request. Signing in also opens mirror.glasslane.io in your browser, which is the Mirror Ai site itself.
Still stuck? Contact us with the name of your tool, what you see, and, if you use a key, its first eight characters (gl_mcp_ and one more). Never send the whole key.
Limits
- Requests a minute
- 60
- Requests a day
- 10,000
- Active keys per account
- 20
- Key lifetime
- 30, 90 or 365 days
The two request limits are stamped onto each key when you create it, so a key keeps the limits it was made with. Normal research does not come close to them: one question typically spends between one and five requests.
The cap of 20 counts keys that are still active. A revoked key does not count, so if you reach the limit, revoke one you no longer use and create the new one.
Signed-in apps have the same two request limits, 60 a minute and 10,000 a day, counted separately for each app you connect. They do not count towards the 20 active keys, and there is no lifetime to choose: the sign-in renews itself every hour while the app uses Mirror Ai, and lasts until you disconnect the app or it goes 30 days without using Mirror Ai.
Whichever way you connect, your plan is checked on every call, so a key or an app stops working when a plan lapses and starts again once it is active.
Changelog
- Added signing in from claude.ai, ChatGPT and Claude Code, the Connected apps list, and troubleshooting for signing in.
- First published. Covers Claude Code, Codex, Cursor, VS Code and Windsurf.