Aiven

공식

Aiven 프로젝트를 탐색하고 PostgreSQL®, Apache Kafka®, ClickHouse® 및 OpenSearch® 서비스와 상호작용하세요.

Aiven MCP(으)로 무엇을 할 수 있나요?

  • Aiven 서비스 관리 — 프로젝트 전반에서 PostgreSQL, Kafka 및 기타 Aiven 서비스를 나열, 생성, 업데이트하고 세부 정보나 지표를 가져옵니다.
  • Kafka 작업 — 토픽을 나열, 생성, 업데이트, 삭제하고, 메시지를 읽거나 생성하며, Kafka Connect 커넥터와 Schema Registry subject를 관리합니다.
  • PostgreSQL 쿼리 실행 — 읽기 전용 SQL 쿼리 또는 쓰기 문을 실행하고, 쿼리 통계를 가져오며, PgBouncer 연결 풀을 관리합니다.
  • 애플리케이션 배포 — Containerfile/Dockerfile 애플리케이션을 생성 및 재배포하고 VCS 통합을 통해 GitHub 리포지토리를 연결합니다.
  • Aiven 문서 검색 — 공식 Aiven 문서를 자연어로 검색합니다(호스팅 서버 전용).
  • 액세스 제한 — 읽기 전용 모드를 활성화하거나, 도구를 특정 서비스 유형으로 범위를 지정하거나, 개별 쓰기 도구를 허용 목록에 추가합니다.

문서

Aiven MCP 서버

Aiven 클라우드 데이터 플랫폼을 위한 Model Context Protocol(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"
    }
  }
}

읽기 전용 모드 (원격)

URL에 ?read_only=true을 추가하여 읽기 전용 모드를 활성화합니다. 모든 쓰기 작업이 MCP에서 제외됩니다:

{
  "mcpServers": {
    "aiven-mcp": {
      "url": "https://mcp.aiven.live/mcp?read_only=true"
    }
  }
}

범위 지정 도구 (원격)

URL에 ?services_scope=를 추가하여 AI 에이전트에 노출되는 도구 범위를 줄입니다. Aiven 서비스의 일부만 사용하면서 에이전트의 컨텍스트를 집중시키고 싶을 때 유용합니다. 값을 쉼표로 결합하세요. core(프로젝트/서비스 검색)는 항상 암묵적으로 포함됩니다.

유효한 범위: all, core, pg, kafka, application, integrations, opensearch. all을 사용하여 모든 도구를 명시적으로 로드할 수 있습니다(매개변수를 생략하는 것과 동일). all는 다른 범위와 결합할 수 없습니다. opensearch는 kafka 또는 pg과 동일한 규칙을 따릅니다(코어 및 OpenSearch 카테고리 도구). 아직 OpenSearch 전용 도구는 없으므로 현재는 코어만 노출됩니다.

