MCP tools
askround mcp serves these tools over stdio. They run the command line in-process, so every
refusal holds for an agent too. The schemas below are the package’s own; the server writes
them for the machine and project it runs in, listing only the providers with a key, the
product files it finds, and the person’s budget beside max_cost.
What each response costs an agent is measured on recorded rounds and held to a budget per tool: the brief of a whole round is about 300 tokens.
The tools
Section titled “The tools”askround_ask
Ask one question to several AI assistants (OpenAI, Gemini, Anthropic, Perplexity) with web search, each several times, and read what they recommend. Returns a brief of a few hundred tokens: for each product the runs naming it and its best position per provider, its top claims and the rivals, each fact with the ids of the answers it came from ('openai#2'). Read an answer, or the passage behind a fact, with askround_answer; detail: true returns the full report instead. Refused before any call if the question names a product it tests, carries personal data, or is estimated above max_cost.
| Argument | Type | What it is |
|---|---|---|
question (required) | string | the question, as a person would ask it |
products | array of string | products to report on, each 'Name,alias,domain' |
providers | array of openai | gemini | anthropic | perplexity | only these providers (default: every one with a key) |
runs | integer | runs per provider (default 3) |
extract | boolean | read recommendations and claims with a model (one call per answer) |
locales | array of string | e.g. ['BR:pt-BR'] |
search | boolean | web search (default true) |
max_cost | number | refuse, before any call, a run estimated above this (USD) |
detail | boolean | the full report, not the brief |
fresh | boolean | ask again even if the same round was asked within the day; by default a recent one is returned at no cost |
background | boolean | start it as a job and return at once (a round takes minutes); read it with askround_job |
askround_answer
One answer from a round already asked, by the id a brief gives ('openai#2'): its full text and sources, or with `around` only the passage around that quote - the cheap way to check a fact.
| Argument | Type | What it is |
|---|---|---|
round (required) | string | the round's directory, as the brief's 'round' gives it |
answer | string | the answer's id, e.g. 'openai#2' or 'openai@BR#2' |
around | string | a quote: return only the passage around it |
provider | string | |
run | integer | |
locale | string | when the round was asked in several locales |
askround_run
Ask every question of a product file (a prompt set) and return a brief per question: the runs naming the product and its best position per provider, its claims, the rivals, each fact with its answers' ids. detail: true returns every question's full report instead.
| Argument | Type | What it is |
|---|---|---|
file (required) | string | the product file (TOML) |
providers | array of openai | gemini | anthropic | perplexity | only these providers (default: every one with a key) |
runs | integer | |
extract | boolean | |
max_cost | number | refuse, before any call, a run estimated above this (USD) |
detail | boolean | every question's full report |
background | boolean | start it as a job and return at once; read it with askround_job |
askround_job
A round or prompt set started with background: true - running (with how many answers are in), done (with its brief or report), refused, failed, or interrupted (with the answers it finished, which are kept).
| Argument | Type | What it is |
|---|---|---|
job (required) | string | the id the start returned |
askround_research
Ask a research question to every assistant with web search and merge the answers: the claims they make, how many providers support each, each provider's passage, and the sources they cited with primary ones (repositories, licence texts, papers, official docs) first. Support is agreement among assistants, not proof.
| Argument | Type | What it is |
|---|---|---|
question (required) | string | |
providers | array of openai | gemini | anthropic | perplexity | only these providers (default: every one with a key) |
runs | integer | default 1 |
max_cost | number | refuse, before any call, a run estimated above this (USD) |
askround_report
The report of a stored round or prompt set (default: the latest).
| Argument | Type | What it is |
|---|---|---|
round | string | a round's or set's directory |
askround_diff
What changed between two runs of the same questions (default: the latest two): share and rank, rivals, cited pages, claims.
| Argument | Type | What it is |
|---|---|---|
old | string | |
new | string | |
product | string |
askround_doctor
Which providers can run here: the key variable each reads (never its value), the model and the search tool. Makes a free check call to each.
No arguments.