Aiven

官方

管理您的Aiven项目,并与PostgreSQL®、Apache Kafka®、ClickHouse®和OpenSearch®服务进行交互

你可以用 Aiven MCP 做什么?

  • 列出并检查 Aiven 项目 — 使用 aiven_project_listaiven_project_get 浏览项目并查看其详细信息。
  • 管理 Aiven 服务 — 通过 aiven_service_createaiven_service_updateaiven_service_get 创建、更新或检索服务。
  • 处理 Kafka 主题和连接器 — 列出、创建、更新、删除主题,生产/消费消息,并管理 Kafka Connect 连接器。
  • 在 PostgreSQL 服务上运行 SQL — 使用 aiven_pg_read 执行只读查询,或使用 aiven_pg_write 执行写入语句。
  • 部署和重新部署应用程序 — 使用 aiven_application_deployaiven_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

Install MCP Server

或手动添加到 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(项目/服务发现)始终隐式包含。

有效范围:allcorepgkafkaapplicationintegrations。使用 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_ONLYfalse设置为 true 以仅暴露只读工具
AIVEN_SERVICES_SCOPE--要暴露的逗号分隔范围(例如 kafkapg,kafkaall)。有效值:allcorepgkafkaapplicationintegrationscore 始终包含。省略该变量或设置为 all 将加载每个工具。
AIVEN_ALLOW_SECRETSfalse设置为 true 以暴露 aiven_service_connection_info 工具,该工具会将实时凭据(密码、连接 URI、证书)返回到对话中。在 AIVEN_READ_ONLY=true 时禁用。
AIVEN_WRITE_ALLOWLIST--AIVEN_READ_ONLY=true 时重新启用的逗号分隔工具名称(例如 aiven_kafka_topic_create)。当只读模式未启用时忽略。
MCP_HOSThttps://mcp.aiven.live覆盖 OAuth 受保护资源主机
MCP_TRANSPORTstdio设置为 http 以启动 HTTP 服务器而不是 stdio
MCP_HTTP_RATE_LIMIT_MAX1000POST /mcp(HTTP 传输)上每个持有者令牌的最大请求数(每个窗口)。客户端 IP 速率限制预计在 Cloudflare 进行。
MCP_HTTP_RATE_LIMIT_WINDOW_MS60000MCP_HTTP_RATE_LIMIT_MAX 的窗口长度(毫秒)。
EXTRA_PROTECTIONfalse在 HTTP 部署上设置为 true,以要求除 GET /health 之外的每个请求都包含有效的 X-Edge-Auth 标头。请参阅下面的边缘保护部署
MCP_EDGE_AUTH_SECRETEXTRA_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 值之间的任何不匹配都会导致每个请求返回 403GET /health 除外)。这两个值都是线路两侧的环境/配置,因此唯一的恢复路径是修复密钥并重新部署或更新 Cloudflare。

按以下顺序启用:

  1. Cloudflare 转换规则 — 添加一条规则,在发往 MCP 源的流量上设置 X-Edge-Auth(以及,如果用于 PG 工具,则设置 X-Client-IP)。记下您配置的密钥值。
  2. MCP_EDGE_AUTH_SECRET — 部署服务器时将此环境变量设置为与转换规则相同的密钥。暂时保持 EXTRA_PROTECTION 未设置或为 false;验证源站仍接受流量。
  3. EXTRA_PROTECTION=true — 仅在步骤 1-2 上线并匹配后启用。确认正常的 MCP 请求成功,并且没有 X-Edge-Auth 的直接源站访问被拒绝。
  4. 密钥轮换 — 同时更新 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_queryAI 驱动的查询优化 (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

许可证

Apache-2.0