Skip to main content
Glama

Write SwOS Blob

write_swos_blob
DestructiveIdempotent

Update MikroTik SwOS switch endpoints by merging new field values into the full configuration blob and writing it back. Use dryRun to preview first, and rollback if needed.

Instructions

Mutate a SwOS '.b' endpoint on a MikroTik switch. The full endpoint blob is read, the given fields are merged in, and the entire blob is written back (the firmware only accepts whole-blob writes); untouched fields are re-sent byte-for-byte, and a field this firmware does not expose is refused rather than injected. dryRun defaults to true — preview first. Every result reports whether the schema has been verified against the switch's firmware. The pre-write blob is snapshotted, so the change can be undone with rollback_change. Returns no_change when the values already match.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dryRunNoPreview the resulting blob without writing to the switch.
fieldsYesValues to set, keyed by decoded field name (from list_swos_endpoints) or by a raw wire key already present in the blob — anything else is rejected. Option fields take the enum name (e.g. 'auto'); text becomes a UTF-8 hex string; numbers and '0x...' strings are written as hex, padded to the width of the value they replace. A per-port field given a single value applies it to EVERY port.
endpointYes'.b' endpoint to write
routerIdNoRouter ID; omit to use the default router.
confirmationTokenNoToken from a prior APPROVAL_REQUIRED response. Re-submit the identical call with this token to confirm the destructive action.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true, and the description goes far beyond that: it discloses the read-merge-write pattern, rejection of unexposed fields, snapshotting for rollback, dryRun default, and schema verification. It also specifies the no_change result. This enriches the behavioral model significantly and matches the annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place. It opens with a clear purpose, then explains the write mechanism, safety features (dryRun, snapshot), and edge cases (no_change). It is well-structured and front-loaded, with no filler or redundant statements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, nested object, destructive action, rollback integration), the description covers all necessary aspects: usage, safety, field value encoding, and result semantics. Although there is no output schema, the description explicitly mentions return states (no_change) and schema verification. The description is fully self-sufficient for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100%, the description adds crucial semantics for the 'fields' parameter: how enum options are encoded, hex padding, per-port default application, and the rule for unrecognized keys. It also clarifies the dryRun default and the confirmationToken flow. These details are not present in the schema and are essential for correct usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Mutate') and resource ('SwOS '.b' endpoint'), and it distinguishes itself from read-only siblings like get_swos_endpoint and list_swos_endpoints by emphasizing the write-back behavior. It also explains the whole-blob write mechanism, which is unique to this tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it previews by default (dryRun), snapshots for rollback, and returns no_change. It implies when to use it (for mutations) and mentions related tools (rollback_change), but it does not explicitly state exclusions or contrast with alternative tools like get_swos_endpoint for reading. The guidance is evident but could be more explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AliKarami/MikroMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server