Tool reference
Every tool and action the Harumi MCP server exposes to ChatGPT and Claude, with the parameters each one takes.
Each tool covers one area of Harumi and takes an action argument that picks
what it does — the same way the CLI groups commands.
Reading and changing are split into separate tools (runs and
runs_manage, for example), so your chat app can tell them apart:
- Read tools change nothing.
- Write tools change something you can redo.
- Destructive tools can remove or overwrite something Harumi can't get
back. Your chat app asks you to confirm before it runs one.
You don't call these by name — ask in plain language and the model picks the
tool. This page is for knowing what's possible.
Most project-level tools take a project_id. You rarely need to supply one
yourself: ask for a project by name and the model looks the id up with
projects.
| Action | What it does |
|---|
show | Your Harumi id, email, and name. |
| Action | What it does |
|---|
set | Change your own profile. Pass only the fields to change: first_name, last_name, bio, avatar. |
| Action | What it does |
|---|
list | Every organization you belong to, with your role in each. |
members | The members of one organization (organization_id): name, email, role, and whether their invite is still pending. |
Creating or deleting organizations, inviting or removing people, and changing
roles are not available.
| Action | What it does |
|---|
list | Every project across your organizations, then your personal projects, each with its organization and latest run status. Pass organization_id to narrow to one organization. |
get | One project's details, looked up by name, or by project_id when several projects share a name. |
| Action | What it does |
|---|
list | A project's runs, newest first: command, time, branch, whether a person or a schedule started it, and status. |
get | One run (run_id) in full: status, kernel spec, branch, commit, start time, and duration. |
logs | A run's log — the last 200 lines by default, with a link to the full log. Pass tail_lines for more. |
outputs | A run's outputs drawn as the project's dashboard, the way Harumi shows it. Uses the latest completed run when run_id is unset. Pass dashboard (a spec path such as dashboard/costs.toml) to pick one when the project has several. |
| Action | What it does |
|---|
start | Queue a new run and return at once — it doesn't wait for the run to finish. Optional: branch (the live branch when unset), commit, command, kernel_spec. Check progress afterwards with runs → get. |
cancel | Cancel a running run (run_id). Harumi can't resume a cancelled run. Fails clearly when the run has already finished. |
Browses a project's git repository. Every action except branches takes an
optional ref (a branch, tag, or commit) and uses the live branch when it's
unset.
| Action | What it does |
|---|
ls | Every file in the repository. |
dir | One folder (path, the root when unset), with each entry's latest commit. |
branches | The branches, with the live one — the one schedules run — marked. |
commits | One page of commit history. Pass path for one file or folder, and page / per_page to page through. |
readiness | Whether the project can run, naming each check that blocks it. |
cat | One file's content (path). Content over 20,000 characters is trimmed, with a link to the file in Harumi. |
download | The repository, or one folder (path), as a zip archive. A large archive comes back as a link. |
Changes scratch branches only. It never writes to or removes the live
branch, and never promotes a branch to live.
| Action | What it does |
|---|
branch-create | Create a branch (name) from from_branch (the live branch when unset). |
branch-rm | Remove a branch (name). Harumi can't get it back. |
put | Create or update one file (path) on branch with content. Content over 20,000 characters is refused, with a link to finish the write in Harumi. |
rm | Remove one file, or one folder's files (path), from branch. |
mv | Move or rename a file or folder from from_path to to_path on branch. |
A project's files are its non-git file storage — separate from the
repository.
| Action | What it does |
|---|
ls | Every file, with its size. |
get | One file's content (path). Content over 20,000 characters is trimmed, with a link to the file in Harumi. |
| Action | What it does |
|---|
put | Upload content to path, creating or overwriting that file. Content over 20,000 characters is refused, with a link to finish the upload in Harumi. |
rm | Remove a file (path). Harumi can't get it back. |
| Action | What it does |
|---|
list | A project's data sources: name, type, and connection target — never a password or connection secret. Pass limit / offset to page through. |
get | One data source's details (name). |
query | Run one read query against a data source (name) and show the result as a table. Returns at most 100 rows; a longer result is trimmed, with a notice. |
Creating, changing, or deleting data sources is not available.
| Action | What it does |
|---|
list | A project's schedules, with their cron, branch, kernel spec, and status. |
get | One schedule (schedule_id) in full. |
| Action | What it does |
|---|
add | Create a schedule that runs on cron. Optional: start_at (ISO 8601, now when unset), git_branch (the live branch when unset), git_commit, command, kernel_spec, output_format, email_to. |
update | Change a schedule (schedule_id). Pass only the fields to change; the rest keep their current value. |
rm | Remove a schedule (schedule_id). Harumi can't get it back. |
| Action | What it does |
|---|
specs | The kernel specs a project can use: name, display name, language, and whether it needs a subscription. |
templates | The templates a new project can start from: slug, name, and description. |
| Action | What it does |
|---|
list | A project's secret names. Never a secret's value. |
| Action | What it does |
|---|
set | Set the secret name to value, overwriting a secret with the same name. |
rm | Remove a secret (name). Harumi can't get it back. |
Share links are public links to a project's dashboard.
| Action | What it does |
|---|
list | A project's share links: id, label, whether enabled, and whether a password is set. |
get | One link (link_id) in full, including its share token. Never its password. |
| Action | What it does |
|---|
add | Create a link with an optional label. Each permission — app_enabled, chat_enabled, run_history_enabled, comparisons_enabled (needs run history), run_control_enabled, io_control_enabled — is off unless set to true. |
update | Change a link (link_id). Pass only the fields to change; enabled turns the link on or off. |
rm | Remove a link. Its URL stops working, and Harumi can't get it back. |
rotate | Give a link a new share token. The old URL stops working. |
set-password | Set a password a viewer must give to open the link. |
rm-password | Remove the link's password. |
These stay out of the MCP server on purpose, because Harumi has no undo for
them. Use the platform instead:
- Deleting a project, an organization, or a data source.
- Inviting or removing people, or changing anyone's role.
- Promoting a branch to live, or writing to the live branch.
- Anything billing-related.