MCP 툴셋
MCP 툴셋 (Toolsets)
직접 클라이언트 URL과 LLM 도구 선택기는 MCP Configuration Reference를 참고해 주세요.
**툴셋(Toolset)**은 하나 이상의 MCP 서버에서 가져온 특정 도구의 이름 있는 컬렉션이에요. 에이전트에게 모든 서버의 모든 도구를 주는 대신, 어느 서버에 살든 정확히 필요한 도구를 골라 하나의 이름으로 묶죠.
출처: 문서
본문
동작 방식 (How it works)
┌─────────────────────────────────┐
│ MCP Toolset │
│ "devtooling-prod" │
└────────────┬────────────────────┘
│
┌──────────────────┴──────────────────┐
│ │
┌────────▼────────┐ ┌────────▼────────┐
│ CircleCI MCP │ │ DeepWiki MCP │
│ (10+ tools) │ │ (3 tools) │
└────────┬────────┘ └────────┬────────┘
│ │
┌─────────┴──────────┐ ┌──────────┴──────────┐
│ ✓ get_build_logs │ │ ✓ read_wiki_structure│
│ ✓ find_flaky_tests │ │ ✓ read_wiki_contents │
│ ✓ get_pipeline_ │ │ ✗ ask_question │
│ status │ └─────────────────────┘
│ ✓ run_pipeline │
│ ✗ list_followed_ │
│ projects │
└────────────────────┘
Agent sees exactly 6 tools, nothing more.
두 서버의 13+ 도구 대신 에이전트는 정확히 필요한 6개를 받아요.
이것이 중요한 이유 (Why this matters):
- 더 작은 도구 목록 → 적은 토큰, 빠른 응답, 적은 환각
- GitHub + Linear + CircleCI의 도구를 하나의 이름 있는 부여로 결합
- 지금 MCP 서버를 할당하는 것과 같은 방식으로 키와 팀에 할당
툴셋 생성 (Create a toolset)
1. MCP 페이지로 이동 (Go to the MCP page)
왼쪽 사이드바에서 MCP로 이동합니다.
2. Toolsets 탭 열기 (Open the Toolsets tab)
MCP 페이지에서 Toolsets 탭 클릭.
3. "New Toolset" 클릭
4. 이름 입력 (Enter a name)
툴셋 이름을 입력하세요. 에이전트가 참조할 것이므로 설명적인 이름을 고르세요.
5. 첫 도구 추가 (Add the first tool)
드롭다운에서 MCP 서버를 선택한 후 그 서버에서 포함할 도구를 고르세요.
6. 두 번째 서버에서 도구 추가 (Add tools from a second server)
Add Tool 클릭, 다른 MCP 서버 선택, 다른 도구 선택. 필요한 만큼 반복하세요. 어떤 수의 서버에서든 올 수 있어요.
7. 툴셋 생성 (Create the toolset)
Create Toolset 클릭해 저장.
Playground에서 툴셋 사용 (Use a toolset in the Playground)
생성되면 툴셋이 Playground의 MCP Servers 드롭다운에서 MCP 서버 옆에 나타나며 같은 방식으로 선택할 수 있어요.
1. Playground로 이동 (Go to the Playground)
2. MCP Servers에서 툴셋 선택 (Select your toolset from MCP Servers)
왼쪽 패널의 MCP Servers 아래에서 드롭다운을 열고 툴셋을 고르세요. 모델은 툴셋에 포함한 도구만 보게 돼요.
이제 모델은 툴셋의 도구에 정확히 접근할 수 있고 그 외에는 없어요.
API로 툴셋 사용 (Use a toolset via API)
도구 목록에서 server_url로 툴셋의 라우트를 전달하세요. LiteLLM이 서버 측에서 해석하므로 공용 URL이 필요 없어요.
Responses API:
import openai
client = openai.OpenAI(
api_key="your-litellm-key",
base_url="http://your-proxy/v1",
)
response = client.responses.create(
model="gpt-5.6-terra",
input="What CI/CD tools do you have?",
tools=[
{
"type": "mcp",
"server_label": "devtooling-prod",
"server_url": "litellm_proxy/mcp/devtooling-prod",
"require_approval": "never",
}
],
)
print(response.output_text)
Chat Completions API:
import openai
client = openai.OpenAI(
api_key="your-litellm-key",
base_url="http://your-proxy/v1",
)
response = client.chat.completions.create(
model="gpt-5.6-terra",
messages=[{"role": "user", "content": "What CI/CD tools do you have?"}],
tools=[
{
"type": "mcp",
"server_label": "devtooling-prod",
"server_url": "litellm_proxy/mcp/devtooling-prod",
"require_approval": "never",
}
],
)
print(response.choices[0].message.content)
REST:
curl http://your-proxy/v1/responses \
-H "Authorization: Bearer ***" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-terra",
"input": "What CI/CD tools do you have?",
"tools": [
{
"type": "mcp",
"server_label": "devtooling-prod",
"server_url": "litellm_proxy/mcp/devtooling-prod",
"require_approval": "never"
}
]
}'
API로 툴셋 관리 (Manage toolsets via API)
# List all toolsets
curl http://your-proxy/v1/mcp/toolset \
-H "Authorization: Bearer ***"
# Create a toolset
curl -X POST http://your-proxy/v1/mcp/toolset \
-H "Authorization: Bearer ***" \
-H "Content-Type: application/json" \
-d '{
"toolset_name": "devtooling-prod",
"description": "CircleCI + DeepWiki tools for the dev team",
"tools": [
{"server_id": "<circleci-server-id>", "tool_name": "get_build_failure_logs"},
{"server_id": "<circleci-server-id>", "tool_name": "run_pipeline"},
{"server_id": "<deepwiki-server-id>", "tool_name": "read_wiki_structure"}
]
}'
# Delete a toolset
curl -X DELETE http://your-proxy/v1/mcp/toolset/<toolset_id> \
-H "Authorization: Bearer ***"