MCP tools
Every public Garasu MCP tool, when to call it, and what it returns.
List the projects already in Garasu, then read or search the learnings and experiments stored on one. import_experiment stores a concluded test and starts a learning in the background. is_dupe_experiment checks a proposed spec against experiments already run. remove_experiment undoes one of those imports. Learnings include the project's last_synced_at and sync_status. Wait and list or search again while sync_status is syncing. query_learnings and query_experiments return the closest semantic matches, not the full catalog. Update a project's name, url, or description when they change. Projects themselves are created in the Garasu app.
Each tool name is its operation id. Open a tool for the fields, the function schema, and a sample request and response.
Projects
List, read, and update projects.
| Tool | When to use | Returns |
|---|---|---|
list_projects | You need a project_id, or you want to see what already exists. | { projects: [{ id, title, description, domain, experiment_count, learning_count, last_synced_at, sync_status, created_at, updated_at, source_url }] } |
get_project | You have a project id and need its details or counts. | { project: { id, title, description, domain, experiment_count, learning_count, last_synced_at, sync_status, created_at, updated_at, source_url } } |
update_project | The project exists and the user wants to rename it or change its url. | { project: { id, title, description, domain, experiment_count, learning_count, last_synced_at, sync_status, created_at, updated_at, source_url } } |
Learnings
Search and inspect a project's learnings.
| Tool | When to use | Returns |
|---|---|---|
list_learnings | You need the learnings in a project, or the next page of that list. | { learnings: [{ id, project_id, title, category, summary, strength_of_evidence, related_experiments, last_synced_at, sync_status, created_at, updated_at, source_url }], nextCursor } |
get_learning | You have a learning_id and need its title, summary, evidence, related experiments, or sync status. | { id, project_id, title, category, summary, strength_of_evidence, related_experiments, last_synced_at, sync_status, created_at, updated_at, source_url } |
query_learnings | You need existing learnings related to a question, hypothesis, or idea in this project. | { learnings: [{ id, project_id, title, category, summary, strength_of_evidence, similarity, related_experiments, last_synced_at, sync_status, created_at, updated_at, source_url }] } |
Experiments
Import, check, remove, list, read, and search a project's experiments.
| Tool | When to use | Returns |
|---|---|---|
import_experiment | You have a concluded test with results and want it stored on a project. Skip drafts and tests that are still running. | { experiment_id, experiment } |
remove_experiment | An import_experiment call stored the wrong experiment and you need to remove it. Not for clearing a project. | { experiment_id, removed_learning_ids } |
list_experiments | You need the experiments in a project, or the next page of that list. | { experiments: [{ id, project_id, name, hypothesis, start_date, end_date, variant_keys, control_variant_key, metadata, headline, processed_results, related_learning_ids, related_learnings, created_at, updated_at, source_url }], nextCursor } |
query_experiments | You need experiments in this project related to a question or hypothesis. This is a search, not a full catalog, and it has no cursor. | { experiments: [{ id, project_id, name, hypothesis, start_date, end_date, variant_keys, control_variant_key, metadata, headline, processed_results, related_learning_ids, related_learnings, similarity, created_at, updated_at, source_url }] } |
is_dupe_experiment | You have a new experiment spec and need to know if this project already ran it. An empty list means it has not been run. | { experiments: [{ id, project_id, name, hypothesis, start_date, end_date, variant_keys, control_variant_key, metadata, headline, processed_results, related_learning_ids, related_learnings, similarity, created_at, updated_at, source_url }] } |
get_experiment | You have an experiment_id and need the saved experiment, including raw results. | { id, project_id, name, hypothesis, start_date, end_date, variant_keys, control_variant_key, metadata, headline, processed_results, related_learning_ids, related_learnings, raw_results, created_at, updated_at, source_url } |