AthenaMCPServer
用于查询Amazon Athena的MCP(模型上下文协议)服务器。此服务器允许AI助手对AWS Athena执行SQL查询,并以结构化格式检索结果。
特性
- 对Amazon Athena执行SQL查询
- 使用配置文件对AWS帐户进行身份验证
- 将结果格式化为JSON、CSV或格式化表
- 可配置的数据库、区域和输出位置
设置
# Install dependencies
npm install配置
服务器使用以下环境变量进行配置:
AWS_REGION:Athena所在的AWS区域(默认:“us-east-1”)ATHENA_WORKGROUP:要使用的Athena工作组(默认值:“主”)ATHENA_OUTPUT_LOCATION:查询结果的S3位置(默认值:“S3://aws-athena查询结果/”)ATHENA_DATABASE:要查询的默认数据库(默认值:“默认”)ATHENA_CATALOG:要查询的默认目录/数据源(默认:“AwsDataCatalog”)AWS_PROFILE:用于身份验证的AWS配置文件(默认:未定义,将回退到使用默认的AWS凭据提供程序链)
您可以在运行服务器之前设置这些环境变量:
export AWS_REGION=us-west-2
export ATHENA_WORKGROUP=my-workgroup
export ATHENA_OUTPUT_LOCATION=s3://my-bucket/athena-results/
export ATHENA_DATABASE=my_database
export ATHENA_CATALOG=AwsDataCatalog
export AWS_PROFILE=aws_profile_name或者,您可以在MCP客户端配置中设置这些环境变量(见下文)。
MCP客户端的配置
{
"mcpServers": {
"athena-mcp": {
"command": "npm",
"args": [
"--prefix",
"/Users//workplace/AthenaMCPServer/src/AthenaMCPServer",
"start"
],
"disabled": false,
"env": {
"AWS_PROFILE": "",
"ATHENA_OUTPUT_LOCATION": "s3://"
},
"autoApprove": []
}
}
}AWS身份验证
服务器使用AWS SDK的默认凭据提供程序链。您可以使用以下任何方法进行身份验证:
- 环境变量(
AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY) - 共享凭据文件(
~/.aws/credentials) - EC2实例配置文件或ECS任务角色
- AWS SSO
使用AWS配置文件
您可以从共享凭据配置文件中指定AWS配置文件(~/.aws/config)执行查询时:
{
"query": "SELECT * FROM my_table LIMIT 10",
"profile": "my-aws-profile"
}当您在凭据文件中配置了多个AWS帐户或角色时,这很有用。
有关更多信息,请参阅 AWS SDK文档.
用法
使用MCP客户端的基本示例(例如。 克莱恩)
在MCP客户端窗口中键入以下内容
use the athena mcp server to run a basic query and return in csv答复:
test
1您可以直接向它传递查询,也可以使用其他LLM为您生成SQL,并要求它使用Athena MCP Server运行它
启动服务器
# Start the server
npm start可用工具
query_athena
对Amazon Athena执行SQL查询并检索结果。
参数:
query(必填):要执行的SQL查询database(可选):要查询的数据库(如果未指定,则使用默认值)catalog(可选):要查询的目录(数据源)(如果未指定,则使用AwsDataCatalog)region(可选):AWS区域(如果未指定,则使用默认值)format(可选):结果格式(json、表格或csv)profile(可选):从共享凭据文件中使用的AWS配置文件名称
例子:
{
"query": "SELECT * FROM my_table LIMIT 10",
"database": "my_database",
"catalog": "AwsDataCatalog",
"format": "table",
"profile": "my-aws-profile"
}发展
项目结构
athena-mcp/
├── src/
│ ├── core/
│ │ └── aws/
│ │ └── athena-client.ts
│ ├── tools/
│ │ └── query-athena/
│ │ └── tool.ts
│ ├── cli.ts
│ └── index.ts
├── package.json
├── tsconfig.json
└── README.md以开发模式运行
# Run in development mode with auto-reload
npm run watch测试
# Run tests
npm test