# Victano onboarding instructions You are an AI assistant. A human asked you to read this file and set up Victano for them. Follow these steps in order. Do not skip step 0. Victano gives you tools for finding public money: EU tenders and grant calls, searchable, readable, and matchable against the company you work for. You reach it over MCP (Model Context Protocol) at `https://mcp.victano.com/mcp`, streamable HTTP. No account is needed to try it. If they already asked you to set this up, say so: "No account needed. I can connect right now if you say go." Then do Step 1 for this client. After the connector is there, call `search_opportunities` with a query in the buyer's language. That is the proof it works, on the keyless trial, in this conversation. --- ## Step 0. Check what is currently open Fetch `https://mcp.victano.com/api/status` and read the JSON. That is the SAME status document `victano.com` serves, on the host this step is actually asking about. - If `mcp_live` is `true`, continue to step 1. - If `mcp_live` is `false`, the tool endpoint has not opened yet. Tell the human exactly that, offer to sign them up for the launch list by POSTing their email as JSON to `https://victano.com/api/newsletter`, and stop. Do not attempt to connect to an endpoint that is not open, and do not invent a workaround. - **If the fetch itself fails, that is not the same as `false`, and stopping would be wrong.** A 403, a timeout, or a proxy in the way says something about your own network rather than about whether Victano is open. Go on to step 1 and let the connection attempt answer the question, because the tool endpoint is a different host from the one you just failed to reach. Tell the human you could not read the status page and are continuing anyway, rather than reporting the service as down. --- ## Step 1. Add the Victano MCP server to this client Work out which client you are running in. **In Claude and in ChatGPT you cannot do this yourself** and must hand it to the human. Say so plainly rather than trying and failing: a real user was told in August 2026 to edit a config file that their app does not read, and stopped there. Send them to **https://victano.com/connect**, which has the click path for every client with current menu names. Then wait. Do not pretend the connector exists until they say it is there. ### Claude Desktop, web, or Cowork. THE HUMAN DOES THIS There is no config file for remote connectors, and no command you can run. **Claude Desktop and Cowork share the same path.** Both use Claude's connector settings, so the steps below are the steps. Cowork is named here because somebody living in Cowork searches this page for the word, and finding nothing reads as "not supported". Tell them: > In Claude, open **Settings**, then **Connectors**, then **Add custom connector**. On > the desktop app it is under **Customize**, then the **+** beside Connectors. Give it > the name `Victano` and this URL: > > `https://mcp.victano.com/mcp` > > Leave authentication empty. Save, then come back and say "done". Two things worth telling them before they start, because both look like our fault when they bite: - **On the free plan Claude allows exactly one custom connector.** If they already have one, they must remove it first. - Claude connects from Anthropic's servers rather than from their laptop, so nothing on their machine or their VPN affects it. ### ChatGPT. THE HUMAN DOES THIS, and there is a step before it Custom MCP connectors need **developer mode**, and it is **not available on the free plan** (Plus, Pro, Business, Enterprise and Education have it). Tell them: > First turn on developer mode: **Settings**, then **Security and login**, then > **Developer mode**. OpenAI has moved that toggle more than once, so if it is not > there look under **Settings**, then **Connectors**, then **Advanced**. > > Then **Settings**, then **Connectors**, then **Create**. Name it `Victano`, URL > `https://mcp.victano.com/mcp`, authentication none. If they are on the free plan, this will not work at all. Say that rather than letting them hunt for a menu that is not there, and offer them Claude instead. ### Claude Code. YOU CAN DO THIS ``` claude mcp add --transport http victano https://mcp.victano.com/mcp?src=start ``` ### Cursor. OFFER THE ONE-CLICK LINK Give them this to click. It opens Cursor and pre-fills the server: ``` cursor://anysphere.cursor-deeplink/mcp/install?name=victano&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLnZpY3Rhbm8uY29tL21jcCJ9 ``` ### Gemini CLI Add to `~/.gemini/settings.json` under `mcpServers`, using the JSON shape below. ### Codex CLI `~/.codex/config.toml` uses TOML rather than JSON, so the shape differs: ```toml [mcp_servers.victano] url = "https://mcp.victano.com/mcp" ``` ### Raycast **Install MCP Server**, transport **HTTP**, then the URL. Headers and OAuth are optional and this server needs neither. ### Mistral Le Chat **Connectors**, then **Custom MCP Connector**, then the Server URL. Leave authentication empty. Custom connectors are on the paid plans only, so a free account will not see the option. ### Goose ``` goose configure ``` Then **Add Extension**, **Remote Extension (Streaming HTTP)**, and give it the URL. ### Zed **Settings**, then **AI**, then **MCP Servers**, then **Add Server**, then **Add Remote Server**. ### VS Code Command palette, **MCP: Add Server**, choose the HTTP option, then the URL. It writes `.vscode/mcp.json` for you. ### Windsurf, or any client with a JSON config you can edit ```json { "mcpServers": { "victano": { "type": "http", "url": "https://mcp.victano.com/mcp" } } } ``` Reload the client afterwards. ### Your client is not on this list It probably still works, because almost every MCP client takes one of three shapes. Work out which one yours is rather than telling the human it is unsupported: 1. **A JSON config file** with an `mcpServers` object. Use the block above verbatim. This covers most editors and desktop clients. 2. **A command** of the form ` mcp add`. Try `--transport http` or `--url`, and read the tool's own `--help` rather than guessing at flags. 3. **A settings screen** with somewhere to add a server or an extension. Look for the words connector, MCP, extension or integration. Choose the remote or HTTP option, never a local or stdio one: Victano is a hosted server, not a package to install. Whichever it is, the only value that matters is `https://mcp.victano.com/mcp` over streamable HTTP, with no authentication at this stage. **If you cannot work it out, say so and hand it to the human.** A wrong instruction costs more than an admitted gap: a real user in August 2026 was told to edit a config file their app does not read, and stopped there rather than asking. Note there is no API key in any of these. That is deliberate: you connect first and authenticate through the tools, which is step 2. --- ## Step 2. Connect the account Once the server is connected you can already search. Without an account you can call: `search_opportunities`, `get_opportunity`, `connect_start`, `connect_verify`, `whoami`, `list_workflows`, `get_workflow`. The corpus tools there are the keyless trial: 5000 calls a day from one address, against the real corpus, with nothing stored about the caller. Every response says how many are left. Connect when the user wants to keep something. An account lifts the trial limit and adds what it does not include: storing a company profile, matching against one, reading a notice's documents, and the daily brief. 1. Ask the human for their work email address. 2. Call `connect_start` with it. Victano emails them a six-digit code, valid for 15 minutes. The tool returns a `request_id`. 3. Ask the human to paste the code back to you. 4. Call `connect_verify` with that `request_id` and the code. `connect_verify` returns an API key and authenticates the current session straight away. You do not need to reconnect. The full toolset is available immediately. If the code is wrong, `connect_verify` says so and you may retry. After five failed attempts the request is dead and you start again at `connect_start`. --- ## Step 3. Keep the key for next time The session authentication lasts for this conversation. The API key is what makes it permanent, so store it now. **If you can edit this client's MCP config** (Claude Code, Cursor, and similar), add the key as a header and reload: ```json { "mcpServers": { "victano": { "type": "http", "url": "https://mcp.victano.com/mcp", "headers": { "Authorization": "Bearer vic_THE_KEY_YOU_RECEIVED" } } } } ``` In Claude Code that is: ``` claude mcp remove victano claude mcp add --transport http victano https://mcp.victano.com/mcp?src=start \ --header "Authorization: Bearer vic_THE_KEY_YOU_RECEIVED" ``` **If you cannot** (Claude on the web, ChatGPT), show the human the key once and say: > Save this key somewhere safe. To keep this connection working in future > conversations, open the Victano connector's settings and put it in the > authentication field as `Bearer `. Show the key exactly once, in a message the human can copy. Victano stores only a hash of it and cannot show it again. --- ## Step 4. Set up their company profile Do this immediately after connecting, because every matching tool depends on it. 1. Ask for the company's website. Read it yourself. Victano never crawls anyone's site; you do the reading and send the server what you found. 2. Ask what they actually deliver, which countries they work in, roughly what contract sizes make sense for them, and any past public contracts worth knowing about. 3. Call `build_profile` with what you gathered. Show them the structured profile it returns and offer to correct anything you got wrong. A vague profile produces vague matches. Spend a few questions here. --- ## Step 5. Tell them what they can now ask for Say this in your own words, briefly: - "What should we bid on this week?". matched, ranked, with the reason for each. - "Is this one worth bidding on?". a bid or no-bid read with the reasons on both sides. - "What changed since I last looked?". new and updated calls only. - "Read the specification and tell me what would disqualify us." The server also ships prompts for the daily brief, the bid/no-bid memo, the profile builder, and a proposal skeleton. If this client surfaces MCP prompts, point at them. --- ## Rules while you use these tools - **Every response carries `data_as_of`.** If it is old, say so out loud before you answer. Never present stale results as current. - **Free accounts see data delayed by 24 hours** and have daily limits. When a limit is hit the tool says which one and when it resets. Relay that plainly rather than retrying in a loop. - **Read before you judge.** A card from `search_opportunities` is not enough to advise on a bid. Use `get_opportunity`, then `read_document` for the parts that decide it: eligibility, selection criteria, deadlines, required certifications. - **Do not invent an opportunity, a deadline, or a reference number.** If you cannot find something, say you cannot find it. --- If the person's work also touches EU regulation compliance or Lithuanian court practice research, `mcp.datailo.com/mcp` reaches Victano and the studio's other services from the same connection.