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
JavaScript
"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