MCPcopy
hub / github.com/BerriAI/litellm

github.com/BerriAI/litellm @v1.90.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.90.0 ↗
76,796 symbols 360,099 edges 5,826 files 31,351 documented · 41%
README

🚅 LiteLLM

LiteLLM AI Gateway

Open Source AI Gateway for 100+ LLMs. Self-hosted. Enterprise-ready. Call any LLM in OpenAI format.

    <a href="https://render.com/deploy?repo=https://github.com/BerriAI/litellm" target="_blank" rel="nofollow"><img src="https://render.com/images/deploy-to-render-button.svg" alt="Deploy to Render" height="40"></a>
    <a href="https://railway.com/deploy/RhvhdC?referralCode=7mRv9K&utm_medium=integration&utm_source=template&utm_campaign=generic"><img src="https://railway.com/button.svg" alt="Deploy on Railway" height="40"></a>
    <a href="https://console.aws.amazon.com/cloudshell/home" target="_blank" rel="nofollow"><img src="https://github.com/BerriAI/litellm/raw/v1.90.0/github/deploy-on-aws.png" alt="Deploy on AWS" height="40"></a>
    <a href="https://ssh.cloud.google.com/cloudshell/editor?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2FBerriAI%2Flitellm&cloudshell_workspace=terraform%2Flitellm%2Fgcp%2Fexamples%2Fdefault&cloudshell_tutorial=TUTORIAL.md&cloudshell_image=gcr.io/ds-artifacts-cloudshell/deploystack_custom_image&shellonly=true" target="_blank" rel="nofollow"><img src="https://github.com/BerriAI/litellm/raw/v1.90.0/github/deploy-on-gcp.png" alt="Deploy on GCP" height="40"></a>

LiteLLM Proxy Server (AI Gateway) | Hosted Proxy | Enterprise Tier | Website

PyPI Version GitHub Stars Y Combinator W23 Whatsapp Discord Slack CodSpeed

LiteLLM AI Gateway


What is LiteLLM

LiteLLM is an open source AI Gateway that gives you a single, unified interface to call 100+ LLM providers — OpenAI, Anthropic, Gemini, Bedrock, Azure, and more — using the OpenAI format.

Use it as a Python SDK for direct library integration, or deploy the AI Gateway (Proxy Server) as a centralized service for your team or organization.

Jump to LiteLLM Proxy (LLM Gateway) Docs

Jump to Supported LLM Providers


Why LiteLLM

Managing LLM calls across providers gets complicated fast — different SDKs, auth patterns, request formats, and error types for every model. LiteLLM removes that friction:

  • Unified API — one interface for 100+ LLMs, no provider-specific SDK juggling
  • Drop-in OpenAI compatibility — swap providers without rewriting your code
  • Production-ready gateway — virtual keys, spend tracking, guardrails, load balancing, and an admin dashboard out of the box
  • 8ms P95 latency at 1k RPS (benchmarks)

OSS Adopters

Stripe image Google ADK Greptile OpenHands

Netflix

OpenAI Agents SDK

Features

LLMs - Call 100+ LLMs (Python SDK + AI Gateway)

All Supported Endpoints - /chat/completions, /responses, /embeddings, /images, /audio, /batches, /rerank, /a2a, /messages and more.

Python SDK

uv add litellm
from litellm import completion
import os

os.environ["OPENAI_API_KEY"] = "your-openai-key"
os.environ["ANTHROPIC_API_KEY"] = "your-anthropic-key"

# OpenAI
response = completion(model="openai/gpt-4o", messages=[{"role": "user", "content": "Hello!"}])

# Anthropic  
response = completion(model="anthropic/claude-sonnet-4-20250514", messages=[{"role": "user", "content": "Hello!"}])

AI Gateway (Proxy Server)

Getting Started - E2E Tutorial - Setup virtual keys, make your first request

uv tool install 'litellm[proxy]'
litellm --model gpt-4o
import openai

client = openai.OpenAI(api_key="anything", base_url="http://0.0.0.0:4000")
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}]
)

Docs: LLM Providers

Agents - Invoke A2A Agents (Python SDK + AI Gateway)

