内容
# LiteLLM MCP 服务器
LiteLLM 操作的 MCP 服务器。启动时,它会读取 LiteLLM 代理的 OpenAPI 文档,并为每个 LiteLLM 端点注册一个 FastMCP 工具。
## 功能特点
- **完整的 LiteLLM API 覆盖**: 注册 `GET /openapi.json` 中的所有操作。
- **版本感知工具**: 工具名称来自 LiteLLM 的 `operationId` 值,因此公开的工具遵循正在运行的 LiteLLM 版本。
- **发现助手**: 包括用于列出/搜索已注册的 LiteLLM 工具和检查个别端点映射的工具。
- **基于环境的配置**: 从环境变量中读取 LiteLLM URL 和主密钥。
## 前置条件
- Python 3.10+
- 推荐使用 `uv` 包管理器
- 可访问的 LiteLLM 代理
- LiteLLM 主密钥或管理员密钥
## 安装
```bash
uv sync
```
## 配置
服务器从环境变量中读取 LiteLLM 连接设置。它在启动期间获取 `${LITELLM_URL}/openapi.json`。
- `LITELLM_URL`: LiteLLM 代理基本 URL,例如 `http://localhost:4000`。
- `LITELLM_MASTER_KEY`: LiteLLM 主密钥或管理员密钥。
- `LITELLM_TIMEOUT_SECONDS`: 可选的请求超时时间(秒)。默认为 `30`。
## 使用
### 运行服务器
```bash
export LITELLM_URL=http://localhost:4000
export LITELLM_MASTER_KEY=sk-...
uv run litellm-mcp
```
### 使用 Docker
```bash
docker build -t litellm-mcp .
docker run -i --rm \
-e LITELLM_URL=http://host.docker.internal:4000 \
-e LITELLM_MASTER_KEY=sk-... \
litellm-mcp
```
### Claude 桌面配置
```json
{
"mcpServers": {
"litellm": {
"command": "<uv PATH>",
"args": [
"--directory",
"<litellm-mcp PATH>",
"run",
"litellm-mcp"
],
"env": {
"LITELLM_URL": "http://localhost:4000",
"LITELLM_MASTER_KEY": "sk-..."
}
}
}
}
```
## 工具名称
工具名称根据 LiteLLM OpenAPI 的 `operationId` 值生成。
LiteLLM v1.84.8 示例:
| LiteLLM 端点 | MCP 工具 |
|------------------|----------|
| `GET /health/readiness` | `health_readiness_health_readiness_get` |
| `GET /key/list` | `list_keys_key_list_get` |
| `GET /key/info` | `info_key_fn_key_info_get` |
| `GET /spend/logs/v2` | `ui_view_spend_logs_spend_logs_v2_get` |
| `POST /chat/completions` | `chat_completion_chat_completions_post` |
始终注册两个辅助工具:
- `list_litellm_openapi_tools`: 搜索/列出动态注册的端点工具。
- `get_litellm_openapi_tool`: 显示一个端点工具的 HTTP 方法、路径和参数映射。
## 项目结构
```text
src/litellm_mcp/
├── configs/ # 环境配置
├── connections/ # LiteLLM HTTP 客户端单例
├── tools/ # OpenAPI 驱动的 FastMCP 工具注册
└── main.py # 入口点和工具注册
```
## 安全注意事项
`LITELLM_MASTER_KEY` 可以读取和修改敏感的 LiteLLM 状态。由于此服务器公开了运行代理中的每个 LiteLLM 端点,包括修改管理员端点,因此请优先在本地或受信任的网络中运行它。