--- title: "valkey" type: docs weight: 1 description: > A "valkey" tool executes a set of pre-defined Valkey commands against a Valkey instance. --- ## About A valkey tool executes a series of pre-defined Valkey commands against a Valkey instance. The specified Valkey commands are executed sequentially. Each command is represented as a string array, where the first element is the command name (e.g., SET, GET, HGETALL) and subsequent elements are its arguments. ### Dynamic Command Parameters Command arguments can be templated using the `$variableName` annotation. The array type parameters will be expanded once into multiple arguments. Take the following config for example: ```yaml commands: - [SADD, userNames, $userNames] # Array will be flattened into multiple arguments. parameters: - name: userNames type: array description: The user names to be set. ``` If the input is an array of strings `["Alice", "Sid", "Bob"]`, The final command to be executed after argument expansion will be `[SADD, userNames, Alice, Sid, Bob]`. ## Compatible Sources {{< compatible-sources >}} ## Example ```yaml kind: tool name: user_data_tool type: valkey source: my-valkey-instance description: | Use this tool to interact with user data stored in Valkey. It can set, retrieve, and delete user-specific information. commands: - [SADD, userNames, $userNames] # Array will be flattened into multiple arguments. - [GET, $userId] parameters: - name: userId type: string description: The unique identifier for the user. - name: userNames type: array description: The user names to be set. ```