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.

ToolWhen to useReturns
list_projectsYou 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_projectYou 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_projectThe 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.

ToolWhen to useReturns
list_learningsYou 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_learningYou 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_learningsYou 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.

ToolWhen to useReturns
import_experimentYou 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_experimentAn import_experiment call stored the wrong experiment and you need to remove it. Not for clearing a project.{ experiment_id, removed_learning_ids }
list_experimentsYou 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_experimentsYou 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_experimentYou 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_experimentYou 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 }