AWS Labs Aurora DSQL MCP 服务器 - Amazon Aurora DSQL

AWS Labs Aurora DSQL MCP 服务器

适用于 Aurora DSQL 的 AWS Labs 模型上下文协议(MCP)服务器

功能

  • 将人类可读的问题和命令转换为结构化的、与 Postgres 兼容的 SQL 查询,并对已配置的 Aurora DSQL 数据库执行这些查询。

  • 默认情况下为只读模式,可通过 --allow-writes 启用事务

  • 在请求间重用连接以提升性能

  • 内置 Aurora DSQL 文档、搜索及最佳实践建议访问功能

可用工具

数据库操作

  • readonly_query – 向您的 DSQL 集群执行只读 SQL 查询

  • transact – 在事务中执行写入操作(需使用 --allow-writes

  • get_schema – 检索表架构信息

文档与建议

  • dsql_search_documentation – 搜索 Aurora DSQL 文档

    • 参数:search_phrase(必需)、limit(可选)

  • dsql_read_documentation – 读取特定的 DSQL 文档页面

    • 参数:url(必需)、start_index(可选)、max_length(可选)

  • dsql_recommend – 获取 DSQL 最佳实践的建议

    • 参数:url(必需)

先决条件

  1. 具有 Aurora DSQL 集群的 AWS 账户

  2. 此 MCP 服务器只能在您的 LLM 客户端所在的主机上本地运行。

  3. 设置具有 AWS 服务的访问权限的 AWS 凭证

    • 您需要一个 AWS 账户,其角色需包含以下权限:

      • dsql:DbConnectAdmin – 以管理员用户身份连接到 DSQL 集群

      • dsql:DbConnect – 使用自定义数据库角色连接到 DSQL 集群(仅在使用非管理员用户时需要此权限)

    • 通过 aws configure 或环境变量配置 AWS 凭证

安装

使用 uv

  1. AstralGitHub README 安装 uv

  2. 使用 uv python install 3.10 安装 Python

在 MCP 客户端配置中配置 MCP 服务器(例如,对于 Amazon Q 开发者版 CLI,编辑 ~/.aws/amazonq/mcp.json):

{ "mcpServers": { "awslabs.aurora-dsql-mcp-server": { "command": "uvx", "args": [ "awslabs.aurora-dsql-mcp-server@latest", "--cluster_endpoint", "[your dsql cluster endpoint, e.g. abcdefghijklmnopqrst234567.dsql.us-east-1.on.aws]", "--region", "[your dsql cluster region, e.g. us-east-1]", "--database_user", "[your dsql username, e.g. admin]", "--profile", "default" ], "env": { "FASTMCP_LOG_LEVEL": "ERROR" }, "disabled": false, "autoApprove": [] } } }

Windows 安装

对于 Windows 用户,MCP 服务器配置格式略有不同:

{ "mcpServers": { "awslabs.aurora-dsql-mcp-server": { "disabled": false, "timeout": 60, "type": "stdio", "command": "uv", "args": [ "tool", "run", "--from", "awslabs.aurora-dsql-mcp-server@latest", "awslabs.aurora-dsql-mcp-server.exe" ], "env": { "FASTMCP_LOG_LEVEL": "ERROR", "AWS_PROFILE": "your-aws-profile", "AWS_REGION": "us-east-1" } } } }

验证安装

对于 Amazon Q 开发者版 CLI,运行 /mcp 可查看 MCP 服务器的状态。

服务器配置选项

--allow-writes

默认情况下,dsql MCP 服务器不允许写入操作(“只读模式”)。在此模式下,任何对 transact 工具的调用都将失败。要使用 transact 工具,需通过传递 --allow-writes 参数来允许写入。

建议在连接到 DSQL 时使用最低权限访问原则。例如,用户应尽可能使用只读角色。只读模式采用最优客户端强制策略来拒绝变更。

--cluster_endpoint

这是用于指定要连接到的集群的必需参数。这应是集群的完整端点,例如 01abc2ldefg3hijklmnopqurstu.dsql.us-east-1.on.aws

--database_user

这是用于指定用来连接的用户的必需参数。例如,adminmy_user。请注意,您使用的 AWS 凭证必须具有以该用户身份登录的权限。有关在 DSQL 中设置和使用数据库角色的更多信息,请参阅使用数据库角色和 IAM 角色

--profile

您可以指定用于凭证的 AWS 配置文件。请注意,无法在 Docker 安装中使用此参数。

此外,还支持在 MCP 配置中使用 AWS_PROFILE 环境变量:

"env": { "AWS_PROFILE": "your-aws-profile" }

如果两者均未提供,则 MCP 服务器将默认使用 AWS 配置文件中的“default”配置文件。

--region

这是用于指定 DSQL 数据库区域的必需参数。

--knowledge-server

可选参数,用于指定 DSQL 知识工具(文档搜索、读取和建议)的远程 MCP 服务器端点。默认情况下,它是预配置的。

示例:

--knowledge-server https://custom-knowledge-server.example.com

注意:为了安全起见,请仅使用受信任的知识服务器端点。服务器应为 HTTPS 端点。

--knowledge-timeout

可选参数,用于指定向知识服务器发出的请求的超时时间(以秒为单位)。

默认值:30.0

示例:

--knowledge-timeout 60.0

如果您在通过网速慢的网络访问文档时遇到超时,请增大此值。