users_update
Modify user account details in Remnawave VPN panels by updating username, traffic limits, expiration dates, status, and other parameters using the user's UUID.
Instructions
Update an existing Remnawave user
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | User UUID to update | |
| username | No | New username | |
| expireAt | No | New expiration date (ISO 8601) | |
| trafficLimitBytes | No | New traffic limit in bytes | |
| trafficLimitStrategy | No | Traffic reset period | |
| status | No | User status | |
| description | No | User description | |
| tag | No | User tag | |
| telegramId | No | Telegram user ID | |
| No | User email | ||
| hwidDeviceLimit | No | Max HWID devices | |
| activeInternalSquads | No | Internal squad UUIDs |
Implementation Reference
- src/tools/users.ts:115-158 (handler)The 'users_update' tool is defined as an MCP tool, which takes user parameters and delegates the update operation to 'client.updateUser'.
server.tool( 'users_update', 'Update an existing Remnawave user', { uuid: z.string().describe('User UUID to update'), username: z.string().optional().describe('New username'), expireAt: z .string() .optional() .describe('New expiration date (ISO 8601)'), trafficLimitBytes: z .number() .optional() .describe('New traffic limit in bytes'), trafficLimitStrategy: z .enum(['NO_RESET', 'DAY', 'WEEK', 'MONTH']) .optional() .describe('Traffic reset period'), status: z .enum(['ACTIVE', 'DISABLED']) .optional() .describe('User status'), description: z.string().optional().describe('User description'), tag: z.string().optional().describe('User tag'), telegramId: z.number().optional().describe('Telegram user ID'), email: z.string().optional().describe('User email'), hwidDeviceLimit: z .number() .optional() .describe('Max HWID devices'), activeInternalSquads: z .array(z.string()) .optional() .describe('Internal squad UUIDs'), }, async (params) => { try { const result = await client.updateUser(params); return toolResult(result); } catch (e) { return toolError(e); } }, );