UNPKG

abp-io-mcp-server

Version:

A comprehensive Model Context Protocol (MCP) server for ABP.IO framework with 48+ tools for application development, UI generation, and management operations.

134 lines 5.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.permissionTools = permissionTools; const zod_1 = require("zod"); function permissionTools(apiClient) { return { abp_get_permissions: { name: 'abp_get_permissions', description: 'Get ABP permissions with optional provider filtering', inputSchema: { type: 'object', properties: { providerName: { type: 'string', description: 'Permission provider name (e.g., "R" for role, "U" for user)', }, providerKey: { type: 'string', description: 'Provider key (e.g., role name or user ID)', }, }, required: [], }, execute: async (args) => { const { providerName, providerKey } = zod_1.z.object({ providerName: zod_1.z.string().optional(), providerKey: zod_1.z.string().optional(), }).parse(args); const permissions = await apiClient.getPermissions(providerName, providerKey); return { success: true, data: permissions, count: permissions.length, groups: [...new Set(permissions.map(p => p.groupName))], }; }, }, abp_get_permissions_by_group: { name: 'abp_get_permissions_by_group', description: 'Get ABP permissions by group name', inputSchema: { type: 'object', properties: { groupName: { type: 'string', description: 'The permission group name', }, }, required: ['groupName'], }, execute: async (args) => { const { groupName } = zod_1.z.object({ groupName: zod_1.z.string() }).parse(args); const permissions = await apiClient.getPermissionsByGroup(groupName); return { success: true, data: permissions, count: permissions.length, groupName, }; }, }, abp_grant_permission: { name: 'abp_grant_permission', description: 'Grant a permission to a user or role', inputSchema: { type: 'object', properties: { providerName: { type: 'string', description: 'Permission provider name ("R" for role, "U" for user)', enum: ['R', 'U'], }, providerKey: { type: 'string', description: 'Provider key (role name or user ID)', }, permissionName: { type: 'string', description: 'The permission name to grant', }, }, required: ['providerName', 'providerKey', 'permissionName'], }, execute: async (args) => { const { providerName, providerKey, permissionName } = zod_1.z.object({ providerName: zod_1.z.enum(['R', 'U']), providerKey: zod_1.z.string(), permissionName: zod_1.z.string(), }).parse(args); await apiClient.grantPermission(providerName, providerKey, permissionName); return { success: true, message: `Permission '${permissionName}' granted to ${providerName === 'R' ? 'role' : 'user'} '${providerKey}'`, }; }, }, abp_revoke_permission: { name: 'abp_revoke_permission', description: 'Revoke a permission from a user or role', inputSchema: { type: 'object', properties: { providerName: { type: 'string', description: 'Permission provider name ("R" for role, "U" for user)', enum: ['R', 'U'], }, providerKey: { type: 'string', description: 'Provider key (role name or user ID)', }, permissionName: { type: 'string', description: 'The permission name to revoke', }, }, required: ['providerName', 'providerKey', 'permissionName'], }, execute: async (args) => { const { providerName, providerKey, permissionName } = zod_1.z.object({ providerName: zod_1.z.enum(['R', 'U']), providerKey: zod_1.z.string(), permissionName: zod_1.z.string(), }).parse(args); await apiClient.revokePermission(providerName, providerKey, permissionName); return { success: true, message: `Permission '${permissionName}' revoked from ${providerName === 'R' ? 'role' : 'user'} '${providerKey}'`, }; }, }, }; } //# sourceMappingURL=permission-tools.js.map