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.

166 lines 6.63 kB
"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