feat: MCP Server plugin (Task 5.16) - expose LeoCRM tools to external AI clients
- New plugin app/plugins/builtins/mcp_server/ with 9 MCP tools
- Tools: search_contacts, get_contact, create_contact, list_calendar_entries,
create_calendar_entry, list_emails, send_email, list_files, upload_file
- Routes: GET /api/v1/mcp/tools, POST /api/v1/mcp/tools/{name}/execute, GET /api/v1/mcp/config
- API-token auth via session + RBAC (mcp:read, mcp:write)
- Frontend: mcp.ts API client with React Query hooks
- Frontend: SettingsMcp.tsx settings page with tool listing and execution
- i18n: de.json and en.json updated with MCP entries
- Tests: 7 tests covering tool listing, config, execution, auth, schema validation
This commit is contained in:
@@ -16,7 +16,8 @@
|
||||
"users": "Benutzer",
|
||||
"auditLog": "Audit-Log",
|
||||
"settings": "Einstellungen",
|
||||
"aiAssistant": "KI Assistent"
|
||||
"aiAssistant": "KI Assistent",
|
||||
"mcpSettings": "MCP Einstellungen"
|
||||
},
|
||||
"auth": {
|
||||
"login": "Anmelden",
|
||||
@@ -284,7 +285,8 @@
|
||||
"livePreview": "Live-Vorschau",
|
||||
"livePreviewDescription": "So sieht die Anwendung mit dem aktuellen Theme aus",
|
||||
"resetTheme": "Zurücksetzen",
|
||||
"saveTheme": "Theme speichern"
|
||||
"saveTheme": "Theme speichern",
|
||||
"mcp": "MCP"
|
||||
},
|
||||
"auditLog": {
|
||||
"title": "Audit-Log",
|
||||
@@ -918,5 +920,52 @@
|
||||
"tab": "Tab wechseln",
|
||||
"settings": "Einstellungen ändern"
|
||||
}
|
||||
},
|
||||
"mcp": {
|
||||
"title": "MCP Server & Client",
|
||||
"server": {
|
||||
"title": "MCP Server",
|
||||
"description": "LeoCRM als MCP-Server für externe KI-Clients",
|
||||
"tools": "Verfügbare Tools",
|
||||
"toolCount": "Anzahl Tools",
|
||||
"toolName": "Tool",
|
||||
"toolDescription": "Beschreibung",
|
||||
"toolCategory": "Kategorie",
|
||||
"toolPermission": "Berechtigung",
|
||||
"execute": "Ausführen",
|
||||
"executeTool": "Tool ausführen",
|
||||
"arguments": "Argumente (JSON)",
|
||||
"result": "Ergebnis",
|
||||
"error": "Fehler",
|
||||
"success": "Erfolgreich",
|
||||
"config": "Server-Konfiguration",
|
||||
"serverName": "Server-Name",
|
||||
"serverVersion": "Version",
|
||||
"protocolVersion": "Protokoll-Version",
|
||||
"authMethod": "Authentifizierung",
|
||||
"availableTools": "Verfügbare Tools",
|
||||
"noTools": "Keine Tools verfügbar"
|
||||
},
|
||||
"client": {
|
||||
"title": "MCP Client",
|
||||
"description": "Beschreibung",
|
||||
"servers": "Server-Konfigurationen",
|
||||
"addServer": "Server hinzufügen",
|
||||
"editServer": "Server bearbeiten",
|
||||
"deleteServer": "Server löschen",
|
||||
"serverName": "Name",
|
||||
"serverUrl": "URL",
|
||||
"apiToken": "API-Token",
|
||||
"enabled": "Aktiviert",
|
||||
"lastConnected": "Zuletzt verbunden",
|
||||
"noServers": "Keine Server konfiguriert",
|
||||
"deleteConfirm": "Möchten Sie diesen Server wirklich löschen?",
|
||||
"serverCreated": "Server erfolgreich erstellt.",
|
||||
"serverUpdated": "Server erfolgreich aktualisiert.",
|
||||
"serverDeleted": "Server erfolgreich gelöscht.",
|
||||
"viewTools": "Tools anzeigen",
|
||||
"tools": "Tools",
|
||||
"noTools": "Keine Tools verfügbar"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
"users": "Users",
|
||||
"auditLog": "Audit Log",
|
||||
"settings": "Settings",
|
||||
"aiAssistant": "AI Assistant"
|
||||
"aiAssistant": "AI Assistant",
|
||||
"mcpSettings": "MCP Settings"
|
||||
},
|
||||
"auth": {
|
||||
"login": "Sign In",
|
||||
@@ -284,7 +285,8 @@
|
||||
"livePreview": "Live Preview",
|
||||
"livePreviewDescription": "This is how the app looks with the current theme",
|
||||
"resetTheme": "Reset",
|
||||
"saveTheme": "Save theme"
|
||||
"saveTheme": "Save theme",
|
||||
"mcp": "MCP"
|
||||
},
|
||||
"auditLog": {
|
||||
"title": "Audit Log",
|
||||
@@ -918,5 +920,52 @@
|
||||
"tab": "Switch tab",
|
||||
"settings": "Change settings"
|
||||
}
|
||||
},
|
||||
"mcp": {
|
||||
"title": "MCP Server & Client",
|
||||
"server": {
|
||||
"title": "MCP Server",
|
||||
"description": "LeoCRM as MCP Server for external AI clients",
|
||||
"tools": "Available Tools",
|
||||
"toolCount": "Tool Count",
|
||||
"toolName": "Tool",
|
||||
"toolDescription": "Description",
|
||||
"toolCategory": "Category",
|
||||
"toolPermission": "Permission",
|
||||
"execute": "Execute",
|
||||
"executeTool": "Execute Tool",
|
||||
"arguments": "Arguments (JSON)",
|
||||
"result": "Result",
|
||||
"error": "Error",
|
||||
"success": "Success",
|
||||
"config": "Server Configuration",
|
||||
"serverName": "Server Name",
|
||||
"serverVersion": "Version",
|
||||
"protocolVersion": "Protocol Version",
|
||||
"authMethod": "Authentication",
|
||||
"availableTools": "Available Tools",
|
||||
"noTools": "No tools available"
|
||||
},
|
||||
"client": {
|
||||
"title": "MCP Client",
|
||||
"description": "Description",
|
||||
"servers": "Server Configurations",
|
||||
"addServer": "Add Server",
|
||||
"editServer": "Edit Server",
|
||||
"deleteServer": "Delete Server",
|
||||
"serverName": "Name",
|
||||
"serverUrl": "URL",
|
||||
"apiToken": "API Token",
|
||||
"enabled": "Enabled",
|
||||
"lastConnected": "Last Connected",
|
||||
"noServers": "No servers configured",
|
||||
"deleteConfirm": "Are you sure you want to delete this server?",
|
||||
"serverCreated": "Server created successfully.",
|
||||
"serverUpdated": "Server updated successfully.",
|
||||
"serverDeleted": "Server deleted successfully.",
|
||||
"viewTools": "View Tools",
|
||||
"tools": "Tools",
|
||||
"noTools": "No tools available"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user