UNPKG

@toriihq/torii-mcp

Version:

Model Context Protocol server for Torii API

43 lines 2.02 kB
import { z } from "zod"; import { makeApiRequest } from "./api.js"; // API Functions for Users export async function getUsers(params) { const queryParams = params ? `?${new URLSearchParams(params).toString()}` : ''; return makeApiRequest(`/users${queryParams}`); } export async function getUserById(idUser, params) { const queryParams = params ? `?${new URLSearchParams(params).toString()}` : ''; return makeApiRequest(`/users/${idUser}${queryParams}`); } // Register Users tools with the MCP server export function registerUsersTools(server) { // List Users Tool server.tool("list_users", "List all users in the organization", { email: z.string().email().optional().describe("Filter by email address"), firstName: z.string().optional().describe("Filter by first name"), lastName: z.string().optional().describe("Filter by last name"), lifecycleStatus: z.enum(["active", "offboarding", "offboarded"]).optional().describe("Filter by lifecycle status"), isExternal: z.boolean().optional().describe("Filter by external status"), size: z.number().min(1).max(100).default(10).optional().describe("Max results to return (default: 10)"), cursor: z.string().optional().describe("Pagination cursor") }, async (params) => { const users = await getUsers(params); return { content: [{ type: "text", text: JSON.stringify(users, null, 2) }], }; }); // Get User Tool server.tool("get_user", "Get details of a specific user by ID", { id: z.string().describe("Unique user identifier"), fields: z.string().optional().describe("Comma-separated list of fields to return") }, async ({ id, fields }) => { const params = {}; if (fields) params.fields = fields; const user = await getUserById(id, params); return { content: [{ type: "text", text: JSON.stringify(user, null, 2) }], }; }); } //# sourceMappingURL=users.js.map