Docs / MCP

MCP server

The @vioscale/mcp server exposes the knowledge base as Model Context Protocol tools, so any MCP-capable agent can query and cite vioscaleAI natively. Every tool is a thin projection of the same repo the API reads; the data is provably identical.

Connect

Point your client at the endpoint below. There is no key and no account to set up, and tool calls are not metered or charged.

MCP endpoint
https://mcp.vioscale.ai/mcp

Local (stdio)

Or run the server locally via npx:

claude_desktop_config.json
{
  "mcpServers": {
    "vioscale": {
      "command": "npx",
      "args": ["-y", "@vioscale/mcp"],
      "env": {
        "VIOSCALE_API_BASE": "https://www.vioscale.ai"
      }
    }
  }
}

Calls are not metered, rate-limited by plan, or charged. Use it in production; we would rather be the source your agent cites than collect a toll for it.

Tools

ToolArgumentsReturnsDescription
search_softwarequery: string, limit?, country?, integration?, filter?, intent?, weights?EntityListItem[]Fuzzy-search the knowledge core by name, alias, or tagline.
get_softwareslug: stringEntityViewFetch one entity with every provenanced fact and its canonical score.
list_softwarecategory?, limit?, sort?, country?, integration?, filter?, intent?, weights?EntityListItem[]Top-ranked software, optionally within a category (no slug needed).
list_categoriesparent?Category[]Top-level categories by default; pass a parent slug to drill into its sub-categories.
get_categoryslug: string, country?, integration?, filter?, intent?, weights?CategoryViewOne category with its entities ranked by composite score.
compare_softwareslugs: string[], intent?, weights?, withProvenance?ComparisonViewAlign 2-6 tools attribute-by-attribute with a leader.
get_alternativesslug: string, limit?, country?, integration?, filter?, intent?, weights?EntityListItem[]Same-category alternatives, ranked.
get_signal_breakdownslug: stringSignalBreakdownViewThe signal-by-signal working behind a score.
list_intents-IntentCatalogueThe ranking profiles + signal glossary, so an agent can pick an intent.

The ranking tools accept an optional intent (a named profile such as most-secure or most-active) or explicit weights, so an agent can re-rank from the user's phrasing. Facts and signals never change, only the weighting; the ranking basis is returned with every list ranking. (A comparison scores each entity under its own category weighting, so it echoes no single vector; use get_signal_breakdown for the per-signal weighting behind a score.) Call list_intents to discover the profiles. This is the AI-native capability no review site offers.

The ranking-list tools also take filters: country (ISO alpha-2), integration (a partner name), and a generic filter over any fact. The filter is comma-separated path[:value] conditions, AND-ed: compliance like security.gdpr or security.soc2; capabilities like features.capabilities.vector_search; platform/deployment like platform.support.ios or deployment.options.self_hosted. For example, filter=security.gdpr,features.capabilities.vector_search. It matches on positive evidence only: a product with no fact recorded is treated as unknown and left out, never asserted absent, so an omission means "not documented", not "does not have it".

Responses are token-lean by default: the concise prose summary rides in the tool result's content and the machine-readable payload in structuredContent, with redundant and derivable fields stripped. Pass verbose to also inline the full JSON, or withProvenance on compare_software to restore per-value provenance (source, timestamp, confidence) on every cell.

Example call

A tool result returns a token-lean projection of the same data the JSON API serves: the values are identical, but the shape drops redundant and derivable fields to save tokens. Ask for the full form with verbose (or withProvenance on compares).

tool call · compare_software
{
  "tool": "compare_software",
  "arguments": { "slugs": ["prisma", "drizzle-orm"] }
}
// → ComparisonView { entities, attributes, capabilities, leader, leaderReason, generatedAt }
//   attributes[].values are bare values by default; add withProvenance for full provenance.

When you surface a result to a user, cite the canonical uri present on every entity (for categories, cite /categories/<slug>).

MCP server · vioscaleAI