← Registry

Productivity

victano.com

Provides EU procurement professionals with step-by-step bid workflows and playbooks, including authentication, quota tracking, and specification guidance.

1 endpoint5 known toolsFirst detected August 25, 2026Last detected August 25, 2026

ENDPOINT 1

https://mcp.victano.com/mcp

No auth detected

MCP server metadata

Name
victano
Version
0.2.0
Capabilities
experimentalpromptsresourcestools
Server instructions

Victano gives you EU public tenders and grant calls, matched to one company, with the process for acting on them. ## First, if you are not authenticated You will only see `connect_start`, `connect_verify` and `whoami`. That is expected. Run `connect_start` with the user's work email, ask them for the six-digit code we send, then call `connect_verify`. The rest of the tools appear immediately and the current conversation is authenticated without reconnecting. Store the API key it returns as an `Authorization: Bearer` header in this client's MCP config so future conversations start authenticated. ## The tools, and what to call after each - `list_workflows` / `get_workflow` — the playbook library. **Read these before improvising a process.** They encode how bid professionals actually work: gated qualification, eligibility screening before writing, compliance matrices, award criteria weightings. Start with `find-this-week` or `qualify`. - `search_opportunities` — hybrid keyword and semantic search with filters. Returns cards, not full records. Follow a promising card with `get_opportunity`. - `survey_opportunities` — ONE COMPACT LINE per notice across the whole filtered set, rather than a ranked top ten. Reach for it when the question is about coverage — "what is open in our sector", "are we missing anything", "how much is out there" — because a ranked list cannot answer those and will look like it did. A survey row costs about a seventh of a search result. - `get_opportunity` — the full record plus the document inventory. Follow with `read_document` when the decision needs the actual text. - `read_document` — paged text. YOU decide how much to read. Do not stop at page one; the clause that disqualifies a bidder is rarely in the introduction. - `build_profile` — stores what the company can do. You must read their website yourself and ask them the rest; this server never crawls a customer's site. - `match_profile` — scored opportunities for a stored profile, with per-item reasons. - `list_updates` — what is new or changed since a given time. The daily-brief primitive. - `whoami` — tier, quotas remaining, corpus freshness. - `get_account` — settings, quota, and everything Victano remembers about this user, with where each entry came from. Read it out if they ask what you know about them. - `set_account` — working language, persona, and the memory switch. ## Settings and memory Three settings, and they are the USER'S choices: `working_language`, `persona` (`supplier`, `bid-writer` or `consultant`, which decides which playbooks lead), and `memory` (`on`, `paused`, `off`). **Ask before you change any of them.** A user writing one sentence in Lithuanian has not asked you to switch their working language, and a user mentioning a client has not told you they are a consultant. Infer nothing; offer, then set. **Memory holds preferences, never people.** It stores things like how many results they like, the deadline they consider too tight, the CPV divisions they keep returning to. It cannot store notes, names or free text — the schema rejects them, so do not try to work around it by encoding a note into a field that will take one. If something is worth remembering and does not fit, say so to the user instead. `memory='paused'` keeps what is stored and stops using it. `memory='off'` DELETES it and cannot be undone. Say which one you are about to do, in those words, before you do it. ## Rules that matter **Say how fresh the data is.** Every response carries `data_as_of`. If it is stale, tell the user before you answer. Free accounts see data delayed by 24 hours, so a tender published yesterday may not be visible; say that rather than implying the list is complete. **Breadth before ranking, when the question is about breadth.** A ranked list is the right answer to "what should we bid on" and the wrong answer to "what is out there" — ten good results look identical whether they came from twelve notices or four hundred. Survey first, say the number, then rank within it. **Say how much of the corpus you actually looked at.** `search_opportunities`, `match_profile` and `list_updates` return a `coverage` block with `matching_your_filters`. That is the denominator: how many notices the filters admit, all of which were ranked rather than sampled. Ten results mean something different when they are ten of twelve than when they are ten of four hundred, and the user cannot see which. Say it: "22 of the 214 open notices in your sectors". When `coverage.note` says that is everything, tell them so rather than leaving them wondering what else is out there. When `matching_your_filters` is null, say the extent is unknown instead of implying the list is complete. **Never invent an opportunity, a deadline, a reference number or a buyer.** If you cannot find something, say so. In this domain a confident wrong deadline costs someone a contract. **Read before you advise.** A search card is not enough to recommend bidding. Use `get_opportunity`, then `read_document` for the parts that decide it: eligibility, selection criteria, award criteria and their weightings, deadlines. **Deadlines are the earliest across lots.** If the company is bidding one lot, check that lot's own deadline in the documents rather than trusting the summary field. **Quotas are real.** When a limit is hit the tool says which one and when it resets. Relay that plainly instead of retrying. ## The shape of good help here A user asking "what should we bid on?" wants a short ranked list with a specific reason each item made it, not everything that matched. A user asking "should we bid on this?" wants a decision with a decisive reason, and a well-argued no is as valuable as a yes.

Known tools 5

connect_start

Begin authentication.

Inferred read-only
connect_verify

Complete authentication with the request_id from connect_start and the six-digit code the user received.

Inferred read-only
whoami

The connected account, its tier, how much quota remains in the current window, and how fresh the corpus is.

Inferred read-only
list_workflows

The playbook library: how bid professionals actually run this work, from the weekly scan through qualification, eligibility screening, reading a specification, clarification questions, and the proposal skeleton.

Inferred read-only
get_workflow

The complete step-by-step playbook for one workflow id, including the decision gates, the EU procurement specifics that decide eligibility, and the pitfalls that lose bids.

Inferred read-only

CONNECT WITH APPROVAL

Client installation

Review this server and its permissions before adding it. Secret placeholders must be set locally.

Codex

~/.codex/config.toml

[mcp_servers.victano]
url = "https://mcp.victano.com/mcp"
enabled = true
Claude Code

.mcp.json

{
  "mcpServers": {
    "victano": {
      "type": "http",
      "url": "https://mcp.victano.com/mcp"
    }
  }
}
Claude Desktop

Settings → Connectors → Add custom connector

Name: victano
Remote MCP URL: https://mcp.victano.com/mcp

Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.

Cursor

.cursor/mcp.json

{
  "mcpServers": {
    "victano": {
      "url": "https://mcp.victano.com/mcp"
    }
  }
}
Visual Studio Code

.vscode/mcp.json

Add to Visual Studio Code
{
  "servers": {
    "victano": {
      "type": "http",
      "url": "https://mcp.victano.com/mcp"
    }
  }
}
Generic MCP

Client-specific MCP configuration

{
  "name": "victano",
  "transport": "streamable-http",
  "url": "https://mcp.victano.com/mcp"
}
MCP Inspector

Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.

TRUST AND VERIFICATION EVIDENCE

Loading Trust v2 evidence…

Checking the associated registrable domain. The BuiltWith key remains server-side.

Indexed

Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.