MCP 서버
UberLLM은 https://api.uberllm.dev/mcp에 위치한 MCP 서버입니다. 여기에 연결된 에이전트는 HTTP 호출을 작성할 필요 없이 모델을 나열하고, 요청 가격을 책정하고, 이미지를 만들고 편집하며, 비디오를 만들고, 잔액을 확인할 수 있습니다.
이것은 공식 MCP 레지스트리]에 dev.uberllm/mcp로 등록되어 있으므로, 레지스트리를 읽는 클라이언트는 이름으로 추가할 수 있습니다.
Streamable HTTP 전송을 사용합니다. /v1에 사용하는 것과 동일한 API key로 로그인하세요. 이 API key는 Authorization: Bearer ull_...으로 전송됩니다. 도구 호출은 API에 대한 동일한 요청과 똑같이 요금이 청구되고, 제한되며, 거부됩니다: 동일한 가격, 동일한 키당 지출 한도, 그리고 실패한 요청에는 비용이 들지 않습니다.
Claude 코드
$KEY을(를) API key로 바꾸거나, 먼저 셸에서 KEY를 설정하세요:
claude mcp add --transport http uberllm https://api.uberllm.dev/mcp --header "Authorization: Bearer $KEY"
모든 프로젝트에서 사용하려면 --scope user을(를) 추가하세요. 연결되었는지 확인하려면 claude mcp list를 실행하세요.
Claude Desktop
Claude Desktop은 키를 통해 원격 서버에 연결합니다. mcp-remote (Node.js 필요). 설정 → 개발자 → 구성 편집을 열고 다음을 추가하세요:
{
"mcpServers": {
"uberllm": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.uberllm.dev/mcp", "--header", "Authorization:${UBERLLM_AUTH}"],
"env": { "UBERLLM_AUTH": "Bearer ull_your_key_here" }
}
}
}
헤더는 의도적으로 : 뒤에 공백이 없습니다. Windows에서 Claude Desktop은 args 내의 공백을 인용 부호로 묶지 않습니다. 저장 후 Claude Desktop을 다시 시작하세요.
Cursor와 다른 클라이언트
mcpServers 파일을 읽는 클라이언트들(예를 들어, Cursor의 ~/.cursor/mcp.json)은 다음을 받습니다:
{
"mcpServers": {
"uberllm": {
"url": "https://api.uberllm.dev/mcp",
"headers": { "Authorization": "Bearer ull_your_key_here" }
}
}
}
도구
| 도구 | 기능 | 지출 여부 |
|---|---|---|
list_models |
지금 바로 호출할 수 있는 모델과 가격입니다. type은 chat, image, video 또는 music입니다. search은 ID나 이름에 해당 단어가 포함된 모델을 유지합니다. |
아니요 |
get_model |
하나의 모델: 해당 모델의 가격과, 미디어 모델의 경우 parameters, 즉 요청이 사용하는 옵션의 JSON Schema입니다. |
아니요 |
quote |
이미지, 비디오, 음악 또는 텍스트 음성 변환 요청을 모델에 대해 확인하고, 아무것도 만들지 않고 가격을 책정합니다. 목록에 있는 가격인 cost_usd과, 실행 중 보류되는 금액이자 최대 청구 금액인 max_cost_usd을 반환합니다. |
아니요 |
generate_image |
프롬프트에서 그림을 만듭니다. 링크와 usage.cost_usd을 반환합니다. return_image: true를 사용하면 그림도 응답으로 돌아옵니다. |
예 |
edit_image |
프롬프트에 따라 image_url의 그림(또는 input_images의 그림들)을 변경합니다. ID가 -edit로 끝나는 모델과 같은 편집 모델을 사용하세요. |
예 |
start_video |
비디오를 시작하고 작업을 반환합니다. 재시도가 두 번째 비디오를 시작하거나 비용을 지불하지 않도록 idempotency_key을 보내세요. |
예, 비디오가 만들어질 때 |
get_job |
비디오 또는 음악 작업: 상태, 진행 상황 및 성공 시 파일 링크와 비용. | 아니요 |
wait_job |
작업이 끝날 때까지 최대 timeout_seconds(최대 50)까지 기다립니다. 만약 done가 false라면, 다시 호출하세요. |
아니요 |
balance |
현재 지출할 수 있는 금액과, 아직 실행 중인 요청 및 작업에 대해 보류된 금액(미국 달러 기준)입니다. | 아니요 |
모델이 parameters 스키마에 나열하는 옵션(예: duration_seconds,
resolution 또는 aspect_ratio)은 quote, generate_image,
edit_image 및 start_video의 options에 들어갑니다. 더 많은 비용이 들 수 있는 모든 것을 거부하려면 지출 도구에 max_cost(미국 달러)을 보내세요.
비디오는 약 30초에서 몇 분까지 걸립니다. 일반적인 흐름은
get_model, quote, start_video이며, 상태가
succeeded, failed, canceled 또는 expired가 될 때까지 wait_job입니다.
파일
결과 링크 (/v1/media/artifacts/...)를 다운로드하려면 Authorization 헤더에 동일한 API 키가 필요합니다. 파일은 작업이 완료된 후 약 3시간 동안 보관되며, 이미지 링크는 약 15분 동안 보관됩니다. 각 요청에 대한 자세한 내용은 동영상 또는 이미지 만들기를 참조하세요.
오류
API가 호출을 거부할 때, 도구는 API 자체의 메시지와 코드를 포함하는 오류 결과로 응답합니다. 예를 들어 insufficient_credits 또는 max_cost_too_low과 같이. 코드는 오류에 있습니다.
키 없이 도구에 연결하고 목록을 볼 수 있으므로, MCP 디렉터리 및 검사관은 서버가 무엇을 하는지 확인할 수 있습니다. 모든 도구 호출에는 키가 필요합니다. 키가 없으면 어떤 도구도 실행되기 전에 401로 응답하며, 아무것도 읽히거나 사용되지 않습니다.
연결 확인
curl https://api.uberllm.dev/mcp \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"balance","arguments":{}}}'
잔액으로 응답합니다. Authorization 줄이 없으면 401로 응답합니다;
대신 "method":"tools/list"을 보내 키 없이 도구를 확인하세요.