mira-app-server
Version:
Mira Server - standalone server application using mira-app-core
82 lines • 3.18 kB
JavaScript
"use strict";
/**
* plugins 模块工具
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.registerPluginTools = registerPluginTools;
const zod_1 = require("zod");
const helpers_1 = require("../helpers");
function registerPluginTools(mcp, ctx) {
mcp.registerTool('plugins_list', {
description: '获取所有插件列表(可按素材库/分类/状态筛选)',
inputSchema: {
libraryId: zod_1.z.string().optional(),
category: zod_1.z.string().optional(),
status: zod_1.z.enum(['active', 'inactive']).optional(),
},
}, async (args) => {
return (0, helpers_1.run)(async () => {
const client = ctx.getClient();
let list = await client.plugins().getAll();
if (args.libraryId)
list = list.filter(p => p.libraryId === args.libraryId);
if (args.category)
list = list.filter(p => p.category === args.category);
if (args.status)
list = list.filter(p => p.status === args.status);
return list;
});
});
mcp.registerTool('plugins_install', {
description: '安装插件到指定素材库',
inputSchema: {
name: zod_1.z.string().describe('插件名'),
libraryId: zod_1.z.string(),
version: zod_1.z.string().optional().describe('版本(默认 latest)'),
},
}, async (args) => {
return (0, helpers_1.run)(async () => {
const client = ctx.getClient();
return args.version
? await client.plugins().installVersion(args.name, args.version, args.libraryId)
: await client.plugins().installLatest(args.name, args.libraryId);
});
});
mcp.registerTool('plugins_enable', {
description: '启用插件',
inputSchema: { id: zod_1.z.string() },
}, async (args) => {
return (0, helpers_1.run)(async () => {
const client = ctx.getClient();
return await client.plugins().enable(args.id);
});
});
mcp.registerTool('plugins_disable', {
description: '禁用插件',
inputSchema: { id: zod_1.z.string() },
}, async (args) => {
return (0, helpers_1.run)(async () => {
const client = ctx.getClient();
return await client.plugins().disable(args.id);
});
});
mcp.registerTool('plugins_uninstall', {
description: '卸载插件',
inputSchema: { id: zod_1.z.string() },
}, async (args) => {
return (0, helpers_1.run)(async () => {
const client = ctx.getClient();
return await client.plugins().uninstall(args.id);
});
});
mcp.registerTool('plugins_search', {
description: '按关键词搜索插件(匹配名称/描述/作者/标签)',
inputSchema: { query: zod_1.z.string() },
}, async (args) => {
return (0, helpers_1.run)(async () => {
const client = ctx.getClient();
return await client.plugins().search(args.query);
});
});
}
//# sourceMappingURL=plugins.js.map