---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "litellm_mcp_server Resource - terraform-provider-litellm"
subcategory: ""
description: |-
  Manages an MCP (Model Context Protocol) server in LiteLLM.
---

# litellm_mcp_server (Resource)

Manages an MCP (Model Context Protocol) server in LiteLLM. MCP servers provide tools and resources that can be used by LLMs through the LiteLLM proxy.

## Example Usage

### Basic HTTP MCP Server

```terraform
resource "litellm_mcp_server" "github_server" {
  server_name = "github-mcp-server"
  alias       = "github"
  description = "GitHub MCP server for repository operations"
  url         = "https://api.github.com/mcp"
  transport   = "http"
  auth_type   = "bearer"
  
  mcp_access_groups = ["dev_team", "devops_team"]
}
```

### SSE MCP Server with Comprehensive Cost Tracking

```terraform
resource "litellm_mcp_server" "zapier_server" {
  server_name  = "zapier-automation"
  alias        = "zapier"
  description  = "Zapier MCP server for workflow automation"
  url          = "https://actions.zapier.com/mcp/sk-xxxxx/sse"
  transport    = "sse"
  auth_type    = "bearer"
  spec_version = "2024-11-05"
  
  mcp_access_groups = ["automation_team", "marketing_team"]
  
  mcp_info {
    server_name = "Zapier Integration Server"
    description = "Provides automation tools through Zapier's MCP interface"
    logo_url    = "https://zapier.com/assets/images/zapier-logo.png"
    
    mcp_server_cost_info {
      default_cost_per_query = 0.01
      
      tool_name_to_cost_per_query = {
        "send_email"           = 0.05
        "create_document"      = 0.03
        "update_spreadsheet"   = 0.02
        "post_to_slack"        = 0.01
        "create_calendar_event" = 0.04
      }
    }
  }
}
```

### Stdio MCP Server for Local Development

```terraform
resource "litellm_mcp_server" "local_dev_server" {
  server_name = "local-development-tools"
  alias       = "local-dev"
  description = "Local MCP server for development tools"
  url         = "stdio://local-dev"
  transport   = "stdio"
  auth_type   = "none"
  
  command = "python3"
  args    = ["/opt/mcp-servers/dev-tools/server.py", "--verbose"]
  
  env = {
    "PYTHONPATH"    = "/opt/mcp-servers/dev-tools"
    "DEBUG"         = "true"
    "LOG_LEVEL"     = "info"
    "WORKSPACE_DIR" = "/workspace"
  }
  
  mcp_access_groups = ["local_developers"]
  
  mcp_info {
    server_name = "Development Tools"
    description = "Local development utilities and tools"
    
    mcp_server_cost_info {
      default_cost_per_query = 0.0  # Free for local development
    }
  }
}
```

### Enterprise MCP Server with Full Configuration

```terraform
resource "litellm_mcp_server" "enterprise_api_server" {
  server_name  = "enterprise-api-gateway"
  alias        = "enterprise"
  description  = "Enterprise API gateway MCP server"
  url          = "https://api.enterprise.com/mcp/v1"
  transport    = "http"
  auth_type    = "bearer"
  spec_version = "2024-11-05"
  
  mcp_access_groups = [
    "enterprise_users",
    "api_consumers",
    "integration_team"
  ]
  
  mcp_info {
    server_name = "Enterprise API Gateway"
    description = "Provides access to enterprise APIs and services"
    logo_url    = "https://enterprise.com/logo.png"
    
    mcp_server_cost_info {
      default_cost_per_query = 0.10
      
      tool_name_to_cost_per_query = {
        "query_database"       = 0.25
        "generate_report"      = 0.50
        "send_notification"    = 0.05
        "create_user"          = 0.15
        "update_permissions"   = 0.20
        "audit_log_query"      = 0.30
      }
    }
  }
}
```

## Argument Reference

The following arguments are supported:

### Required Arguments

* `server_name` - (Required) Name of the MCP server.
* `url` - (Required) URL of the MCP server. For stdio transport, use `stdio://` prefix.
* `transport` - (Required) Transport type for the MCP server. Valid values: `http`, `sse`, `stdio`.

### Optional Arguments

* `alias` - (Optional) Alias for the MCP server. Used for easier reference.
* `description` - (Optional) Description of the MCP server.
* `spec_version` - (Optional) MCP specification version. Defaults to `2024-11-05`.
* `auth_type` - (Optional) Authentication type. Valid values: `none`, `bearer`, `basic`. Defaults to `none`.
* `mcp_access_groups` - (Optional) List of access groups that can use this MCP server.
* `command` - (Optional) Command to run for stdio transport.
* `args` - (Optional) List of arguments for the command (stdio transport only). Do not pass secrets as arguments; args are shown in plans, stored unencrypted in state, and visible in the server's process list.
* `env` - (Optional, Sensitive) Map of environment variables for the command (stdio transport only). Hidden from plan output but still stored unencrypted in state; secure your state backend when configuring tokens here.

### MCP Info Block

The `mcp_info` block supports:

* `server_name` - (Optional) Server name in MCP info.
* `description` - (Optional) Description in MCP info.
* `logo_url` - (Optional) Logo URL for the MCP server.

#### MCP Server Cost Info Block

The `mcp_server_cost_info` block within `mcp_info` supports:

* `default_cost_per_query` - (Optional) Default cost per query for all tools.
* `tool_name_to_cost_per_query` - (Optional) Map of specific tool names to their cost per query.

## Attribute Reference

In addition to all arguments above, the following attributes are exported:

* `server_id` - Unique identifier for the MCP server.
* `created_at` - Timestamp when the server was created.
* `created_by` - User who created the server.
* `updated_at` - Timestamp when the server was last updated.
* `updated_by` - User who last updated the server.
* `status` - Current status of the MCP server.
* `last_health_check` - Timestamp of the last health check.
* `health_check_error` - Error message from the last health check, if any.

## Import

MCP servers can be imported using their server ID:

```shell
terraform import litellm_mcp_server.example server-id-here
```

## Transport Types

### HTTP Transport
- Standard HTTP/HTTPS communication
- Suitable for REST API-based MCP servers
- Supports authentication via `auth_type`

### SSE (Server-Sent Events) Transport
- Real-time streaming communication
- Ideal for servers that need to push updates
- Commonly used with services like Zapier

### Stdio Transport
- Standard input/output communication
- Used for local MCP servers or command-line tools
- Requires `command` and optionally `args` and `env`

## Access Control

Use `mcp_access_groups` to control which teams or users can access the MCP server tools. This integrates with LiteLLM's permission management system.

## Cost Tracking

Configure cost tracking through the `mcp_info.mcp_server_cost_info` block to monitor and control spending on MCP tool usage.
