Aiven MCP Server
OfficialThe Aiven MCP Server allows you to interact with your Aiven account and services through these key functions:
List Projects: Retrieve all projects associated with your Aiven account.
List Services: Get a list of all services (like PostgreSQL, Kafka, etc.) within a specified project (requires
project_name).Get Service Details: Obtain detailed information about a specific service in a project (requires both
project_nameandservice_name).
Provides access to Aiven for ClickHouse services, allowing interaction with analytical databases hosted on the Aiven platform.
Enables working with Aiven for OpenSearch services, providing tools to interact with search and analytics capabilities.
Enables interaction with Aiven for PostgreSQL services, allowing access to database resources hosted on the Aiven platform.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Aiven MCP Serverlist all my Aiven projects"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Aiven MCP Server
A Model Context Protocol (MCP) server for the Aiven cloud data platform.
Manage PostgreSQL, Apache Kafka, applications, and other Aiven services directly from AI assistants like Claude, Cursor, and VS Code Copilot.
Use with care. This MCP server can create, modify, and delete Aiven services and data on your behalf. AI agents may execute destructive actions (dropping databases, deleting services, producing messages) based on their interpretation of your prompts. You are fully responsible for the actions taken through this tool.
Permissions: Access is governed by the Aiven user permissions associated with the authenticated account. The MCP server can only perform actions that your Aiven user is allowed to do.
AI Agent Security: AI agents may need access credentials (database connection strings, streaming tokens) to act on your behalf. Review what your agent is doing, especially in production environments. Follow your organization's security policies and do a risk assessment before giving AI agents access to sensitive resources.
Quick Start
Option 1: Remote (hosted by Aiven)
The MCP server is hosted at https://mcp.aiven.live/mcp. Your MCP client will prompt you to authorize on Aiven.
Claude Code
claude mcp add --scope user --transport http aiven-mcp "https://mcp.aiven.live/mcp"Cursor
Or manually add to Cursor MCP settings:
{
"mcpServers": {
"aiven-mcp": {
"url": "https://mcp.aiven.live/mcp"
}
}
}VS Code / Copilot
Add to .vscode/mcp.json in your workspace:
{
"servers": {
"aiven-mcp": {
"type": "http",
"url": "https://mcp.aiven.live/mcp"
}
}
}Read-Only Mode (Remote)
Enable read-only mode by adding ?read_only=true to the URL. All write operations will be excluded from the MCP:
{
"mcpServers": {
"aiven-mcp": {
"url": "https://mcp.aiven.live/mcp?read_only=true"
}
}
}Scoped Tools (Remote)
Reduce the tool surface exposed to your AI agent by adding ?services_scope= to the URL. Useful when you only work with a subset of Aiven services and want to keep the agent's context focused. Combine values with commas. core (project/service discovery) is always included implicitly.
Valid scopes: all, core, pg, kafka, application, integrations. Use all to explicitly load every tool (same as omitting the param). all cannot be combined with other scopes.
{
"mcpServers": {
"aiven-mcp": {
"url": "https://mcp.aiven.live/mcp?services_scope=kafka"
}
}
}You can also combine with read_only:
https://mcp.aiven.live/mcp?services_scope=pg&read_only=trueWrite Exceptions in Read-Only Mode (Remote)
When read_only=true, add ?write_allowlist= to re-enable specific write tools while keeping
everything else read-only. Useful when you want mostly-read access but still need to allow one
write action, for example creating Kafka topics. Combine multiple tool names with commas. Ignored
when read_only is not enabled.
https://mcp.aiven.live/mcp?read_only=true&write_allowlist=aiven_kafka_topic_createMarketplace Customers (Remote)
If you subscribed to Aiven through a cloud marketplace, add your marketplace as a path segment so sign-in uses the correct console:
Marketplace | Path segment |
AWS Marketplace |
|
Azure Marketplace |
|
Google Cloud Marketplace |
|
{
"mcpServers": {
"aiven-mcp": {
"url": "https://mcp.aiven.live/mcp/<marketplace>"
}
}
}The path segment combines with the query parameters above, for example https://mcp.aiven.live/mcp/gcp?services_scope=pg&read_only=true.
Option 2: stdio (local)
Run the server locally as a child process of your MCP client. Requires Node.js 18+.
You must provide your Aiven API token via the AIVEN_TOKEN environment variable. Create a token here.
Claude Code
claude mcp add --scope user aiven-mcp -e AIVEN_TOKEN=your-token-here -- npx -y mcp-aivenCursor, VS Code -- add to your MCP client config:
{
"mcpServers": {
"aiven-mcp": {
"command": "npx",
"args": ["-y", "mcp-aiven"],
"env": {
"AIVEN_TOKEN": "your-token-here"
}
}
}
}Config file locations:
Cursor: Cursor Settings > MCP Servers
VS Code:
.vscode/mcp.jsonin your workspace
Option 3: Local development
Run a local build of the server (useful for development and testing):
pnpm install && pnpm generate:api-types && pnpm generate && pnpm build && AIVEN_TOKEN="<YOUR_TOKEN>" MCP_TRANSPORT="http" PORT=3000 node dist/index.jsThe server listens on port 3000 by default. Connect your MCP client to http://localhost:3000/mcp.
To point a remote deployment at a custom host (e.g. your local build), set MCP_HOST:
MCP_HOST=http://localhost:3000 node dist/index.jsEnvironment Variables
Variable | Required | Default | Description |
| stdio only | -- | Aiven API token (create one here) |
| No |
| Set to |
| No | -- | Comma-separated scopes to expose (e.g. |
| No |
| Set to |
| No | -- | Comma-separated tool names to re-enable while |
| No |
| Override the OAuth protected resource host |
| No |
| Set to |
| No |
| Max requests per window on |
| No |
| Window length in milliseconds for |
| No |
| Set to |
| When | -- | Shared secret; must match the value Cloudflare injects as |
In remote (HTTP) mode, AIVEN_TOKEN is not needed. Your MCP client sends your token as a Bearer token with each request.
Production HTTP traffic is rate-limited in two layers: Cloudflare enforces a per-client-IP limit (configured in the Cloudflare dashboard), and this server enforces MCP_HTTP_RATE_LIMIT_* per bearer token on POST /mcp.
Edge protection rollout
When EXTRA_PROTECTION=true, any mismatch between MCP_EDGE_AUTH_SECRET and the value Cloudflare injects as X-Edge-Auth causes every request to return 403 (except GET /health). Both values are environment/config on opposite sides of the wire, so the only recovery path is to fix the secret and redeploy or update Cloudflare.
Enable in this order:
Cloudflare Transform Rule — Add a rule that sets
X-Edge-Auth(and, if used for PG tools,X-Client-IP) on traffic to the MCP origin. Note the secret value you configure.MCP_EDGE_AUTH_SECRET— Deploy the server with this env var set to the same secret as the Transform Rule. LeaveEXTRA_PROTECTIONunset orfalsefor now; verify the origin still accepts traffic.EXTRA_PROTECTION=true— Enable only after steps 1–2 are live and matched. Confirm a normal MCP request succeeds and direct origin access withoutX-Edge-Authis rejected.Secret rotation — Update Cloudflare and
MCP_EDGE_AUTH_SECRETtogether (or briefly setEXTRA_PROTECTION=false), redeploy, then re-enable. Never rotate one side alone while the flag is on.
If EXTRA_PROTECTION=true at startup and MCP_EDGE_AUTH_SECRET is missing, the process exits immediately with an error.
While rejections continue, the server logs a misconfig warning at most once every 15 minutes (reset after a request with valid X-Edge-Auth), so a secret mismatch is visible in logs without one line per rejected request.
Related MCP server: MCP TapData Server
Tools
Core
Tool | Description |
| List projects |
| Get project details |
| List cloud platforms for a project |
| List VPCs for a project |
| List services |
| List plans with cloud availability |
| Get pricing for a plan in a specific cloud |
| Create a service |
| Get service information |
| Update a service (plan, config, power state) |
| Fetch metrics for managed data services |
| Fetch metrics for application services |
| Get service log entries |
| Fetch current queries for a service |
| Get project event log entries |
Kafka
Tool | Description |
| List Kafka topics |
| Create a Kafka topic |
| Get Kafka topic info |
| Update a Kafka topic |
| Delete a Kafka topic |
| Read messages from a Kafka topic |
| Produce messages into a Kafka topic |
| List available connector types |
| List running connectors |
| Create a connector |
| Edit a connector |
| Get connector status |
| Pause a connector |
| Resume a connector |
| Restart a connector |
| Delete a connector |
| List Schema Registry subjects |
| Get Schema Registry subject version |
PostgreSQL
Tool | Description |
| List available extensions |
| Fetch query statistics |
| Create a PgBouncer connection pool |
| Update a PgBouncer connection pool |
| Delete a PgBouncer connection pool |
| Run a read-only SQL query |
| Run a write SQL statement (INSERT, UPDATE, DELETE, CREATE TABLE, etc.) |
| AI-powered query optimization (EverSQL) |
Applications
Tool | Description |
| Deploy a Dockerized application to Aiven |
| Rebuild and redeploy an existing application |
| List connected VCS (GitHub) accounts |
| List repositories for a VCS integration |
Documentation
Tool | Description |
| Search the official Aiven documentation in natural language. Only available on the hosted server ( |
Contributing
See CONTRIBUTING.md for development setup, running locally, and adding new tools.
License
Available Tools
3 toolsget_service_detailsD
| Name | Required | Description | Default |
|---|---|---|---|
| project_name | Yes | ||
| service_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsD
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesD
| Name | Required | Description | Default |
|---|---|---|---|
| project_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v1.0.0- First observed
get_service_details - First observed
list_projects - First observed
list_services
TDQS
Each tool has a clearly distinct purpose: get_service_details retrieves specific service information, list_projects enumerates projects, and list_services enumerates services. There is no overlap in functionality, making tool selection straightforward for an agent.
All tools follow a consistent verb_noun pattern (get_service_details, list_projects, list_services) with clear, descriptive names. The naming convention is uniform throughout the set.
With only 3 tools, the server feels under-scoped for managing Aiven services, which typically involve operations like create, update, delete, or configure services. The count is too low for comprehensive coverage of the domain.
The tool set is severely incomplete for a service management domain; it lacks essential CRUD operations (e.g., create_service, update_service, delete_service) and other key actions like managing configurations or monitoring, leaving significant gaps that will hinder agent workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables Large Language Models to seamlessly interact with ClickHouse databases, supporting resource listing, schema retrieval, and query execution.2MIT

MCP TapData Serverofficial
FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables Large Language Models to access and interact with database connections, including viewing schemas and performing CRUD operations on connected databases.-- AlicenseNot gradedqualityDmaintenanceA server that implements the Model Context Protocol, providing a standardized way to connect AI models to different data sources and tools.1511MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides AI models with structured access to external data and services, acting as a bridge between AI assistants and applications, databases, and APIs in a standardized, secure way.2-
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Aiven-Open/mcp-aiven'
If you have feedback or need assistance with the MCP directory API, please join our Discord server