MCP-Server
Der MCP-Server stellt die Suche als Tools fuer AI-Assistenten bereit (Model Context Protocol).
Verwendung
import { createMcpSearchServer } from '@processcube-io/knowledge-sdk/mcp/server';
const mcp = await createMcpSearchServer(store, {
name: 'my-docs',
version: '1.0.0',
baseUrl: 'https://docs.example.com',
collectionDescriptions: {
docs: 'Hauptdokumentation',
blog: 'Blog-Artikel und Tutorials',
},
searchToolDescription: 'Durchsucht die Projekt-Dokumentation.',
listCollectionsToolDescription: 'Listet alle verfuegbaren Collections auf.',
});Tools
search_docs
Durchsucht die Dokumentation.
| Parameter | Typ | Beschreibung |
|---|---|---|
query | string | Suchbegriff |
collection | string (optional) | Collection-Filter |
limit | number (1-50) | Max. Ergebnisse (Default: 10) |
list_collections
Listet alle verfuegbaren Collections mit Dokumentanzahl und Beschreibung auf.
classify_ticket
Klassifiziert ein Ticket und ordnet es der passenden Collection, dem Sub-Thema
und dem Quell-Repository zu. Wird nur aktiviert, wenn classifierConfig uebergeben wird.
| Parameter | Typ | Beschreibung |
|---|---|---|
correlationId | string | Stabiler Schluessel (z.B. “org/repo#123”) |
title | string | Ticket-Titel |
body | string (optional) | Ticket-Beschreibung |
tags | string[] (optional) | Tags/Markierungen |
repo | string (optional) | Quell-Repository |
classify_ticket_feedback
Gibt Feedback zu einer vorherigen Klassifikation. Verbessert zukuenftige Klassifikationen.
| Parameter | Typ | Beschreibung |
|---|---|---|
correlationId | string | correlationId aus dem classify_ticket Request |
correctCollection | string | Die korrekte Collection |
correctSubTheme | string (optional) | Korrektes Sub-Thema |
comment | string (optional) | Begruendung der Korrektur |
Siehe Ticket-Classifier Dokumentation fuer Details.
Integration
Im Standalone-Server
await startServer(store, {
port: 3001,
mcp: {
name: 'my-docs',
baseUrl: 'https://docs.example.com',
collectionDescriptions: { docs: 'Dokumentation' },
},
});
// POST /api/mcp → MCP-EndpointIn Next.js
// app/api/mcp/route.ts
import { createMcpSearchServer } from '@processcube-io/knowledge-sdk/mcp/server';
import { WebStandardStreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js';
export async function POST(req: Request) {
const mcp = await createMcpSearchServer(store, { name: 'my-docs' });
const transport = new WebStandardStreamableHTTPServerTransport({
sessionIdGenerator: undefined,
enableJsonResponse: true,
});
await mcp.connect(transport);
try {
return await transport.handleRequest(req);
} finally {
await transport.close();
await mcp.close();
}
}Konfiguration
| Option | Default | Beschreibung |
|---|---|---|
name | 'knowledge-sdk' | Server-Name im MCP-Protokoll |
version | '1.0.0' | Server-Version |
baseUrl | '' | Basis-URL fuer absolute Links |
collectionDescriptions | {} | Beschreibungen pro Collection |
searchToolDescription | (generisch) | Beschreibung des search_docs Tools |
listCollectionsToolDescription | (generisch) | Beschreibung des list_collections Tools |
classifierConfig | undefined | Ticket-Classifier-Konfiguration (aktiviert classify_ticket Tools) |
feedbackStore | undefined | Feedback-Store fuer Self-Improvement |