@toriihq/torii-mcp
Version:
Model Context Protocol server for Torii API
43 lines • 2.02 kB
JavaScript
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