Amazon Q: MCP für besseres Kontextverständnis

Einführung in das Model Context Protocol (MCP)

In der sich ständig weiterentwickelnden Welt der Softwareentwicklung sind Tools und Technologien, die Arbeitsabläufe rationalisieren und neue Möglichkeiten eröffnen, sehr begehrt. Die kürzliche Ergänzung der Model Context Protocol (MCP)-Unterstützung in der Amazon Q Developer Command Line Interface (CLI) ist eine Entwicklung, die ein immenses Potenzial birgt. MCP ist ein offenes Protokoll, das standardisiert, wie Anwendungen nahtlos in Large Language Models (LLMs) integriert werden, und bietet einen gemeinsamen Rahmen für den Austausch von Kontext, den Zugriff auf verschiedene Datenquellen und die Aktivierung leistungsstarker KI-gesteuerter Funktionen. MCP dient als Brücke zwischen Anwendungen und LLMs und ermöglicht ihnen die effektive Kommunikation und Zusammenarbeit. Es ermöglicht Anwendungen, LLMs den Kontext bereitzustellen, den sie benötigen, um Aufgaben genau und effizient auszuführen, und ermöglicht LLMs gleichzeitig den Zugriff auf Daten aus verschiedenen Quellen und deren Nutzung.

MCP baut auf den bestehenden Fähigkeiten von Q Developer auf, das bereits die Möglichkeit besitzt, Tools zu nutzen. Zuvor bot Q Developer Funktionen wie das Ausführen von CLI-Befehlen und das Beschreiben von AWS-Ressourcen. Mit der Integration von MCP-Tools und -Prompts erhält die Q Developer CLI die Möglichkeit, zusätzliche Tools zu integrieren und ihre Fähigkeiten weiter auszubauen. Während Q Developer beispielsweise zuvor AWS-Ressourcen beschreiben konnte, ist die Möglichkeit, Datenbankschemata und Nachrichtenformate zu beschreiben, für die Entwicklung umfassender Anwendungen unerlässlich. Durch die Konfiguration von MCP können Entwickler Q Developer diesen zusätzlichen Kontext bereitstellen, sodass es Aufgaben effektiver ausführen kann.

In den folgenden Abschnitten werden wir untersuchen, wie ein MCP-Server konfiguriert wird, um Q Developer das Datenbankschema für ein einfaches Learning Management System (LMS) bereitzustellen, das sich derzeit in der Entwicklung befindet. Während Q Developer sich durch das Schreiben von SQL-Abfragen auszeichnet, verfügt es nicht über inhärentes Wissen über das Datenbankschema. Die Tabellenstruktur und -beziehungen werden in der Datenbank selbst gespeichert und sind nicht direkt im Quellcode des Projekts zugänglich. Um diese Einschränkung zu beheben, werden wir einen MCP-Server verwenden, der in der Lage ist, das Datenbankschema abzufragen. Konkret werden wir die offizielle PostgreSQL-Referenzimplementierung verwenden, um eine Verbindung zu einer Amazon Relational Database Service (RDS)-Instanz herzustellen.

Die Situation vor dem Model Context Protocol

Vor dem Aufkommen der MCP-Unterstützung bot die Q Developer CLI eine begrenzte Anzahl nativer Tools, darunter die Möglichkeit, Bash-Befehle auszuführen, mit Dateien und dem Dateisystem zu interagieren und AWS-Dienste aufzurufen. Bei der Abfrage von Datenbanken waren die Fähigkeiten der CLI jedoch eingeschränkt.

Als Beispiel wurde Q Developer vor der Konfiguration des MCP-Servers aufgefordert, ‘Eine Abfrage zu schreiben, die die Studenten und die Anzahl der Credits auflistet, die jeder Student belegt’. In diesem Szenario konnte Q Developer nur eine generische SQL-Abfrage bereitstellen, da es nicht über die spezifischen Kenntnisse des Datenbankschemas für das LMS verfügte.

Während diese generische Abfrage als Ausgangspunkt dient, ist es offensichtlich, dass Q Developer mit Zugriff auf das Datenbankschema weitaus besser zugeschnittene und genauere Ergebnisse liefern könnte.

Konfigurieren des Model Context Protocol: Eine Schritt-für-Schritt-Anleitung

Die Einführung der MCP-Unterstützung in der Q Developer CLI vereinfacht die Konfiguration von MCP-Servern. MCP-Server werden in einer Datei namens mcp.json konfiguriert. Diese Konfigurationsdatei kann entweder im Home-Verzeichnis (z. B. ~/.aws/amazonq/mcp.json) gespeichert werden, wodurch die Konfiguration auf alle Projekte auf dem Computer angewendet wird, oder im Workspace-Root (z. B. .amazonq/mcp.json), sodass Projektmitglieder die Konfiguration gemeinsam nutzen können. Nachfolgend finden Sie ein Beispiel für eine Konfiguration für den PostgreSQL MCP-Server: