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(必需)
-
先决条件
-
具有 Aurora DSQL 集群的 AWS 账户
-
此 MCP 服务器只能在您的 LLM 客户端所在的主机上本地运行。
-
设置具有 AWS 服务的访问权限的 AWS 凭证
-
您需要一个 AWS 账户,其角色需包含以下权限:
-
dsql:DbConnectAdmin– 以管理员用户身份连接到 DSQL 集群 -
dsql:DbConnect– 使用自定义数据库角色连接到 DSQL 集群(仅在使用非管理员用户时需要此权限)
-
-
通过
aws configure或环境变量配置 AWS 凭证
-
安装
使用 uv
-
从 Astral
或 GitHub README 安装 uv -
使用
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
这是用于指定用来连接的用户的必需参数。例如,admin 或 my_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
如果您在通过网速慢的网络访问文档时遇到超时,请增大此值。