Skip to main content
Glama
user-api-documentation.ts9.2 kB
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { ReadResourceResult } from "@modelcontextprotocol/sdk/types.js"; export function registerUserApiDocumentation(server: McpServer): void { server.resource( "user-api-docs", "simplifier://documentation/server-businessobjects/api/User", { title: "Simplifier User API Documentation", mimeType: "text/markdown", description: "Complete reference for Simplifier.User methods available in server-side Business Objects" }, async (uri): Promise<ReadResourceResult> => { const markdownContent = `# Simplifier User API Reference The Simplifier User API provides comprehensive user management functionality within server-side Business Objects. ## Overview Access user management methods via: \`Simplifier.User.<method>\` ## Get Users ### \`Simplifier.User.getAll()\` Retrieves all users on the current Simplifier instance. - **Input**: () - **Result**: Array(object) \`\`\`javascript [{ id: Number, login: String, firstName: String, lastName: String, email: String, mobileNumber: String, salutation: String, activeFrom: String, activeTill: String, active: Boolean, blocked: Boolean, externalUser: Boolean, createdOn: String, lastLogin: String, preferredLanguage: String }] \`\`\` ### \`Simplifier.User.getById(id)\` Retrieves the user with the given ID. Also retrieves the user's roles, groups and attributes. - **Input**: (number) - **Result**: object|null \`\`\`javascript var oMyUser = Simplifier.User.getById(12); \`\`\` ### \`Simplifier.User.getByName(loginName)\` Retrieves the user with the given login name. Also retrieves the user's roles, groups and attributes. - **Input**: (string) - **Result**: object|null \`\`\`javascript var oMyUser = Simplifier.User.getByName("MyUserLoginName"); \`\`\` ### \`Simplifier.User.getCurrentUser()\` Retrieves the currently logged in user. Also retrieves the user's roles, groups and attributes. - **Input**: () - **Result**: object|null \`\`\`javascript var oCurrentUser = Simplifier.User.getCurrentUser(); \`\`\` **Response structure for getById/getByName/getCurrentUser:** \`\`\`javascript { id: Number, login: String, firstName: String, lastName: String, email: String, mobileNumber: String, salutation: String, activeFrom: String, activeTill: String, active: Boolean, blocked: Boolean, externalUser: Boolean, createdOn: String, lastLogin: String, preferredLanguage: String, attributes: [{ name: String, category: String, value: String, description: String }], roles: [{ id: String, name: String, description: String, active: Boolean }], groups: [{ id: Number, name: String, description: String }] } \`\`\` ## Create, Update and Delete Users ### \`Simplifier.User.create(data)\` Creates a new user. - **Input**: (data: object) - **Result**: object \`\`\`javascript var oNewUser = Simplifier.User.create({ login: "janedoe", firstName: "Jane", lastName: "Doe", email: "jane.doe@testmail.com", mobileNumber: "123456789", salutation: "Miss", roles: ["131702554218077DC71EBD1A569CC81025ADDE6D48F3000291192B88E2D64CA3"], groups: [1,2], attributes: [{ name: "Department", category: "Company", value: "Berlin", description: "company departments" }] }); \`\`\` **Data object structure:** \`\`\`javascript { login: String, // Required firstName: String, // Required lastName: String, // Required email: String, // Required mobileNumber: String?, // Optional salutation: String?, // Optional activeFrom: String?, // Optional activeTill: String?, // Optional active: Boolean?, // Optional blocked: Boolean?, // Optional preferredLanguage: String?, // Optional roles: [String]?, // Optional - Array of role IDs groups: [Number]?, // Optional - Array of group IDs attributes: [{ // Optional name: String, category: String, value: String, description: String? }]? } \`\`\` ### \`Simplifier.User.update(loginName, data)\` Updates the user identified by the login name. - **Input**: (loginName: string, data: object) - **Result**: object \`\`\`javascript var oUpdatedUser = Simplifier.User.update("janedoe", { firstName: "updatedFirstName", lastName: "updatedLastName", email: "updatedEmail", active: true, roles: ["15BEB553CC701C8C6488AD823E052BECD18F12969027EE286AE6F1294C8DF1E2"], groups: [2], attributes: [{ name: "Department", category: "Company", value: "Munich", description: "company departments" }] }); \`\`\` ### \`Simplifier.User.delete(id)\` Deletes a user identified by the given ID. - **Input**: (number) - **Result**: () ### \`Simplifier.User.checkLogin(login, password)\` Checks whether a user can login with the given credentials. - **Input**: (string, string) - **Result**: (boolean) ## Role and Group Management ### \`Simplifier.User.assignRole(loginOrId, roleId)\` Assigns a role to a user. - **Input**: (string|number, string) - **Result**: () \`\`\`javascript Simplifier.User.assignRole(21, "131702554218077DC71EBD1A569CC81025ADDE6D48F3000291192B88E2D64CA3"); \`\`\` ### \`Simplifier.User.unassignRole(loginOrId, roleId)\` Removes a role from a user. - **Input**: (string|number, string) - **Result**: () ### \`Simplifier.User.assignGroup(loginOrId, groupId)\` Assigns a group to a user. - **Input**: (string|number, number) - **Result**: () \`\`\`javascript Simplifier.User.assignGroup("myUserLogin", 1); \`\`\` ### \`Simplifier.User.unassignGroup(loginOrId, groupId)\` Removes a group from a user. - **Input**: (string|number, number) - **Result**: () ## Business Roles ### \`Simplifier.User.getBusinessRoles()\` Retrieves all business roles of the current logged in user. - **Input**: () - **Result**: Array(object) ### \`Simplifier.User.checkBusinessRole(projectID, roleName)\` Checks if the current user has a specific business role within a project. - **Input**: (string, string) - **Result**: (boolean) \`\`\`javascript var bHasBusinessRole = Simplifier.User.checkBusinessRole("MYPROJECT", "administrator"); \`\`\` ### \`Simplifier.User.assignBusinessRole(loginName, projectID, roleName)\` Assigns a business role to a user within a project. - **Input**: (string, string, string) - **Result**: () \`\`\`javascript Simplifier.User.assignBusinessRole("myUserLogin", "MYPROJECT", "administrator"); \`\`\` ## User Attributes ### \`Simplifier.User.getAttributes(loginOrId)\` Retrieves all attributes of a user. - **Input**: (string|number) - **Result**: Array(object) ### \`Simplifier.User.getAttribute(loginOrId, name, category)\` Retrieves a specific attribute of a user. - **Input**: (string|number, string, string) - **Result**: (object | null) \`\`\`javascript var oAttribute = Simplifier.User.getAttribute("myUserLogin", "attributeName", "attributeCategory"); \`\`\` ### \`Simplifier.User.setAttribute(loginOrId, name, category, value)\` Sets (adds or updates) an attribute of a user. - **Input**: (string|number, string, string, string) - **Result**: () ### \`Simplifier.User.deleteAttribute(loginOrId, name, category)\` Deletes an attribute of a user. - **Input**: (string|number, string, string) - **Result**: () ## Password Management ### \`Simplifier.User.resetPasswordWithEmailTemplate(loginOrId, emailData)\` Sends a password reset email with custom template. - **Input**: (string|number, object) - **Result**: () ### \`Simplifier.User.setPassword(oneTimeHash, newPassword)\` Sets a user password using a one-time hash. - **Input**: (string, string) - **Result**: () ## Supported Language Codes For \`preferredLanguage\` field: \`bg_BG, ca_ES, hr_HR, cs_CZ, da_DK, nl_NL, en_US, et_EE, fi_FI, fr_FR, de_DE, el_GR, hi_IN, hu_HU, it_IT, ja_JP, kk_KZ, ko_KR, lv_LV, lt_LT, ms_MY, mt_MT, no_NO, pl_PL, pt_PT, ro_RO, ru_RU, zh_CN, sk_SK, sl_SL, es_ES, sv_SE, th_TH, zh_TW, tr_TR, uk_UA, vi_VN\` ## Common Use Cases ### Authentication Check \`\`\`javascript var currentUser = Simplifier.User.getCurrentUser(); if (!currentUser) { output.error = "User not authenticated"; return output; } \`\`\` ### User Management \`\`\`javascript // Create user with specific attributes var newUser = Simplifier.User.create({ login: input.username, firstName: input.firstName, lastName: input.lastName, email: input.email, active: true, attributes: [{ name: "Department", category: "Organization", value: input.department }] }); // Assign role based on department if (input.department === "IT") { Simplifier.User.assignRole(newUser.id, "IT_ADMIN_ROLE_ID"); } \`\`\` ### Business Role Validation \`\`\`javascript // Check permissions before executing sensitive operations var hasAdminRole = Simplifier.User.checkBusinessRole("MYPROJECT", "administrator"); if (!hasAdminRole) { output.error = "Insufficient permissions"; return output; } \`\`\` `; return { contents: [{ uri: uri.href, text: markdownContent, mimeType: "text/markdown" }] }; } ); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SimplifierIO/simplifier-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server