AI automation platform (n8n/Zapier alternative): build, schedule and run workflows from your agent.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer wak_... API key. Create one at https://webarm24.online (MCP button). Free credits on signup.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Your account incl. credit balance.
This tool takes no arguments.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http webarm24 https://webarm24.online/mcp \ --header 'Authorization: Bearer YOUR_TOKEN'
Headers
Authorization (required): Bearer wak_... API key. Create one at https://webarm24.online (MCP button). Free credits on signup.Your account incl. credit balance.
No arguments.
{
"type": "object",
"title": "account_meArguments",
"properties": {}
}Job status/result (queued|running|completed|failed).
| Argument | Type | Description |
|---|---|---|
| job_id* | string | |
| structured_data_only | boolean |
{
"type": "object",
"title": "agent_job_getArguments",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"title": "Job Id"
},
"structured_data_only": {
"type": "boolean",
"title": "Structured Data Only",
"default": false
}
}
}Recent agent jobs.
| Argument | Type | Description |
|---|---|---|
| limit | integer |
{
"type": "object",
"title": "agent_job_listArguments",
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 20
}
}
}Run the browsing agent on a task (async; costs agent_job credits). Jobs are in-memory (lost on restart).
| Argument | Type | Description |
|---|---|---|
| lang | string | |
| text* | string | |
| variables | any | |
| target_url | string | |
| output_json_schema | any |
{
"type": "object",
"title": "agent_job_submitArguments",
"required": [
"text"
],
"properties": {
"lang": {
"type": "string",
"title": "Lang",
"default": "en"
},
"text": {
"type": "string",
"title": "Text"
},
"variables": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Variables",
"default": null
},
"target_url": {
"type": "string",
"title": "Target Url",
"default": "__agent__"
},
"output_json_schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Output Json Schema",
"default": null
}
}
}Inspect large JSON: mode summary|schema|value|preview, optional dotted path. Costs 1 mcp_call.
| Argument | Type | Description |
|---|---|---|
| mode | string | |
| path | string | |
| json_text* | string |
{
"type": "object",
"title": "analyze_jsonArguments",
"required": [
"json_text"
],
"properties": {
"mode": {
"type": "string",
"title": "Mode",
"default": "summary"
},
"path": {
"type": "string",
"title": "Path",
"default": ""
},
"json_text": {
"type": "string",
"title": "Json Text"
}
}
}Click an element by visible text, label or CSS selector. Costs 1 mcp_call.
| Argument | Type | Description |
|---|---|---|
| session | string | |
| description* | string |
{
"type": "object",
"title": "browser_clickArguments",
"required": [
"description"
],
"properties": {
"session": {
"type": "string",
"title": "Session",
"default": "default"
},
"description": {
"type": "string",
"title": "Description"
}
}
}Click at pixel coordinates of the (resized) viewport. Costs 1 mcp_call.
| Argument | Type | Description |
|---|---|---|
| x* | integer | |
| y* | integer | |
| session | string |
{
"type": "object",
"title": "browser_click_atArguments",
"required": [
"x",
"y"
],
"properties": {
"x": {
"type": "integer",
"title": "X"
},
"y": {
"type": "integer",
"title": "Y"
},
"session": {
"type": "string",
"title": "Session",
"default": "default"
}
}
}Close your browser session (free). Idle sessions are closed after 30 minutes.
| Argument | Type | Description |
|---|---|---|
| session | string |
{
"type": "object",
"title": "browser_close_sessionArguments",
"properties": {
"session": {
"type": "string",
"title": "Session",
"default": "default"
}
}
}Extract text from a described area of the page. Costs 1 mcp_call.
| Argument | Type | Description |
|---|---|---|
| session | string | |
| area_description* | string |
{
"type": "object",
"title": "browser_extract_textArguments",
"required": [
"area_description"
],
"properties": {
"session": {
"type": "string",
"title": "Session",
"default": "default"
},
"area_description": {
"type": "string",
"title": "Area Description"
}
}
}Type a value into an input identified by label/placeholder/selector. Costs 1 mcp_call.
| Argument | Type | Description |
|---|---|---|
| value* | string | |
| session | string | |
| field_description* | string |
{
"type": "object",
"title": "browser_fillArguments",
"required": [
"field_description",
"value"
],
"properties": {
"value": {
"type": "string",
"title": "Value"
},
"session": {
"type": "string",
"title": "Session",
"default": "default"
},
"field_description": {
"type": "string",
"title": "Field Description"
}
}
}Return the current page HTML. Costs 1 mcp_call.
| Argument | Type | Description |
|---|---|---|
| session | string |
{
"type": "object",
"title": "browser_get_htmlArguments",
"properties": {
"session": {
"type": "string",
"title": "Session",
"default": "default"
}
}
}Open a URL in your private server-side browser session. `browser_session_label` loads a saved login (see browser_session_put) when the session is first created. Costs 1 mcp_call.
| Argument | Type | Description |
|---|---|---|
| url* | string | |
| session | string | |
| browser_session_label | any |
{
"type": "object",
"title": "browser_navigateArguments",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"title": "Url"
},
"session": {
"type": "string",
"title": "Session",
"default": "default"
},
"browser_session_label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Browser Session Label",
"default": null
}
}
}Screenshot of the current page (JPEG). Costs 1 mcp_call.
| Argument | Type | Description |
|---|---|---|
| session | string |
{
"type": "object",
"title": "browser_screenshotArguments",
"properties": {
"session": {
"type": "string",
"title": "Session",
"default": "default"
}
}
}Scroll 'up' or 'down'. Costs 1 mcp_call.
| Argument | Type | Description |
|---|---|---|
| amount | integer | |
| session | string | |
| direction | string |
{
"type": "object",
"title": "browser_scrollArguments",
"properties": {
"amount": {
"type": "integer",
"title": "Amount",
"default": 600
},
"session": {
"type": "string",
"title": "Session",
"default": "default"
},
"direction": {
"type": "string",
"title": "Direction",
"default": "down"
}
}
}Delete a saved login.
| Argument | Type | Description |
|---|---|---|
| label* | string |
{
"type": "object",
"title": "browser_session_deleteArguments",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"title": "Label"
}
}
}Get a saved storageState.
| Argument | Type | Description |
|---|---|---|
| label* | string |
{
"type": "object",
"title": "browser_session_getArguments",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"title": "Label"
}
}
}List saved logins (Playwright storageState slots).
No arguments.
{
"type": "object",
"title": "browser_session_listArguments",
"properties": {}
}Save a Playwright storageState (stored encrypted).
| Argument | Type | Description |
|---|---|---|
| label* | string | |
| storage_state* | object |
{
"type": "object",
"title": "browser_session_putArguments",
"required": [
"label",
"storage_state"
],
"properties": {
"label": {
"type": "string",
"title": "Label"
},
"storage_state": {
"type": "object",
"title": "Storage State",
"additionalProperties": true
}
}
}Purchasable credit packs.
No arguments.
{
"type": "object",
"title": "credit_packsArguments",
"properties": {}
}Create a Stripe Checkout URL for a pack; a human must open it to pay.
| Argument | Type | Description |
|---|---|---|
| credits_amount* | integer |
{
"type": "object",
"title": "credits_checkout_urlArguments",
"required": [
"credits_amount"
],
"properties": {
"credits_amount": {
"type": "integer",
"title": "Credits Amount"
}
}
}Balance and last 100 ledger entries.
No arguments.
{
"type": "object",
"title": "credits_historyArguments",
"properties": {}
}Ask the built-in AI pipeline builder (costs builder_call credits). `messages`=[{role,content}], `pipeline`=current draft. Returns {text, pipeline}; the draft is NOT saved — pass it to pipeline_create/update.
| Argument | Type | Description |
|---|---|---|
| messages* | array | |
| pipeline* | object | |
| builder_context | any |
{
"type": "object",
"title": "pipeline_builder_chatArguments",
"required": [
"messages",
"pipeline"
],
"properties": {
"messages": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"title": "Messages"
},
"pipeline": {
"type": "object",
"title": "Pipeline",
"additionalProperties": true
},
"builder_context": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Builder Context",
"default": null
}
}
}Create a pipeline. See resource webarm://docs/pipeline-steps for the step schema. `extra` may carry webhook_url, webhook_secret, webhook_structured_data_only, inbound_trigger_only.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| extra | any | |
| steps* | array | |
| run_at | any | |
| enabled | boolean | |
| cron_expr | string | |
| task_variables | any |
{
"type": "object",
"title": "pipeline_createArguments",
"required": [
"name",
"steps"
],
"properties": {
"name": {
"type": "string",
"title": "Name"
},
"extra": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Extra",
"default": null
},
"steps": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"title": "Steps"
},
"run_at": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Run At",
"default": null
},
"enabled": {
"type": "boolean",
"title": "Enabled",
"default": true
},
"cron_expr": {
"type": "string",
"title": "Cron Expr",
"default": ""
},
"task_variables": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Task Variables",
"default": null
}
}
}Ask the AI to analyse a finished run (costs builder_call credits).
| Argument | Type | Description |
|---|---|---|
| run_id* | string | |
| question* | string | |
| pipeline_id* | string |
{
"type": "object",
"title": "pipeline_debug_chatArguments",
"required": [
"pipeline_id",
"run_id",
"question"
],
"properties": {
"run_id": {
"type": "string",
"title": "Run Id"
},
"question": {
"type": "string",
"title": "Question"
},
"pipeline_id": {
"type": "string",
"title": "Pipeline Id"
}
}
}Delete a pipeline and its schedule (restorable later via pipeline_deleted_restore).
| Argument | Type | Description |
|---|---|---|
| pipeline_id* | string |
{
"type": "object",
"title": "pipeline_deleteArguments",
"required": [
"pipeline_id"
],
"properties": {
"pipeline_id": {
"type": "string",
"title": "Pipeline Id"
}
}
}Deleted pipelines that can be restored: [{pipeline_id, name, steps_count, deleted_at, source}].
No arguments.
{
"type": "object",
"title": "pipeline_deleted_listArguments",
"properties": {}
}Re-create a deleted pipeline from its last snapshot (same id, starts disabled, new inbound trigger URL).
| Argument | Type | Description |
|---|---|---|
| pipeline_id* | string |
{
"type": "object",
"title": "pipeline_deleted_restoreArguments",
"required": [
"pipeline_id"
],
"properties": {
"pipeline_id": {
"type": "string",
"title": "Pipeline Id"
}
}
}Get one pipeline incl. steps, schedule and inbound trigger URL.
| Argument | Type | Description |
|---|---|---|
| pipeline_id* | string |
{
"type": "object",
"title": "pipeline_getArguments",
"required": [
"pipeline_id"
],
"properties": {
"pipeline_id": {
"type": "string",
"title": "Pipeline Id"
}
}
}Move a pipeline into a group; omit group_id (or pass null) to remove it from its group.
| Argument | Type | Description |
|---|---|---|
| group_id | any | |
| pipeline_id* | string |
{
"type": "object",
"title": "pipeline_group_assignArguments",
"required": [
"pipeline_id"
],
"properties": {
"group_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Group Id",
"default": null
},
"pipeline_id": {
"type": "string",
"title": "Pipeline Id"
}
}
}Create a sidebar group, optionally moving the given pipelines into it.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| pipeline_ids | any |
{
"type": "object",
"title": "pipeline_group_createArguments",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"title": "Name"
},
"pipeline_ids": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Pipeline Ids",
"default": null
}
}
}Delete a group. Its pipelines are kept, just ungrouped.
| Argument | Type | Description |
|---|---|---|
| group_id* | string |
{
"type": "object",
"title": "pipeline_group_deleteArguments",
"required": [
"group_id"
],
"properties": {
"group_id": {
"type": "string",
"title": "Group Id"
}
}
}List your sidebar pipeline groups, each with its pipeline_ids. Ungrouped pipelines are in no group.
No arguments.
{
"type": "object",
"title": "pipeline_group_listArguments",
"properties": {}
}Rename a group and/or set whether it is collapsed in the sidebar.
| Argument | Type | Description |
|---|---|---|
| name | any | |
| group_id* | string | |
| collapsed | any |
{
"type": "object",
"title": "pipeline_group_updateArguments",
"required": [
"group_id"
],
"properties": {
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Name",
"default": null
},
"group_id": {
"type": "string",
"title": "Group Id"
},
"collapsed": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Collapsed",
"default": null
}
}
}One revision: {revision, snapshot (full pipeline state after that change), diff (vs previous revision)}.
| Argument | Type | Description |
|---|---|---|
| pipeline_id* | string | |
| revision_id* | string |
{
"type": "object",
"title": "pipeline_history_getArguments",
"required": [
"pipeline_id",
"revision_id"
],
"properties": {
"pipeline_id": {
"type": "string",
"title": "Pipeline Id"
},
"revision_id": {
"type": "string",
"title": "Revision Id"
}
}
}Change history of a pipeline, newest first: [{id, seq, action (create|update|delete|restore), source (manual|assistant|mcp|api), source_detail, changed_fields, created_at, updated_at}]. Consecutive manual UI edits within a few minutes are merged into one revision. Page with `before_seq`.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| before_seq | any | |
| pipeline_id* | string |
{
"type": "object",
"title": "pipeline_history_listArguments",
"required": [
"pipeline_id"
],
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 30
},
"before_seq": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Before Seq",
"default": null
},
"pipeline_id": {
"type": "string",
"title": "Pipeline Id"
}
}
}Restore a pipeline to the state of a revision (recorded as a new `restore` revision). Returns the pipeline.
| Argument | Type | Description |
|---|---|---|
| pipeline_id* | string | |
| revision_id* | string |
{
"type": "object",
"title": "pipeline_history_restoreArguments",
"required": [
"pipeline_id",
"revision_id"
],
"properties": {
"pipeline_id": {
"type": "string",
"title": "Pipeline Id"
},
"revision_id": {
"type": "string",
"title": "Revision Id"
}
}
}List your pipelines.
No arguments.
{
"type": "object",
"title": "pipeline_listArguments",
"properties": {}
}Start a run (async; returns run_id). Costs the usual pipeline_run credits. Follow with pipeline_run_wait or pipeline_run_get.
| Argument | Type | Description |
|---|---|---|
| variables | any | |
| skip_steps | any | |
| pipeline_id* | string | |
| initial_step_outputs | any |
{
"type": "object",
"title": "pipeline_runArguments",
"required": [
"pipeline_id"
],
"properties": {
"variables": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Variables",
"default": null
},
"skip_steps": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"title": "Skip Steps",
"default": null
},
"pipeline_id": {
"type": "string",
"title": "Pipeline Id"
},
"initial_step_outputs": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Initial Step Outputs",
"default": null
}
}
}Request cancellation of an active run (takes effect between steps).
| Argument | Type | Description |
|---|---|---|
| run_id* | string | |
| pipeline_id* | string |
{
"type": "object",
"title": "pipeline_run_cancelArguments",
"required": [
"pipeline_id",
"run_id"
],
"properties": {
"run_id": {
"type": "string",
"title": "Run Id"
},
"pipeline_id": {
"type": "string",
"title": "Pipeline Id"
}
}
}Run status (running|cancelling|ok|error|cancelled), current_step_index, per-step results, answer_preview.
| Argument | Type | Description |
|---|---|---|
| run_id* | string | |
| pipeline_id* | string |
{
"type": "object",
"title": "pipeline_run_getArguments",
"required": [
"pipeline_id",
"run_id"
],
"properties": {
"run_id": {
"type": "string",
"title": "Run Id"
},
"pipeline_id": {
"type": "string",
"title": "Pipeline Id"
}
}
}Block until the run finishes or timeout_sec (max 600) elapses; returns the latest run state (check `status` — still 'running' means timed out).
| Argument | Type | Description |
|---|---|---|
| run_id* | string | |
| pipeline_id* | string | |
| timeout_sec | integer |
{
"type": "object",
"title": "pipeline_run_waitArguments",
"required": [
"pipeline_id",
"run_id"
],
"properties": {
"run_id": {
"type": "string",
"title": "Run Id"
},
"pipeline_id": {
"type": "string",
"title": "Pipeline Id"
},
"timeout_sec": {
"type": "integer",
"title": "Timeout Sec",
"default": 120
}
}
}Recent runs of a pipeline (max 50).
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| pipeline_id* | string |
{
"type": "object",
"title": "pipeline_runs_listArguments",
"required": [
"pipeline_id"
],
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 10
},
"pipeline_id": {
"type": "string",
"title": "Pipeline Id"
}
}
}Run a single step in isolation. `previous_outputs[i]` feeds {{step_{i+1}_output}}.
| Argument | Type | Description |
|---|---|---|
| step* | object | |
| previous_outputs | any | |
| pipeline_variables | any |
{
"type": "object",
"title": "pipeline_test_stepArguments",
"required": [
"step"
],
"properties": {
"step": {
"type": "object",
"title": "Step",
"additionalProperties": true
},
"previous_outputs": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Previous Outputs",
"default": null
},
"pipeline_variables": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Pipeline Variables",
"default": null
}
}
}Patch a pipeline. `fields` may contain any of: name, enabled, cron_expr, run_at (null clears), steps, task_variables, webhook_url, webhook_secret, clear_webhook_secret, webhook_structured_data_only, inbound_trigger_only, regenerate_trigger_token. `steps` replaces the whole step list.
| Argument | Type | Description |
|---|---|---|
| fields* | object | |
| pipeline_id* | string |
{
"type": "object",
"title": "pipeline_updateArguments",
"required": [
"pipeline_id",
"fields"
],
"properties": {
"fields": {
"type": "object",
"title": "Fields",
"additionalProperties": true
},
"pipeline_id": {
"type": "string",
"title": "Pipeline Id"
}
}
}Create an automation. `schedule` follows ScheduleCreate: mode (agent|replay), task_text, target_url, webhook_url, cron_expr, run_at, lang, output_json_schema, task_variables, ...
| Argument | Type | Description |
|---|---|---|
| schedule* | object |
{
"type": "object",
"title": "schedule_createArguments",
"required": [
"schedule"
],
"properties": {
"schedule": {
"type": "object",
"title": "Schedule",
"additionalProperties": true
}
}
}Delete an automation.
| Argument | Type | Description |
|---|---|---|
| schedule_id* | string |
{
"type": "object",
"title": "schedule_deleteArguments",
"required": [
"schedule_id"
],
"properties": {
"schedule_id": {
"type": "string",
"title": "Schedule Id"
}
}
}Export an automation as portable JSON.
| Argument | Type | Description |
|---|---|---|
| schedule_id* | string |
{
"type": "object",
"title": "schedule_exportArguments",
"required": [
"schedule_id"
],
"properties": {
"schedule_id": {
"type": "string",
"title": "Schedule Id"
}
}
}Automation details plus recent runs.
| Argument | Type | Description |
|---|---|---|
| schedule_id* | string |
{
"type": "object",
"title": "schedule_getArguments",
"required": [
"schedule_id"
],
"properties": {
"schedule_id": {
"type": "string",
"title": "Schedule Id"
}
}
}Import an exported automation.
| Argument | Type | Description |
|---|---|---|
| document* | object |
{
"type": "object",
"title": "schedule_importArguments",
"required": [
"document"
],
"properties": {
"document": {
"type": "object",
"title": "Document",
"additionalProperties": true
}
}
}List automations (single-task schedules).
No arguments.
{
"type": "object",
"title": "schedule_listArguments",
"properties": {}
}Run an automation now (synchronous; costs schedule_run credits).
| Argument | Type | Description |
|---|---|---|
| variables | any | |
| schedule_id* | string |
{
"type": "object",
"title": "schedule_runArguments",
"required": [
"schedule_id"
],
"properties": {
"variables": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Variables",
"default": null
},
"schedule_id": {
"type": "string",
"title": "Schedule Id"
}
}
}Patch an automation (ScheduleUpdate fields).
| Argument | Type | Description |
|---|---|---|
| fields* | object | |
| schedule_id* | string |
{
"type": "object",
"title": "schedule_updateArguments",
"required": [
"schedule_id",
"fields"
],
"properties": {
"fields": {
"type": "object",
"title": "Fields",
"additionalProperties": true
},
"schedule_id": {
"type": "string",
"title": "Schedule Id"
}
}
}Send an email through the server SMTP (subject to server allowlists/limits). Costs 1 mcp_call.
| Argument | Type | Description |
|---|---|---|
| to* | string | |
| body* | string | |
| is_html | boolean | |
| subject* | string |
{
"type": "object",
"title": "send_emailArguments",
"required": [
"to",
"subject",
"body"
],
"properties": {
"to": {
"type": "string",
"title": "To"
},
"body": {
"type": "string",
"title": "Body"
},
"is_html": {
"type": "boolean",
"title": "Is Html",
"default": false
},
"subject": {
"type": "string",
"title": "Subject"
}
}
}Delete a store.
| Argument | Type | Description |
|---|---|---|
| name* | string |
{
"type": "object",
"title": "storage_deleteArguments",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"title": "Name"
}
}
}Delete a stored file.
| Argument | Type | Description |
|---|---|---|
| name* | string |
{
"type": "object",
"title": "storage_file_deleteArguments",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"title": "Name"
}
}
}Download a file as base64 (limited to 8 MiB of base64).
| Argument | Type | Description |
|---|---|---|
| name* | string |
{
"type": "object",
"title": "storage_file_getArguments",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"title": "Name"
}
}
}Upload a file (base64 content). Size caps: USER_FILES_FILE_MAX_BYTES / per-user total.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| content_base64* | string |
{
"type": "object",
"title": "storage_file_putArguments",
"required": [
"name",
"content_base64"
],
"properties": {
"name": {
"type": "string",
"title": "Name"
},
"content_base64": {
"type": "string",
"title": "Content Base64"
}
}
}List stored files.
| Argument | Type | Description |
|---|---|---|
| prefix | string |
{
"type": "object",
"title": "storage_files_listArguments",
"properties": {
"prefix": {
"type": "string",
"title": "Prefix",
"default": ""
}
}
}List your JSON/text stores.
No arguments.
{
"type": "object",
"title": "storage_listArguments",
"properties": {}
}Read a store.
| Argument | Type | Description |
|---|---|---|
| name* | string |
{
"type": "object",
"title": "storage_readArguments",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"title": "Name"
}
}
}Write a store (mode 'auto' keeps JSON, 'text' stores a string).
| Argument | Type | Description |
|---|---|---|
| mode | string | |
| name* | string | |
| value* | any |
{
"type": "object",
"title": "storage_writeArguments",
"required": [
"name",
"value"
],
"properties": {
"mode": {
"type": "string",
"title": "Mode",
"default": "auto"
},
"name": {
"type": "string",
"title": "Name"
},
"value": {
"title": "Value"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 2, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.