Skip to main content
The Atlas MCP server wraps the public /v1 API and the published score history as a Model Context Protocol server. Use it hosted at a URL, or run it locally. It is listed in the official MCP registry as club.atlasyield/mcp.

Connect

The hosted server is one URL. It needs no key and no sign-in.
“End to end” means we connected the client to the live server and read its answer. “Vendor docs” means the steps follow the client’s own documentation as of October 2026, which changes often. If a menu name differs, follow the client’s current guide and use the same URL.

Claude on the web and desktop

Custom connectors work on Free (one connector), Pro, Max, Team and Enterprise. Claude connects from Anthropic’s cloud, so the server must be reachable from the public internet, which this one is.
1

Add the connector

Pro and Max: Customize, then Connectors, then + Add, then Add custom connector. Name it AtlasYield and enter https://atlasyield.club/mcp, then Continue. On Team and Enterprise an Owner adds it under Organization settings, then Connectors, and members then click Connect.
2

Choose No sign-in

Under Authentication pick No sign in. Claude will already show it as detected. Leave the OAuth client and Request headers empty: there is nothing to enter.
3

Use it in a chat

Open a new chat, click + at the lower left, then Connectors, and switch AtlasYield on. Then ask, for example: USDC vaults on Ethereum above 10% APY, what got filtered out?
Claude Desktop uses the same Connectors screen. See Anthropic’s guide: custom connectors using remote MCP.

Claude Code

By default this is saved for the current project. Add --scope user to make it available in every project, or --scope project to share it through .mcp.json. Check it with claude mcp list, or run /mcp inside a session. Remove it with claude mcp remove atlasyield. See Claude Code: MCP.

ChatGPT

Custom MCP servers in ChatGPT depend on your plan and workspace settings, and OpenAI has renamed the menus more than once, so follow OpenAI’s current guide: Developer mode and MCP apps, or Connect and test your plugin. Enter these values: Start a new conversation, type @ in the prompt box and pick AtlasYield, or enable it from the apps menu your account shows. Every AtlasYield tool only reads data and is marked read-only, so a plan that allows read-only connectors is enough. If you see no option to add a custom server, your plan or workspace does not have it.

Gemini CLI

This writes the project’s .gemini/settings.json. Add -s user to write ~/.gemini/settings.json instead. The same entry by hand:
Use httpUrl for streamable HTTP; url is for the older SSE transport. See Gemini CLI: MCP servers. We have not tested the Gemini web app.

Cursor and VS Code

Cursor reads ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):
In VS Code run MCP: Add Server from the Command Palette, choose HTTP, and paste the URL. The entry it stores is { "type": "http", "url": "https://atlasyield.club/mcp" }. See Cursor and VS Code.

Local: run it yourself

@atlasyield/mcp on npm runs the same tools over stdio. Use it when you want requests to come from your own address, or when a client only supports local servers.
The JSON form also goes in Claude Desktop’s claude_desktop_config.json. The npm package can trail the hosted server by a release, so the hosted one has the newest find_vaults output.

Check the server from a terminal

Both headers are required; without the accept header the server answers 406. Opening the URL in a browser shows a 405 message, which is expected: the endpoint only accepts POST.

Tools

Every result carries the disclaimer: research and information, not investment advice. Every tool declares itself read-only, so clients that skip confirmation for read-only tools will not prompt. A good first call is find_vaults (for example asset: "USDC", chain: "base"). It returns a short list you can act on, and each row carries what the other tools need. Then call check_route_survival for the vault you pick, before any deposit.

Reading a find_vaults result

The result shows what was kept and what was left out, so a short list is never mistaken for the whole market. Example, with values that change daily:
2 of 86 USDC vaults on Ethereum matched (APY of at least 10%, a deposit route, not on fallback data); showing 2. Removed by the filters (counts are per filter and overlap): 84 below the APY floor, 1 with no deposit route.
  • The funnel. How many vaults were scored, how many fit the asset and chain, how many passed every filter, and how many each filter removed. One vault can fail two filters, so the counts can add up to more than the candidates.
  • Dropped vaults. notableExcluded lists up to five vaults that did not make the list, with the reason. Two slots are held for vaults dropped because they are unreachable or low confidence (no deposit route, not in the live catalog, fallback data), so those are never crowded out by higher ranked vaults that only missed a threshold.
  • Near-miss assets. The asset match is exact, so USDC does not include syrupUSDC. similarAssets names the close symbols that were left out. Pass a list to include them.
  • Truncation. truncated: true means more vaults matched than limit returned.
  • Cold catalog. cacheWarning appears when the live catalog looks empty after a restart. The routable filter fails closed, so results can be too short until it warms up. Retry in a minute.
Each vault carries flags. A flag is a prompt to look closer, never a verdict, and no flag is not a statement of safety. The model decides what it tells you. The result carries a summary sentence and presentation rules that ask it to show the funnel, the flags and the dropped vaults, but a client can still word things its own way. The viewUrl in the result opens the same search on a page we render, with the funnel, the flags and the dropped vaults laid out.

Calling the API directly

The same data is on GET /v1/scores. Add fields=compact&explain=true to get the flags and the funnel, and pass routable=true&excludeFallback=true yourself: the API stays neutral and does not apply the filters the MCP tool applies by default. The response echoes the filters it honoured in applied and lists any query key it did not recognise in ignoredParams, so a misspelt minAPY is visible instead of silently returning unfiltered rows.

About the hosted endpoint

  • Stateless. Each request stands alone and replies with plain JSON, not a stream. During initialize the server returns an Mcp-Session-Id header and compliant clients send it back on later requests. It only carries the client name for our usage counts and is not used for anything else.
  • Same data as the API. The hosted tools read the same /v1 data and share its disclaimer. Browser-based MCP clients can call it: CORS is open and the session header is exposed.
  • Shared infrastructure. All hosted callers share one upstream request budget. Under heavy load a call can come back as a tool error mentioning the rate limit; retry after the interval it states. For sustained or latency-sensitive use, run the server locally so requests come from your own address, or call /v1 directly.
  • What we log. For each hosted call: the time, your IP address, the client name and version your MCP client announces, a random session id our server hands your client when it connects, the method, the tool name, the outcome and how long it took. We do not log tool arguments. These records are kept in our own database for 180 days, then deleted, and we use them to count how many agents use the server.

Troubleshooting

Check the URL ends in /mcp and uses https. Run the curl check above: a JSON list of seven tools means the server is up and the problem is in the client’s settings. In Claude, make sure authentication is No sign in; choosing a sign-in mode sends Claude looking for an OAuth server that does not exist.
Hosted callers share one upstream budget. Wait for the interval the message states and retry, or run the local server.
The tool will not return rows that a filter did not actually remove. This means the API behind the server did not echo the filter back, for example because it was mid-deploy. Retry in a minute, or ask without that filter.
The result always carries the funnel, but the client’s model chooses what to repeat. Ask it directly: “what did the filters remove, and which vaults were dropped?” Or open the viewUrl from the result.
ChatGPT uses tool annotations to decide when to ask. All AtlasYield tools declare readOnlyHint: true. If you still see prompts, check the connector scan shows all seven tools and refresh the connection after an update.

What it refuses to do

There is no deposit, sign, or send tool, and none will be added. The point of the server is the refusal: an agent asks whether a route survives a round trip and is told no before it moves a user’s money. Execution, where it exists, is a separate API with its own guards, not an MCP tool. Source: https://github.com/gveshk/atlasyield-mcp. Data licence: https://atlasyield.club/data-license