Supported Providers - LangGraph, Vertex AI Agent Engine, Azure AI Foundry, Bedrock AgentCore, Pydantic AI

Python SDK - A2A Protocol

from litellm.a2a_protocol import A2AClient
from a2a.types import SendMessageRequest, MessageSendParams
from uuid import uuid4

client = A2AClient(base_url="http://localhost:10001")

request = SendMessageRequest(
    id=str(uuid4()),
    params=MessageSendParams(
        message={
            "role": "user",
            "parts": [{"kind": "text", "text": "Hello!"}],
            "messageId": uuid4().hex,
        }
    )
)
response = await client.send_message(request)

AI Gateway (Proxy Server)

Step 1. Add your Agent to the AI Gateway

Step 2. Call Agent via A2A SDK

from a2a.client import A2ACardResolver, A2AClient
from a2a.types import MessageSendParams, SendMessageRequest
from uuid import uuid4
import httpx

base_url = "http://localhost:4000/a2a/my-agent"  # LiteLLM proxy + agent name
headers = {"Authorization": "Bearer sk-1234"}    # LiteLLM Virtual Key

async with httpx.AsyncClient(headers=headers) as httpx_client:
    resolver = A2ACardResolver(httpx_client=httpx_client, base_url=base_url)
    agent_card = await resolver.get_agent_card()
    client = A2AClient(httpx_client=httpx_client, agent_card=agent_card)

    request = SendMessageRequest(
        id=str(uuid4()),
        params=MessageSendParams(
            message={
                "role": "user",
                "parts": [{"kind": "text", "text": "Hello!"}],
                "messageId": uuid4().hex,
            }
        )
    )
    response = await client.send_message(request)

Docs: A2A Agent Gateway

MCP Tools - Connect MCP servers to any LLM (Python SDK + AI Gateway)

Python SDK - MCP Bridge

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
from litellm import experimental_mcp_client
import litellm

server_params = StdioServerParameters(command="python", args=["mcp_server.py"])

async with stdio_client(server_params) as (read, write):
    async with ClientSession(read, write) as session:
        await session.initialize()

        # Load MCP tools in OpenAI format
        tools = await experimental_mcp_client.load_mcp_tools(session=session, format="openai")

        # Use with any LiteLLM model
        response = await litellm.acompletion(
            model="gpt-4o",
            messages=[{"role": "user", "content": "What's 3 + 5?"}],
            tools=tools
        )

AI Gateway - MCP Gateway

Step 1. Add your MCP Server to the AI Gateway

Step 2. Call MCP tools via /chat/completions

curl -X POST 'http://0.0.0.0:4000/v1/chat/completions' \
  -H 'Authorization: Bearer sk-1234' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "gpt-4o",
    "messages": [{"role": "user", "content": "Summarize the latest open PR"}],
    "tools": [{
      "type": "mcp",
      "server_url": "litellm_proxy/mcp/github",
      "server_label": "github_mcp",
      "require_approval": "never"
    }]
  }'

Use with Cursor IDE

{
  "mcpServers": {
    "LiteLLM": {
      "url": "http://localhost:4000/mcp/",
      "headers": {
        "x-litellm-api-key": "Bearer sk-1234"
      }
    }
  }
}

Docs: MCP Gateway

Supported Providers (Website Supported Models | Docs)

