增强Amazon Q:利用MCP协议实现高级语境理解

通过模型上下文协议 (MCP) 增强 Amazon Q 开发者 CLI,实现高级上下文理解

软件开发领域日新月异,开发者们不断寻求能够简化工作流程并增强自身能力的工具。 在这种动态环境中,Amazon Web Services (AWS) 为其 Amazon Q Developer 工具引入了一项重大增强功能:命令行界面 (CLI) 中的模型上下文协议 (MCP) 支持。 此集成使开发人员能够将外部数据源连接到 Amazon Q Developer CLI,从而实现更具上下文感知和智能的响应。 通过将 MCP 工具和提示无缝集成到 Q Developer CLI 中,开发人员可以访问庞大的预构建集成和支持 stdio 的 MCP 服务器生态系统。 这种丰富的上下文使 Q Developer 能够生成更准确的代码、理解复杂的数据结构、创建相关的单元测试、生成全面的数据库文档以及执行精确的查询,所有这些都无需开发自定义集成代码。 通过使用 MCP 工具和提示扩展 Q Developer,开发人员可以加速开发任务并显着增强整体开发体验。 AWS 致力于支持代理的开源协议,例如 Anthropic 倡导的模型上下文协议 (MCP)。 这种承诺体现在 Amazon Q Developer IDE 插件中功能的持续扩展。

模型上下文协议 (MCP) 简介

在不断发展的软件开发领域,能够简化工作流程并释放新功能的工具和技术备受追捧。 最近在 Amazon Q Developer 命令行界面 (CLI) 中添加的模型上下文协议 (MCP) 支持是一项极具前景的开发。 MCP 是一种开放协议,可标准化应用程序与大型语言模型 (LLM) 的无缝集成,从而为共享上下文、访问各种数据源和启用强大的 AI 驱动功能提供通用框架。 MCP 充当应用程序和 LLM 之间的桥梁,使它们能够有效地通信和协作。 它使应用程序能够为 LLM 提供执行任务所需的上下文,从而提高准确性和效率,同时还允许 LLM 访问和利用来自各种来源的数据。

MCP 建立在 Q Developer 的现有功能之上,Q Developer 已经具备使用工具的能力。 以前,Q Developer 提供的功能包括运行 CLI 命令和描述 AWS 资源。 通过集成 MCP 工具和提示,Q Developer CLI 获得了集成其他工具的能力,从而进一步扩展了其功能。 例如,虽然 Q Developer 以前可以描述 AWS 资源,但描述数据库模式和消息格式对于构建全面的应用程序至关重要。 通过配置 MCP,开发人员可以为 Q Developer 提供这种额外的上下文,使其能够更有效地执行任务。

在以下各节中,我们将探讨如何配置 MCP 服务器以向 Q Developer 提供当前正在开发的简单学习管理系统 (LMS) 的数据库模式。 虽然 Q Developer 擅长编写 SQL 查询,但它缺乏对数据库模式的固有知识。 表结构和关系存储在数据库本身中,并且无法在项目的源代码中直接访问。 为了解决这个限制,我们将采用能够查询数据库模式的 MCP 服务器。 具体来说,我们将利用官方 PostgreSQL 参考实现来连接到 Amazon Relational Database Service (RDS) 实例。

模型上下文协议之前的状况

在 MCP 支持出现之前,Q Developer CLI 提供了一组有限的本机工具,包括执行 bash 命令、与文件和文件系统交互以及调用 AWS 服务的工具。 但是,在查询数据库时,CLI 的功能受到限制。

例如,在配置 MCP 服务器之前,曾向 Q Developer 发出请求“编写一个查询,列出学生和每个学生所修的学分数”。 在这种情况下,Q Developer 只能提供一个通用的 SQL 查询,因为它缺乏 LMS 数据库模式的特定知识。

虽然此通用查询可以作为起点,但很明显,如果 Q Developer 能够访问数据库模式,则可以提供更量身定制和准确的结果。

配置模型上下文协议:分步指南

在 Q Developer CLI 中引入 MCP 支持简化了 MCP 服务器的配置。 MCP 服务器在名为 mcp.json 的文件中配置。 此配置文件可以存储在主目录中(例如,~/.aws/amazonq/mcp.json),将配置应用于机器上的所有项目,或者存储在工作区根目录中(例如,.amazonq/mcp.json),使项目成员可以共享配置。 以下是 PostgreSQL MCP 服务器的配置示例: