Aiven
官方管理您的Aiven项目,并与PostgreSQL®、Apache Kafka®、ClickHouse®和OpenSearch®服务进行交互
你可以用 Aiven MCP 做什么?
- 列出并检查 Aiven 项目 — 使用
aiven_project_list和aiven_project_get浏览项目并查看其详细信息。 - 管理 Aiven 服务 — 通过
aiven_service_create、aiven_service_update和aiven_service_get创建、更新或检索服务。 - 处理 Kafka 主题和连接器 — 列出、创建、更新、删除主题,生产/消费消息,并管理 Kafka Connect 连接器。
- 在 PostgreSQL 服务上运行 SQL — 使用
aiven_pg_read执行只读查询,或使用aiven_pg_write执行写入语句。 - 部署和重新部署应用程序 — 使用
aiven_application_deploy和aiven_application_redeploy管理 Aiven 上的 Docker 化应用。 - 搜索 Aiven 文档 — 通过
aiven_docs_search(仅限托管服务器)以自然语言查询官方文档。
文档
Aiven MCP 服务器
一个用于 Aiven 云数据平台的 模型上下文协议 (MCP) 服务器。
直接从 Claude、Cursor 和 VS Code Copilot 等 AI 助手管理 PostgreSQL、Apache Kafka、应用程序和其他 Aiven 服务。
[!WARNING] 请谨慎使用。 此 MCP 服务器可以代表您创建、修改和删除 Aiven 服务和数据。AI 代理可能会根据其对您提示的解释执行破坏性操作(删除数据库、删除服务、生成消息)。您对通过此工具执行的操作负全部责任。
权限: 访问权限由与已认证帐户关联的 Aiven 用户权限控制。MCP 服务器只能执行您的 Aiven 用户被允许执行的操作。
AI 代理安全: AI 代理可能需要访问凭据(数据库连接字符串、流式令牌)才能代表您执行操作。请审查您的代理正在执行的操作,尤其是在生产环境中。在授予 AI 代理对敏感资源的访问权限之前,请遵循您组织的安全策略并进行风险评估。
快速开始
选项 1:远程(由 Aiven 托管)
MCP 服务器托管在 https://mcp.aiven.live/mcp。您的 MCP 客户端将提示您在 Aiven 上进行授权。
Claude Code
claude mcp add --scope user --transport http aiven-mcp "https://mcp.aiven.live/mcp"
Cursor
或手动添加到 Cursor MCP 设置:
{
"mcpServers": {
"aiven-mcp": {
"url": "https://mcp.aiven.live/mcp"
}
}
}
VS Code / Copilot
添加到工作区中的 .vscode/mcp.json:
{
"servers": {
"aiven-mcp": {
"type": "http",
"url": "https://mcp.aiven.live/mcp"
}
}
}
只读模式(远程)
通过将 ?read_only=true 添加到 URL 来启用只读模式。所有写入操作将从 MCP 中排除:
{
"mcpServers": {
"aiven-mcp": {
"url": "https://mcp.aiven.live/mcp?read_only=true"
}
}
}
限定工具范围(远程)
通过将 ?services_scope= 添加到 URL 来减少暴露给 AI 代理的工具范围。当您只使用 Aiven 服务的子集并希望保持代理上下文集中时,这很有用。使用逗号组合多个值。core(项目/服务发现)始终隐式包含。
有效范围:all、core、pg、kafka、application、integrations。使用 all 显式加载每个工具(与省略参数相同)。all 不能与其他范围组合。
{
"mcpServers": {
"aiven-mcp": {
"url": "https://mcp.aiven.live/mcp?services_scope=kafka"
}
}
}
您也可以与 read_only 组合:
https://mcp.aiven.live/mcp?services_scope=pg&read_only=true
只读模式下的写入例外(远程)
当 read_only=true 时,添加 ?write_allowlist= 以重新启用特定的写入工具,同时保持其他所有内容为只读。当您希望大部分为读取访问权限,但仍需要允许一个写入操作(例如创建 Kafka 主题)时,这很有用。使用逗号组合多个工具名称。当 read_only 未启用时忽略。
https://mcp.aiven.live/mcp?read_only=true&write_allowlist=aiven_kafka_topic_create
市场客户(远程)
如果您通过云市场订阅了 Aiven,请将您的市场添加为路径段,以便登录使用正确的控制台:
| 市场 | 路径段 |
|---|---|
| AWS 市场 | https://mcp.aiven.live/mcp/aws |
| Azure 市场 | https://mcp.aiven.live/mcp/azure |
| Google Cloud 市场 | https://mcp.aiven.live/mcp/gcp |
{
"mcpServers": {
"aiven-mcp": {
"url": "https://mcp.aiven.live/mcp/<marketplace>"
}
}
}
路径段与上述查询参数组合,例如 https://mcp.aiven.live/mcp/gcp?services_scope=pg&read_only=true。
选项 2:stdio(本地)
将服务器作为 MCP 客户端的子进程在本地运行。需要 Node.js 18+。
您必须通过 AIVEN_TOKEN 环境变量提供您的 Aiven API 令牌。在此处创建令牌。
Claude Code
claude mcp add --scope user aiven-mcp -e AIVEN_TOKEN=your-token-here -- npx -y mcp-aiven
Cursor、VS Code -- 添加到您的 MCP 客户端配置:
{
"mcpServers": {
"aiven-mcp": {
"command": "npx",
"args": ["-y", "mcp-aiven"],
"env": {
"AIVEN_TOKEN": "your-token-here"
}
}
}
}
配置文件位置:
- Cursor:Cursor 设置 > MCP 服务器
- VS Code:工作区中的
.vscode/mcp.json
选项 3:本地开发
运行服务器的本地构建(对开发和测试有用):
pnpm install && pnpm generate:api-types && pnpm generate && pnpm build && AIVEN_TOKEN="<YOUR_TOKEN>" MCP_TRANSPORT="http" PORT=3000 node dist/index.js
服务器默认监听端口 3000。将您的 MCP 客户端连接到 http://localhost:3000/mcp。
要将远程部署指向自定义主机(例如您的本地构建),请设置 MCP_HOST:
MCP_HOST=http://localhost:3000 node dist/index.js
环境变量
| 变量 | 必需 | 默认值 | 描述 |
|---|---|---|---|
AIVEN_TOKEN | 仅 stdio | -- | Aiven API 令牌(在此处创建) |
AIVEN_READ_ONLY | 否 | false | 设置为 true 以仅暴露只读工具 |
AIVEN_SERVICES_SCOPE | 否 | -- | 要暴露的逗号分隔范围(例如 kafka、pg,kafka 或 all)。有效值:all、core、pg、kafka、application、integrations。core 始终包含。省略该变量或设置为 all 将加载每个工具。 |
AIVEN_ALLOW_SECRETS | 否 | false | 设置为 true 以暴露 aiven_service_connection_info 工具,该工具会将实时凭据(密码、连接 URI、证书)返回到对话中。在 AIVEN_READ_ONLY=true 时禁用。 |
AIVEN_WRITE_ALLOWLIST | 否 | -- | 在 AIVEN_READ_ONLY=true 时重新启用的逗号分隔工具名称(例如 aiven_kafka_topic_create)。当只读模式未启用时忽略。 |
MCP_HOST | 否 | https://mcp.aiven.live | 覆盖 OAuth 受保护资源主机 |
MCP_TRANSPORT | 否 | stdio | 设置为 http 以启动 HTTP 服务器而不是 stdio |
MCP_HTTP_RATE_LIMIT_MAX | 否 | 1000 | 在 POST /mcp(HTTP 传输)上每个持有者令牌的最大请求数(每个窗口)。客户端 IP 速率限制预计在 Cloudflare 进行。 |
MCP_HTTP_RATE_LIMIT_WINDOW_MS | 否 | 60000 | MCP_HTTP_RATE_LIMIT_MAX 的窗口长度(毫秒)。 |
EXTRA_PROTECTION | 否 | false | 在 HTTP 部署上设置为 true,以要求除 GET /health 之外的每个请求都包含有效的 X-Edge-Auth 标头。请参阅下面的边缘保护部署。 |
MCP_EDGE_AUTH_SECRET | 当 EXTRA_PROTECTION=true 时 | -- | 共享密钥;必须与 Cloudflare 通过转换规则注入的 X-Edge-Auth 值匹配。 |
在远程(HTTP)模式下,不需要 AIVEN_TOKEN。您的 MCP 客户端将您的令牌作为持有者令牌随每个请求发送。
生产 HTTP 流量在两层进行速率限制:Cloudflare 强制执行每个客户端 IP 的限制(在 Cloudflare 仪表板中配置),此服务器在 POST /mcp 上对每个持有者令牌强制执行 MCP_HTTP_RATE_LIMIT_*。
边缘保护部署
当 EXTRA_PROTECTION=true 时,MCP_EDGE_AUTH_SECRET 与 Cloudflare 注入的 X-Edge-Auth 值之间的任何不匹配都会导致每个请求返回 403(GET /health 除外)。这两个值都是线路两侧的环境/配置,因此唯一的恢复路径是修复密钥并重新部署或更新 Cloudflare。
按以下顺序启用:
- Cloudflare 转换规则 — 添加一条规则,在发往 MCP 源的流量上设置
X-Edge-Auth(以及,如果用于 PG 工具,则设置X-Client-IP)。记下您配置的密钥值。 MCP_EDGE_AUTH_SECRET— 部署服务器时将此环境变量设置为与转换规则相同的密钥。暂时保持EXTRA_PROTECTION未设置或为false;验证源站仍接受流量。EXTRA_PROTECTION=true— 仅在步骤 1-2 上线并匹配后启用。确认正常的 MCP 请求成功,并且没有X-Edge-Auth的直接源站访问被拒绝。- 密钥轮换 — 同时更新 Cloudflare 和
MCP_EDGE_AUTH_SECRET(或短暂设置EXTRA_PROTECTION=false),重新部署,然后重新启用。在标志开启时,切勿单独轮换一侧。
如果启动时 EXTRA_PROTECTION=true 且缺少 MCP_EDGE_AUTH_SECRET,进程将立即退出并报错。
在拒绝持续期间,服务器最多每 15 分钟记录一次配置错误警告(在收到具有有效 X-Edge-Auth 的请求后重置),因此密钥不匹配在日志中可见,而不会每个被拒绝的请求都记录一行。
工具
核心
| 工具 | 描述 |
|---|---|
aiven_project_list | 列出项目 |
aiven_project_get | 获取项目详情 |
aiven_list_project_clouds | 列出项目的云平台 |
aiven_project_vpc_list | 列出项目的 VPC |
aiven_service_list | 列出服务 |
aiven_service_type_plans | 列出计划及其云可用性 |
aiven_service_plan_pricing | 获取特定云中计划的价格 |
aiven_service_create | 创建服务 |
aiven_service_get | 获取服务信息 |
aiven_service_update | 更新服务(计划、配置、电源状态) |
aiven_service_metrics_fetch | 获取托管数据服务的指标 |
aiven_service_application_metrics_get | 获取应用程序服务的指标 |
aiven_project_get_service_logs | 获取服务日志条目 |
aiven_service_query_activity | 获取服务的当前查询 |
aiven_project_get_event_logs | 获取项目事件日志条目 |
Kafka
| 工具 | 描述 |
|---|---|
aiven_kafka_topic_list | 列出 Kafka 主题 |
aiven_kafka_topic_create | 创建 Kafka 主题 |
aiven_kafka_topic_get | 获取 Kafka 主题信息 |
aiven_kafka_topic_update | 更新 Kafka 主题 |
aiven_kafka_topic_delete | 删除 Kafka 主题 |
aiven_kafka_topic_message_list | 从 Kafka 主题读取消息 |
aiven_kafka_topic_message_produce | 向 Kafka 主题生成消息 |
aiven_kafka_connect_available_connectors | 列出可用的连接器类型 |
aiven_kafka_connect_list | 列出正在运行的连接器 |
aiven_kafka_connect_create_connector | 创建连接器 |
aiven_kafka_connect_edit_connector | 编辑连接器 |
aiven_kafka_connect_get_connector_status | 获取连接器状态 |
aiven_kafka_connect_pause_connector | 暂停连接器 |
aiven_kafka_connect_resume_connector | 恢复连接器 |
aiven_kafka_connect_restart_connector | 重启连接器 |
aiven_kafka_connect_delete_connector | 删除连接器 |
aiven_kafka_schema_registry_subjects | 列出 Schema Registry 主题 |
aiven_kafka_schema_registry_subject_version_get | 获取 Schema Registry 主题版本 |
PostgreSQL
| 工具 | 描述 |
|---|---|
aiven_pg_service_available_extensions | 列出可用的扩展 |
aiven_pg_service_query_statistics | 获取查询统计信息 |
aiven_pg_bouncer_create | 创建 PgBouncer 连接池 |
aiven_pg_bouncer_update | 更新 PgBouncer 连接池 |
aiven_pg_bouncer_delete | 删除 PgBouncer 连接池 |
aiven_pg_read | 运行只读 SQL 查询 |
aiven_pg_write | 运行写入 SQL 语句(INSERT、UPDATE、DELETE、CREATE TABLE 等) |
aiven_pg_optimize_query | AI 驱动的查询优化 (EverSQL) |
应用程序
| 工具 | 描述 |
|---|---|
aiven_application_deploy | 将 Docker 化应用程序部署到 Aiven |
aiven_application_redeploy | 重建并重新部署现有应用程序 |
aiven_vcs_integration_list | 列出已连接的 VCS (GitHub) 帐户 |
aiven_vcs_integration_repository_list | 列出 VCS 集成的存储库 |
文档
| 工具 | 描述 |
|---|---|
aiven_docs_search | 使用自然语言搜索 Aiven 官方文档。仅在托管服务器 (https://mcp.aiven.live/mcp) 上可用 — 不在自托管部署中暴露。 |
贡献
有关开发设置、本地运行和添加新工具,请参阅 CONTRIBUTING.md。