Skip to main content
Glama

Update user

marzban_users_update

Partially update a Marzban user's settings by providing only the fields to change—expiration, data limit, proxies, or inbounds—while leaving all other values as-is.

Instructions

Partially updates a user — only fields you provide are changed, everything else is left as-is. For status changes prefer marzban_users_activate/deactivate/hold (clearer intent, no need to know the raw status enum). For renewing an expiring/expired user prefer marzban_users_extend.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNo
expireNoe.g. "30d" or an absolute date. 0 means unlimited.
proxiesNoProtocol name -> settings, e.g. {"vless": {"id": "<uuid>"}}. Omit to leave unchanged (update) or use server defaults (create).
inboundsNoProtocol name -> inbound tags to restrict this user to. Omit for all inbounds.
usernameYes
dataLimitNoe.g. "10GB". 0 means unlimited.
dataLimitResetStrategyNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNo
adminNo
linksNo
expireNo
statusYes
proxiesYes
inboundsNo
usernameYes
next_planNo
online_atNo
created_atYes
data_limitNodata_limit can be 0 or greater
used_trafficYes
sub_updated_atNo
on_hold_timeoutNo
subscription_urlNo
excluded_inboundsNo
auto_delete_in_daysNo
sub_last_user_agentNo
lifetime_used_trafficNo
on_hold_expire_durationNo
data_limit_reset_strategyNono_reset
Install Server

TDQS

A4.4/5.0
Behavior4/5

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

The key behavior beyond the annotations is disclosed: partial update semantics — unspecified fields are left unchanged, not reset. The annotations only say readOnlyHint=false and destructiveHint=false, so this non-replace behavior is valuable. It stops short of discussing auth requirements or consequences, but the core behavioral trait is clearly covered.

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?

Two compact sentences front-load the core behavior and then concisely point to the relevant sibling tools. There is no repetition of schema information and no filler.

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

Completeness4/5

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

For a complex 7-parameter update with nested objects and an output schema, the description covers the main decision points: partial update semantics and when to use alternative tools. It does not mention create as the opposite action, but the title and opening verb make that distinction clear; an output schema covers return values.

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

Parameters3/5

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

Schema coverage is 57%, and several parameters are already described in the schema (expire, proxies, inbounds, dataLimit). The description adds the general and important rule that omitting a field leaves it unchanged, which applies to all parameters, but it does not clarify otherwise undocumented fields such as note or dataLimitResetStrategy.

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 opens with a specific verb and resource: 'Partially updates a user' and explains the PATCH-like scope ('only fields you provide are changed'). It also names sibling tools for status and renewal, making it easy to distinguish from marzban_users_activate/deactivate/hold/extend.

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

Usage Guidelines5/5

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

It gives explicit routing guidance: status changes should go to activate/deactivate/hold, and renewal should go to extend. This clearly states when not to use this tool and names the preferred alternatives, leaving no inference to the agent.

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

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/Ilmar7786/marzban-sdk'

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