Model Context Protocol (MCP)
Early Access
Try our newest feature! Only available through reach out. Contact us to join the early access program and get priority support.
Unizo offers an MCP server that integrates public cloud infrastructure platforms with any LLM provider supporting the MCP protocol. This enables your AI agent to perform resource management, analyze infrastructure patterns, and automate cloud operations across AWS, Azure, Google Cloud, and other providers via a single MCP server.
Supported Tools & Use Cases
The following tools are available in the Key Management MCP Server:
Tool Name | Description |
---|---|
list_services | Get list of available key management services |
list_integrations | Get integrations for a specific key management service |
list_vault_configs | Browse and search vault configurations with filtering options |
get_vault_config_details | Retrieve comprehensive vault configuration information |
create_vault_config | Create a new vault configuration |
list_services
Get list of available key management services
Parameters: None
Returns: List of available key management services
Example Response:
[
{ "name": "hashicorp" },
{ "name": "azure" },
{ "name": "aws" },
{ "name": "cyberark" },
{ "name": "thycotic" }
]
list_integrations
Get integrations for a specific key management service
Parameters:
service
(string, required): Name of the key management service (e.g., "hashicorp", "azure", "aws")
Returns: List of integrations available for the specified service
Example Response:
[
{
"id": "integration-km-123",
"name": "Production Vault Integration"
},
{
"id": "integration-km-456",
"name": "Development Key Store"
}
]
list_vault_configs
Browse and search vault configurations with filtering options
Parameters:
integration_id
(string, required): Unique identifier for the integrationoffset
(integer, optional): Number of items to skip (default: 0)limit
(integer, optional): Maximum number of items to return (default: 20, max: 100)sort
(string, optional): Sort criteria (e.g., 'name', '-createdDateTime', 'name,-createdAt')
Returns: Paginated list of vault configurations with filtering applied
Example Response:
{
"status": "success",
"message": "Retrieved 12 vault configurations",
"data": {
"vault_configs": [
{
"id": "vault-config-789",
"name": "production-secrets",
"value": "vault://production/secrets",
"changeLog": {
"createdDateTime": "2024-08-15T09:30:00Z",
"lastUpdatedDateTime": "2024-09-01T14:20:00Z",
"createdBy": {
"id": "user-123",
"firstName": "Alice",
"lastName": "Johnson",
"avatar": {
"small": "/avatars/user-123-small.png"
}
},
"lastUpdatedBy": {
"id": "user-456",
"firstName": "Bob",
"lastName": "Smith"
}
}
},
{
"id": "vault-config-790",
"name": "api-keys-dev",
"value": "vault://development/api-keys",
"changeLog": {
"createdDateTime": "2024-09-02T11:15:00Z",
"lastUpdatedDateTime": "2024-09-02T11:15:00Z",
"createdBy": {
"id": "user-789",
"firstName": "Carol",
"lastName": "Wilson"
}
}
}
],
"pagination": {
"total": 12,
"offset": 0,
"limit": 20,
"next": null,
"previous": null
},
"total_count": 12
}
}
get_vault_config_details
Get detailed information about a specific vault configuration
Parameters:
integration_id
(string, required): Unique identifier for the integrationvault_config_id
(string, required): Unique identifier of the vault configuration
Returns: Comprehensive vault configuration information
Example Response:
{
"status": "success",
"message": "Retrieved vault configuration details for vault-config-789",
"data": {
"vault_config": {
"id": "vault-config-789",
"name": "production-secrets",
"value": "vault://production/secrets",
"changeLog": {
"createdDateTime": "2024-08-15T09:30:00Z",
"lastUpdatedDateTime": "2024-09-01T14:20:00Z",
"createdBy": {
"href": "/users/user-123",
"id": "user-123",
"firstName": "Alice",
"lastName": "Johnson",
"avatar": {
"original": "/avatars/user-123-original.png",
"xSmall": "/avatars/user-123-xs.png",
"small": "/avatars/user-123-small.png",
"medium": "/avatars/user-123-medium.png",
"large": "/avatars/user-123-large.png"
}
},
"lastUpdatedBy": {
"href": "/users/user-456",
"id": "user-456",
"firstName": "Bob",
"lastName": "Smith",
"avatar": {
"small": "/avatars/user-456-small.png"
}
}
}
}
}
}
create_vault_config
Create a new vault configuration
Parameters:
integration_id
(string, required): Unique identifier for the integrationname
(string, required): Name of the vault configuration
Returns: Details of the newly created vault configuration
Example Response:
{
"status": "success",
"message": "Created vault configuration: database-credentials",
"data": {
"vault_config": {
"id": "vault-config-791",
"name": "database-credentials",
"value": "vault://production/database-creds",
"changeLog": {
"createdDateTime": "2024-09-10T16:45:00Z",
"lastUpdatedDateTime": "2024-09-10T16:45:00Z",
"createdBy": {
"id": "user-current",
"firstName": "Current",
"lastName": "User"
}
}
}
}
}
Installation
Prerequisites
- A Unizo API key
- An active Public Cloud (Infra) integration (Azure, AWS, Heroku, Google Cloud Platform)
- Node.js v20 or higher
MCP Configuration
Here is an example configuration for setting up the Unizo Public Cloud (Infra) MCP server:
{
"mcpServers": {
"unizo-public-cloud": {
"command": "npx",
"args": [
"mcp-remote",
"http://api.unizo.ai/mcp/public-cloud",
"--allow-http",
"--header",
"apikey:${UNIZO_API_KEY}"
],
"env": {
"UNIZO_API_KEY": "your_api_key"
}
}
}
}
Client Setup
For detailed setup instructions with specific AI clients:
Environment Variables
The following environment variables are required:
UNIZO_API_KEY
: Your Unizo API key Your Unizo API key
Error Handling
All tools return errors in a consistent format:
{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource 'vm-abc123' not found"
}
}
Common Error Codes
INTEGRATION_NOT_FOUND
: Invalid cloud integration IDRESOURCE_NOT_FOUND
: Specified resource not found or inaccessibleREGION_NOT_SUPPORTED
: Region is not available for the integrationINVALID_CONFIGURATION
: Provided configuration is invalid or unsupportedUNAUTHORIZED
: Invalid API key or insufficient permissionsRATE_LIMIT_EXCEEDED
: API quota exceeded