项目简介

这是一个基于 Model Context Protocol (MCP) 构建的服务器实现,专注于通过标准化的工具调用接口管理 AWS Lake Formation 的权限。它允许兼容 MCP 的客户端(如大型语言模型LLM的应用)直接与 AWS Lake Formation 交互,执行权限的授予和撤销操作。

主要功能点

  • 提供 Lake Formation 权限管理工具: 封装了 AWS Lake Formation 的权限授予和撤销功能。
  • 支持多种资源类型: 能够管理数据库、表(包括指定列)以及 Lake Formation 标签的权限。
  • 通过 MCP 工具接口调用: LLM 客户端可以通过 MCP 的 'callTool' 请求调用这些权限管理功能。
  • 使用 Stdio 传输协议: 服务器通过标准输入/输出来与客户端通信。

安装步骤

该服务器推荐使用 Docker 容器运行,以简化依赖管理和部署。

  1. 构建 Docker 镜像: 在项目根目录下打开终端,运行以下命令构建 Docker 镜像:

    docker build -t mcp/aws-lakeformation-mcp .

    这会在本地创建一个名为 'mcp/aws-lakeformation-mcp' 的 Docker 镜像。

  2. 运行 Docker 容器: 构建完成后,可以使用以下命令运行容器并启动 MCP 服务器(通常由 MCP 客户端负责执行此命令):

    docker run -i --rm mcp/aws-lakeformation-mcp

    '-i' 参数使容器保持标准输入流打开,'-rm' 参数 ensures the container is automatically removed when it stops.

服务器配置

MCP 服务器通常由 MCP 客户端(例如,集成 MCP 功能的 IDE 扩展或独立应用程序)负责启动和管理。客户端需要知道如何启动这个服务器进程。对于 'aws-lakeformation-mcp',典型的客户端配置需要指定使用 'docker run' 命令来启动容器,并传递必要的 AWS 认证信息作为环境变量。

在 MCP 客户端的配置中(例如 VS Code 的 'settings.json'),您需要配置服务器的启动命令、参数以及 AWS 凭据环境变量。配置信息包含服务器名称(用于客户端标识)、用于启动服务器进程的命令和参数列表,以及运行服务器所需的任何环境变量。

例如,客户端配置需要提供如下信息:

  • 服务器名称:'aws-lakeformation-mcp' (或其他自定义名称)
  • 启动命令:'docker'
  • 命令参数:'run', '-i', '--rm', 'mcp/aws-lakeformation-mcp'
  • 环境变量:需要设置 'AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_REGION',用于服务器连接 AWS Lake Formation 服务。这些值通常通过客户端的安全输入或配置方式提供。

重要提示: 具体的配置格式取决于您使用的 MCP 客户端。请参考您的 MCP 客户端的文档来了解如何添加自定义服务器配置,特别是如何安全地提供 AWS 凭据。

基本使用方法

一旦服务器在 MCP 客户端中配置并启动成功,大型语言模型或其他 MCP 客户端就可以通过标准 MCP 协议与之通信。客户端可以:

  1. 发送 'listTools' 请求,发现服务器提供的所有工具列表(例如 'grant_table_permissions', 'revoke_database_permissions' 等)。
  2. 根据发现的工具及其输入 schema,构造 'callTool' 请求,并传递相应的参数(如数据库名、表名、用户ARN、权限列表等),来执行 AWS Lake Formation 的权限管理操作。
  3. 服务器执行操作后,会将结果(成功或失败信息)通过 MCP 响应返回给客户端。

例如,LLM 可以通过调用 'grant_table_permissions' 工具,向指定用户授予对某个表的读写权限。

信息

分类

数据库与文件