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.
166 lines • 6.63 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.applicationTools = applicationTools;
const zod_1 = require("zod");
function applicationTools(apiClient) {
return {
abp_get_applications: {
name: 'abp_get_applications',
description: 'Get all ABP applications',
inputSchema: {
type: 'object',
properties: {},
required: [],
},
execute: async () => {
const applications = await apiClient.getApplications();
return {
success: true,
data: applications,
count: applications.length,
};
},
},
abp_get_application: {
name: 'abp_get_application',
description: 'Get a specific ABP application by ID',
inputSchema: {
type: 'object',
properties: {
id: {
type: 'string',
description: 'The application ID',
},
},
required: ['id'],
},
execute: async (args) => {
const { id } = zod_1.z.object({ id: zod_1.z.string() }).parse(args);
const application = await apiClient.getApplication(id);
return {
success: true,
data: application,
};
},
},
abp_create_application: {
name: 'abp_create_application',
description: 'Create a new ABP application',
inputSchema: {
type: 'object',
properties: {
name: {
type: 'string',
description: 'The application name (internal identifier)',
},
displayName: {
type: 'string',
description: 'The display name for the application',
},
template: {
type: 'string',
description: 'The ABP template to use (e.g., app, microservice, module)',
enum: ['app', 'microservice', 'module', 'console'],
},
framework: {
type: 'string',
description: 'The UI framework',
enum: ['mvc', 'angular', 'blazor', 'blazor-server', 'react-native', 'maui'],
},
database: {
type: 'string',
description: 'The database provider',
enum: ['ef', 'mongodb', 'dapper'],
},
connectionString: {
type: 'string',
description: 'Database connection string (optional)',
},
},
required: ['name', 'displayName', 'template'],
},
execute: async (args) => {
const schema = zod_1.z.object({
name: zod_1.z.string(),
displayName: zod_1.z.string(),
template: zod_1.z.enum(['app', 'microservice', 'module', 'console']),
framework: zod_1.z.enum(['mvc', 'angular', 'blazor', 'blazor-server', 'react-native', 'maui']).optional(),
database: zod_1.z.enum(['ef', 'mongodb', 'dapper']).optional(),
connectionString: zod_1.z.string().optional(),
});
const validatedArgs = schema.parse(args);
const application = await apiClient.createApplication(validatedArgs);
return {
success: true,
data: application,
message: `Application '${application.displayName}' created successfully`,
};
},
},
abp_update_application: {
name: 'abp_update_application',
description: 'Update an existing ABP application',
inputSchema: {
type: 'object',
properties: {
id: {
type: 'string',
description: 'The application ID',
},
displayName: {
type: 'string',
description: 'The display name for the application',
},
url: {
type: 'string',
description: 'The application URL',
},
status: {
type: 'string',
description: 'The application status',
enum: ['Running', 'Stopped', 'Error'],
},
},
required: ['id'],
},
execute: async (args) => {
const schema = zod_1.z.object({
id: zod_1.z.string(),
displayName: zod_1.z.string().optional(),
url: zod_1.z.string().optional(),
status: zod_1.z.enum(['Running', 'Stopped', 'Error']).optional(),
});
const { id, ...updateData } = schema.parse(args);
const application = await apiClient.updateApplication(id, updateData);
return {
success: true,
data: application,
message: `Application updated successfully`,
};
},
},
abp_delete_application: {
name: 'abp_delete_application',
description: 'Delete an ABP application',
inputSchema: {
type: 'object',
properties: {
id: {
type: 'string',
description: 'The application ID',
},
},
required: ['id'],
},
execute: async (args) => {
const { id } = zod_1.z.object({ id: zod_1.z.string() }).parse(args);
await apiClient.deleteApplication(id);
return {
success: true,
message: `Application deleted successfully`,
};
},
},
};
}
//# sourceMappingURL=application-tools.js.map