UNPKG

@apify/actors-mcp-server

Version:

Model Context Protocol Server for Apify

52 lines 2.48 kB
import { Ajv } from 'ajv'; import { z } from 'zod'; import zodToJsonSchema from 'zod-to-json-schema'; import { ApifyClient } from '../apify-client.js'; import { HelperTools } from '../const.js'; const ajv = new Ajv({ coerceTypes: 'array', strict: false }); const getUserKeyValueStoresListArgs = z.object({ offset: z.number() .describe('Number of array elements that should be skipped at the start. The default is 0.') .default(0), limit: z.number() .max(10) .describe('Maximum number of array elements to return. The default value (and maximum) is 10.') .default(10), desc: z.boolean() .describe('If true or 1 then the stores are sorted by the createdAt field in descending order. Default: sorted in ascending order.') .default(false), unnamed: z.boolean() .describe('If true or 1 then all the stores are returned. By default, only named key-value stores are returned.') .default(false), }); /** * https://docs.apify.com/api/v2/key-value-stores-get */ export const getUserKeyValueStoresList = { type: 'internal', tool: { name: HelperTools.KEY_VALUE_STORE_LIST_GET, actorFullName: HelperTools.KEY_VALUE_STORE_LIST_GET, description: 'Lists key-value stores owned by the user. ' + 'Actor runs automatically produce unnamed stores (use unnamed=true to include these). ' + 'Users can also create named stores manually. ' + 'Each store includes basic information about the store. ' + 'Results are sorted by createdAt in ascending order (use desc=true for descending). ' + 'Supports pagination with limit (max 1000) and offset parameters.', inputSchema: zodToJsonSchema(getUserKeyValueStoresListArgs), ajvValidate: ajv.compile(zodToJsonSchema(getUserKeyValueStoresListArgs)), call: async (toolArgs) => { const { args, apifyToken } = toolArgs; const parsed = getUserKeyValueStoresListArgs.parse(args); const client = new ApifyClient({ token: apifyToken }); const stores = await client.keyValueStores().list({ limit: parsed.limit, offset: parsed.offset, desc: parsed.desc, unnamed: parsed.unnamed, }); return { content: [{ type: 'text', text: JSON.stringify(stores) }] }; }, }, }; //# sourceMappingURL=key_value_store_collection.js.map