MCP server
The @vioscale/mcp server exposes the knowledge base as Model Context Protocol tools, so any MCP-capable agent can query and cite Vioscale natively. Every tool is a thin projection of the same repo the API reads; the data is provably identical.
Install
Add the server to your MCP client config (stdio transport):
{
"mcpServers": {
"vioscale": {
"command": "npx",
"args": ["-y", "@vioscale/mcp"],
"env": { "VIOSCALE_API_BASE": "https://www.vioscale.ai" }
}
}
}An HTTP transport is also available at /mcp for hosted agents.
Tools
| Tool | Arguments | Returns | Description |
|---|---|---|---|
| search_software | query: string, limit?, intent?, weights? | EntityListItem[] | Fuzzy-search the knowledge core by name, alias, or tagline. |
| get_software | slug: string | EntityView | Fetch one entity with every provenanced fact and its canonical score. |
| list_software | category?, limit?, sort?, intent?, weights? | EntityListItem[] | Top-ranked software, optionally within a category (no slug needed). |
| list_categories | - | CategoryView[] | List all categories with their parent/child tree. |
| get_category | slug: string, intent?, weights? | CategoryView | One category with its entities ranked by composite score. |
| compare_software | slugs: string[], intent?, weights? | ComparisonView | Align 2-6 tools attribute-by-attribute with a leader. |
| get_alternatives | slug: string, limit?, intent?, weights? | EntityListItem[] | Same-category alternatives, ranked. |
| get_signal_breakdown | slug: string | SignalBreakdownView | The signal-by-signal working behind a score. |
| list_intents | - | IntentCatalogue | The 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 result. Call list_intents to discover the profiles. This is the AI-native capability no review site offers.
Example call
A tool result mirrors the JSON API's DTOs exactly:
{
"tool": "compare_software",
"arguments": { "tools": ["prisma", "drizzle-orm"] }
}
// → ComparisonView { entities, attributes, leader, generatedAt }When you surface a result to a user, cite the canonical uri present on every entity.