Provider /chat/completions /messages /responses /embeddings /image/generations /audio/transcriptions /audio/speech /moderations /batches /rerank
Abliteration (abliteration)
AI/ML API (aiml)
AI21 (ai21)
AI21 Chat (ai21_chat)
Aleph Alpha
Amazon Nova
Anthropic (anthropic)
Anthropic Text (anthropic_text)
Anyscale
AssemblyAI (assemblyai)
Auto Router (auto_router)
AWS - Bedrock (bedrock)
AWS - Sagemaker (sagemaker)
Azure (azure)
Azure AI (azure_ai)
Azure Text (azure_text)
Baseten (baseten)
Bytez (bytez)
Cerebras (cerebras)
Clarifai (clarifai)
Cloudflare AI Workers (cloudflare)
Codestral (codestral)
Cohere (cohere)
Cohere Chat (cohere_chat)
CometAPI (cometapi)
CompactifAI (compactifai)
Custom (custom)
Custom OpenAI (custom_openai)
[Dashscope (`d

Extension points exported contracts — how you extend this code

HelpIconProps (Interface)
* A minimal help icon with tooltip for inline contextual help. * Similar to Linear's "?" icons that appear next to labe
ui/litellm-dashboard/src/components/HelpLink.tsx
UiSpendLogsParams (Interface)
* Optional query params for /spend/logs/ui - matches backend spend_management_endpoints.py
ui/litellm-dashboard/src/components/networking.tsx
PolicyRow (Interface)
One row per policy name; primaryPolicy is used for display and for Edit (FlowBuilder loads all versions)
ui/litellm-dashboard/src/components/policies/policy_table.tsx
TeamDisplayInfo (Interface)
Team info used for display in user detail view
ui/litellm-dashboard/src/components/view_users/user_info_view.tsx
ApiClient (Interface)
(no doc) [2 implementers]
ui/litellm-dashboard/src/lib/http/client.ts

Core symbols most depended-on inside this repo

get
called by 23699
ui/litellm-dashboard/src/lib/http/client.ts
i
called by 14893
litellm/proxy/_experimental/out/_next/static/chunks/0mc21v15f.-zo.js
append
called by 4498
litellm/proxy/swagger/swagger-ui-bundle.js
map
called by 4404
litellm/proxy/swagger/swagger-ui-bundle.js
concat
called by 3085
litellm/proxy/swagger/swagger-ui-bundle.js
debug
called by 3005
litellm/proxy/swagger/swagger-ui-bundle.js
s
called by 2818
litellm/proxy/_experimental/out/_next/static/chunks/0h-yh0a2d86_n.js
r
called by 1859
litellm/proxy/_experimental/out/_next/static/chunks/0h-yh0a2d86_n.js

Shape

Function 36,761
Method 28,795
Class 8,468
Route 1,710
Interface 1,050
Enum 11
Struct 1

Languages

Python77%
TypeScript23%
Go1%

Modules by API surface

litellm/proxy/swagger/swagger-ui-bundle.js4,347 symbols
litellm/proxy/_experimental/out/_next/static/chunks/0ys10755n8os_.js787 symbols
litellm/proxy/_experimental/out/_next/static/chunks/0nnx~7-7e5t~1.js622 symbols
litellm/proxy/_experimental/out/_next/static/chunks/04jvxoid~vpxj.js523 symbols
litellm/proxy/_experimental/out/_next/static/chunks/16.oisvgwzo8s.js511 symbols
litellm/proxy/_experimental/out/_next/static/chunks/0.4.bbjx7y007.js412 symbols
tests/test_litellm/integrations/test_opentelemetry.py362 symbols
litellm/proxy/proxy_server.py355 symbols
ui/litellm-dashboard/src/components/networking.tsx351 symbols
tests/test_litellm/proxy/management_endpoints/test_key_management_endpoints.py324 symbols
litellm/utils.py263 symbols
tests/test_litellm/proxy/management_endpoints/test_ui_sso.py255 symbols

Dependencies from manifests, versioned

github.com/fugue-labs/gollemv0.1.0 · 1×
@ant-design/icons5.6.1 · 1×
@anthropic-ai/sdk0.92.0 · 1×
@eslint/js9.39.2 · 1×
@google-cloud/vertexai1.12.0 · 1×
@google/generative-ai0.24.1 · 1×
@headlessui/tailwindcss0.2.2 · 1×
@heroicons/react1.0.6 · 1×
@playwright/test1.58.1 · 1×
@tailwindcss/forms0.5.11 · 1×
@tanstack/react-pacer0.2.0 · 1×
@tanstack/react-query5.100.7 · 1×

Datastores touched

dbDatabase · 1 repos
litellmDatabase · 1 repos
testdbDatabase · 1 repos
(mysql)Database · 1 repos
dbnameDatabase · 1 repos
litellm_dbDatabase · 1 repos
mydbDatabase · 1 repos
newDatabase · 1 repos

For agents

$ claude mcp add litellm \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact