feat: remove MCP exposure for Homarr Assistant

Remove the MCP metadata from the assistant router procedures
(getAvailability, getContextEntities, getModelCapabilities) so the Homarr
Assistant is no longer exposed as MCP tools, and drop the corresponding
expectations from the MCP router test.
This commit is contained in:
Thomas Camlong committed 2026-08-06 13:36:45 +02:00
1 parent 974dc1609c
commit db9aecb1cd
2 files changed
+2 -30

No files matched your search

+2 -25
View File
@@ -440,15 +440,7 @@ const addFeedbackToMessageContent = (serializedContent: string, type: "positive"
};
export const assistantRouter = createTRPCRouter({
getAvailability: protectedProcedure
.meta({
mcp: {
enabled: true,
description:
"Check whether Homarr Assistant is enabled and configured, or available in demo mode, for the current user",
},
})
.query(async ({ ctx }) => {
getAvailability: protectedProcedure.query(async ({ ctx }) => {
if (isDemoMode) {
return { enabled: true };
}
@@ -461,26 +453,11 @@ export const assistantRouter = createTRPCRouter({
};
}),
getContextEntities: protectedProcedure
.meta({
mcp: {
enabled: true,
description:
"Lists the apps, integrations, boards, and widgets the signed-in user may reference. Integration entries are permission-filtered. Use returned IDs as inputs for other tools.",
},
})
.query(async ({ ctx }) => {
getContextEntities: protectedProcedure.query(async ({ ctx }) => {
return await getAssistantContextEntitiesAsync(ctx);
}),
getModelCapabilities: protectedProcedure
.meta({
mcp: {
enabled: true,
description:
"Returns the configured assistant model's discovered input modalities and whether image input is supported, unsupported, or unknown.",
},
})
.input(z.object({ modelId: z.string().trim().min(1).max(256).optional() }).optional())
.query(async ({ ctx, input }) => {
const configuration = await getConfigurationAsync(ctx.db);
-5
View File
@@ -3,7 +3,6 @@
import { expect, test, vi } from "vitest";
import { extractToolsFromProcedures } from "trpc-to-mcp";
import { assistantRouter } from "../router/assistant";
import { appRouter } from "../router/app";
import { boardRouter } from "../router/board";
import { customWidgetRouter } from "../router/custom-widget/custom-widget-router";
@@ -28,7 +27,6 @@ vi.mock("@homarr/core/infrastructure/db/env", () => ({
}));
const mcpTestRouter = createTRPCRouter({
assistant: assistantRouter,
app: appRouter,
board: boardRouter,
customWidget: customWidgetRouter,
@@ -49,9 +47,6 @@ test("MCP tools should contain expected procedures", () => {
const toolNames = tools.map((tool) => tool.name);
expect(tools.length).toBeGreaterThan(0);
expect(toolNames).toContain("assistant_getAvailability");
expect(toolNames).toContain("assistant_getContextEntities");
expect(toolNames).toContain("assistant_getModelCapabilities");
expect(toolNames).toContain("app_all");
expect(toolNames).toContain("app_byId");
expect(toolNames).toContain("app_create");