{
  "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 Marketplacehttps://mcp.aiven.live/mcp/aws
Azure Marketplacehttps://mcp.aiven.live/mcp/azure
Google Cloud Marketplacehttps://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 Settings > MCP Servers
  • 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_TOKENstdio 전용--Aiven API 토큰 (여기에서 생성)
AIVEN_READ_ONLY아니요falsetrue으로 설정하면 읽기 전용 도구만 노출
AIVEN_SERVICES_SCOPE아니요--노출할 범위를 쉼표로 구분(예: kafka, pg,kafka, all). 유효값: all, core, pg, kafka, application, integrations, opensearch. 범위가 지정된 서비스 유형의 경우 core가 암묵적으로 포함됩니다. opensearch에는 아직 전용 도구가 없습니다(OpenSearch 도구가 추가될 때까지 코어만). 변수를 생략하거나 all로 설정하면 모든 도구를 로드합니다.
AIVEN_ALLOW_SECRETS아니요falsetrue으로 설정하면 대화에 실시간 자격 증명(비밀번호, 연결 URI, 인증서)을 반환하는 aiven_service_connection_info 도구를 노출합니다. AIVEN_READ_ONLY=true인 동안 비활성화됩니다.
AIVEN_WRITE_ALLOWLIST아니요--AIVEN_READ_ONLY=true인 동안 다시 활성화할 도구 이름을 쉼표로 구분(예: aiven_kafka_topic_create). 읽기 전용 모드가 활성화되지 않은 경우 무시됩니다.
MCP_HOST아니요https://mcp.aiven.liveOAuth 보호 리소스 호스트 재정의
MCP_TRANSPORT아니요stdiohttp으로 설정하면 stdio 대신 HTTP 서버 시작
MCP_HTTP_RATE_LIMIT_MAX아니요1000POST /mcp(HTTP 전송)에서 베어러 토큰당 윈도우당 최대 요청 수. 클라이언트 IP 속도 제한은 Cloudflare에서 처리됩니다.
MCP_HTTP_RATE_LIMIT_WINDOW_MS아니요60000MCP_HTTP_RATE_LIMIT_MAX의 윈도우 길이(밀리초)
EXTRA_PROTECTION아니요falseHTTP 배포에서 true로 설정하면 GET /health을 제외한 모든 요청에 유효한 X-Edge-Auth 헤더를 요구합니다. 아래 엣지 보호 롤아웃을 참조하세요.
MCP_EDGE_AUTH_SECRETEXTRA_PROTECTION=true일 때--공유 비밀; Cloudflare가 Transform Rules를 통해 X-Edge-Auth로 주입하는 값과 일치해야 합니다.

원격(HTTP) 모드에서는 AIVEN_TOKEN가 필요하지 않습니다. MCP 클라이언트가 각 요청과 함께 토큰을 Bearer 토큰으로 전송합니다.

프로덕션 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를 업데이트하는 것입니다.

다음 순서로 활성화하세요:

  1. Cloudflare Transform Rule — MCP 오리진으로 향하는 트래픽에 X-Edge-Auth(및 PG 도구에 사용되는 경우 X-Client-IP)를 설정하는 규칙을 추가합니다. 구성한 비밀 값을 기록해 두세요.
  2. MCP_EDGE_AUTH_SECRET — 이 환경 변수를 Transform Rule과 동일한 비밀로 설정하여 서버를 배포합니다. 지금은 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_type_get서비스 유형의 기본 및 사용 가능한 엔진 버전 가져오기
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_listKafka 토픽 목록
aiven_kafka_topic_createKafka 토픽 생성
aiven_kafka_topic_getKafka 토픽 정보 가져오기
aiven_kafka_topic_updateKafka 토픽 업데이트
aiven_kafka_topic_deleteKafka 토픽 삭제
aiven_kafka_topic_message_listKafka 토픽에서 메시지 읽기
aiven_kafka_topic_message_produceKafka 토픽에 메시지 생성
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_subjectsSchema Registry 주제 목록
aiven_kafka_schema_registry_subject_version_getSchema Registry 주제 버전 가져오기

PostgreSQL

도구설명
aiven_pg_service_available_extensions사용 가능한 확장 목록
aiven_pg_service_query_statistics쿼리 통계 가져오기
aiven_pg_bouncer_createPgBouncer 연결 풀 생성
aiven_pg_bouncer_updatePgBouncer 연결 풀 업데이트
aiven_pg_bouncer_deletePgBouncer 연결 풀 삭제
aiven_pg_read읽기 전용 SQL 쿼리 실행
aiven_pg_write쓰기 SQL 문 실행(INSERT, UPDATE, DELETE, CREATE TABLE 등)
aiven_pg_optimize_queryAI 기반 쿼리 최적화(EverSQL)

애플리케이션

도구설명
aiven_application_createContainerfile/Dockerfile 애플리케이션을 생성하고 초기 배포; 서비스가 이미 존재하면 409 반환
aiven_application_redeploy서비스 구성을 변경하지 않고 구성된 저장소에서 기존 애플리케이션 재빌드
aiven_vcs_integration_initializeGitHub 계정 연결을 위한 브라우저 기반 흐름 시작
aiven_vcs_integration_list연결된 VCS(GitHub) 계정 목록
aiven_vcs_integration_repository_listVCS 통합의 저장소 목록
aiven_vcs_integration_repository_branch_list저장소 브랜치 및 현재 커밋 SHA 목록
aiven_vcs_integration_repository_container_manifest_files_list후보 Containerfile, Dockerfile 및 Compose 매니페스트 찾기
aiven_vcs_integration_repository_scan_container_manifestContainerfile, Dockerfile 또는 Compose 파일의 지원되는 부분에서 후보 Aiven 서비스 구성 도출

문서

도구설명
aiven_docs_search자연어로 공식 Aiven 문서 검색. 호스팅 서버(https://mcp.aiven.live/mcp)에서만 사용 가능하며, 자체 호스팅 배포에서는 노출되지 않습니다.

기여

개발 환경 설정, 로컬 실행 및 새 도구 추가에 대해서는 CONTRIBUTING.md를 참조하세요.

라이선스

Apache-2.0