A Model Context Protocol (MCP) server for Aiven.
This provides access to the Aiven for PostgreSQL, Kafka, ClickHouse, Valkey and OpenSearch services running in Aiven and the wider Aiven ecosystem of native connectors. Enabling LLMs to build full stack solutions for all use-cases.
-
list_projects
- List all projects on your Aiven account.
-
list_services
- List all services in a specific Aiven project.
-
get_service_details
- Get the detail of your service in a specific Aiven project.
-
Open the Claude Desktop configuration file located at:
- On macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- On Windows:
%APPDATA%/Claude/claude_desktop_config.json
- On macOS:
-
Add the following:
{
"mcpServers": {
"mcp-aiven": {
"command": "uv",
"args": [
"--directory",
"$REPOSITORY_DIRECTORY",
"run",
"--with-editable",
"$REPOSITORY_DIRECTORY",
"--python",
"3.13",
"mcp-aiven"
],
"env": {
"AIVEN_BASE_URL": "https://api.aiven.io",
"AIVEN_TOKEN": "$AIVEN_TOKEN"
}
}
}
}
Update the environment variables:
$REPOSITORY_DIRECTORY
to point to the folder cointaining the repositoryAIVEN_TOKEN
to the Aiven login token.
-
Locate the command entry for
uv
and replace it with the absolute path to theuv
executable. This ensures that the correct version ofuv
is used when starting the server. On a mac, you can find this path usingwhich uv
. -
Restart Claude Desktop to apply the changes.
-
Navigate to Cursor -> Settings -> Cursor Settings
-
Select "MCP Servers"
-
Add a new server with
- Name:
mcp-aiven
- Type:
command
- Command:
uv --directory $REPOSITORY_DIRECTORY run --with-editable $REPOSITORY_DIRECTORY --python 3.13 mcp-aiven
- Name:
Where $REPOSITORY_DIRECTORY
is the path to the repository. You might need to add the AIVEN_BASE_URL
, AIVEN_PROJECT_NAME
and AIVEN_TOKEN
as variables
- Add the following variables to a
.env
file in the root of the repository.
AIVEN_BASE_URL=https://api.aiven.io
AIVEN_TOKEN=$AIVEN_TOKEN
-
Run
uv sync
to install the dependencies. To installuv
follow the instructions here. Then dosource .venv/bin/activate
. -
For easy testing, you can run
mcp dev mcp_aiven/mcp_server.py
to start the MCP server.
The following environment variables are used to configure the Aiven connection:
AIVEN_BASE_URL
: The Aiven API urlAIVEN_TOKEN
: The authentication token
This section outlines key developer responsibilities and security considerations when working with Model Context Protocols (MCPs) and AI Agents within this system. Self-Managed MCPs:
- Customer Responsibility: MCPs are executed within the user's environment, not hosted by Aiven. Therefore, users are solely responsible for their operational management, security, and compliance, adhering to the shared responsibility model. (https://aiven.io/responsibility-matrix)
- Deployment and Maintenance: Developers must handle all aspects of MCP deployment, updates, and maintenance.
AI Agent Security:
- Permission Control: Access and capabilities of AI Agents are strictly governed by the permissions granted to the API token used for their authentication. Developers must meticulously manage these permissions.
- Credential Handling: Be acutely aware that AI Agents may require access credentials (e.g., database connection strings, streaming service tokens) to perform actions on your behalf. Exercise extreme caution when providing such credentials to AI Agents.
- Risk Assessment: Adhere to your organization's security policies and conduct thorough risk assessments before granting AI Agents access to sensitive resources.
API Token Best Practices:
- Principle of Least Privilege: Always adhere to the principle of least privilege. API tokens should be scoped and restricted to the minimum permissions necessary for their intended function.
- Token Management: Implement robust token management practices, including regular rotation and secure storage.
Key Takeaways:
- Users retain full control and responsibility for MCP execution and security.
- AI Agent permissions are directly tied to API token permissions.
- Exercise extreme caution when providing credentials to AI Agents.
- Strictly adhere to the principle of least privilege when managing API tokens.