Claude Code에는 전통적인 플러그인 시스템(마켓플레이스, 원클릭 설치)이 없습니다. 대신, Anthropic이 Claude Code 세션에 외부 도구를 연결하기 위해 만든 개방형 표준인 모델 컨텍스트 프로토콜(MCP) 을 사용합니다. MCP 서버는 플러그인 역할을 합니다. 호출 가능한 도구를 노출하고, Claude가 사용 시점을 결정하며, 결과를 다시 대화에 반영합니다. 이 가이드는 확장 모델을 설명합니다. 복사 가능한 CLI 및 JSON 설정은 Claude MCP 구성 가이드를 참조하세요.
"Claude Code 플러그인"의 실제 의미
개발자가 "Claude Code 플러그인"을 검색할 때, 일반적으로 세 가지 중 하나를 원합니다. Claude Code가 외부 서비스(GitHub, 데이터베이스, 웹 브라우저)에 접근할 수 있는 방법, 커뮤니티 제작 도구 확장을 설치하는 방법, 또는 확장 메커니즘의 작동 방식에 대한 문서입니다.
세 가지 모두 MCP로 이어집니다. Anthropic은 Claude Code를 독점적인 플러그인 형식이 아닌 Model Context Protocol을 중심으로 설계했습니다. 이는 다음을 의미합니다.
- 별도의 마켓플레이스 없음: 도구는 플랫폼별 레지스트리가 아닌 MCP 서버로 배포됩니다.
- API 수준의 잠금 없음: 모든 개발자가 서버를 구축하고 공유할 수 있습니다.
- 동일한 통합 표면: Claude Code, Claude Desktop 및 기타 Claude 호스트는 모두 동일한 프로토콜을 사용합니다.
실질적인 효과는 Claude Code의 플러그인 카탈로그가 MCP 생태계라는 것입니다. MCP 사양에 맞게 구축된 모든 서버는 Claude Code에서 작동하며, 데이터베이스, API, 브라우저, 코드 실행기, 파일 시스템 등을 위한 수천 개의 서버가 이미 존재합니다.
claude plugin install 명령어는 없습니다. 그에 상응하는 명령어는 claude mcp add입니다.
MCP 서버가 플러그인으로 작동하는 방식
각 MCP 서버는 MCP 프로토콜을 통해 도구 집합을 노출하는 프로세스입니다. Claude Code는 세션을 시작할 때 등록된 서버를 시작하거나 연결하고, 도구 목록을 쿼리한 다음, 대화에서 필요할 때 해당 도구를 사용합니다.
MCP 서버의 인터페이스를 구성하는 세 가지 요소는 다음과 같습니다.
| 객체 | 설명 | 예시 |
|---|---|---|
| 도구 | 정의된 입력과 출력이 있는 호출 가능한 함수 | run_python, search_docs, create_issue |
| 리소스 | 서버가 컨텍스트로 노출하는 읽기 전용 데이터 | 파일 내용, 데이터베이스 행, 테스트 픽스처 |
| 프롬프트 | 서버에 번들로 제공되는 사전 구축된 명령 템플릿 | 코드 리뷰 체크리스트, 작업 템플릿 |
대부분의 Claude Code 워크플로에서 도구가 중요합니다. 리소스와 프롬프트는 더 구조화된 에이전트 파이프라인을 구축할 때 사용됩니다.
핵심 프로토콜 시퀀스:
- Claude Code가 시작되고, 설정을 읽고, 등록된 서버를 시작합니다.
- 각 서버는
tools/list쿼리에 이름과 JSON Schema 정의로 응답합니다. - 세션 중에 Claude는 해당 정의를 사용하여 각 도구를 호출할 시기와 방법을 결정합니다.
- Claude Code가 호출을 전달하고, 서버가 실행 및 결과를 반환하며, Claude는 결과를 통합하고 계속 진행합니다.
서버는 실행을 처리합니다. Claude는 실행이 필요한 시점에 대한 추론을 처리합니다.
claude mcp add로 첫 번째 플러그인 설치하기
claude mcp add는 MCP 서버를 Claude Code에 등록하는 명령어입니다. 한 번 실행하면 이후 모든 세션에서 서버를 사용할 수 있습니다.
# stdio 서버의 기본 형식
claude mcp add <서버-이름> -- <명령어> [인수...]
# HTTP 서버의 기본 형식
claude mcp add --transport http <서버-이름> <url>
claude mcp add 명령어를 실행하기 전 필수 조건:
- Claude Code가 설치되어 있고 PATH에 있어야 합니다(
claude --version작동 확인). - npm 기반 서버의 경우 Node.js 18 이상
- Python 기반 서버의 경우 Python 3.10 이상
Playwright 브라우저 플러그인 추가하기
Playwright MCP 서버는 Claude에 실제 브라우저를 제공합니다. URL 탐색, 요소 클릭, 텍스트 추출, 스크린샷 반환이 가능합니다. API 키가 필요 없고 프로토콜의 기능을 즉시 보여주기 때문에 가장 유용한 첫 번째 플러그인 중 하나입니다.
claude mcp add playwright -- npx -y @playwright/mcp@latest
등록 확인:
claude mcp list
그런 다음 세션을 시작합니다.
playwright를 사용하여 https://example.com을 열고 페이지 제목과 주요 제목을 알려주세요.
Claude는 브라우저를 실행하고, URL로 이동하며, DOM을 읽고, 답변을 반환합니다. 직접 스크립팅할 필요가 없습니다.
데이터베이스 플러그인 추가하기
공식 SQLite MCP 서버를 사용하면 Claude가 대화에서 직접 로컬 SQLite 데이터베이스를 쿼리하고 검사할 수 있습니다.
claude mcp add sqlite -- uvx mcp-server-sqlite --db-path /path/to/your/database.db
이후 Claude에게 쿼리 작성, 스키마 설명, 또는 스키마 정의를 매번 프롬프트에 복사하지 않고 데이터를 직접 탐색하도록 요청할 수 있습니다.
환경 변수 전달하기
대부분의 API 기반 서버에는 키가 필요합니다. 명령어에 포함하지 않고 등록 시 --env를 사용하여 전달합니다.
claude mcp add linear -- npx -y @linear/mcp-server \
--env LINEAR_API_KEY=your_key_here
값은 Claude Code의 설정에 저장되며 시작 시 서버 프로세스에 주입됩니다.
범위: 로컬, 프로젝트, 사용자
기본적으로 claude mcp add는 로컬 범위로 서버를 등록합니다. 현재 디렉터리에서 Claude Code를 시작할 때만 활성화됩니다. 세 가지 범위 옵션은 다양한 공유 모델을 제공합니다.
| 범위 | 활성화 위치 | 설정 파일 | 사용 시기 |
|---|---|---|---|
local (기본값) |
현재 디렉터리만 | ~/.claude.json |
한 프로젝트용 개인 개발 서버 |
project |
이 저장소 내 모든 세션 | 프로젝트 루트의 .mcp.json |
팀 도구 — 코드와 함께 커밋 |
user |
모든 Claude Code 세션 | 사용자 범위의 ~/.claude.json |
항상 사용 가능하게 할 전역 도구 |
--scope project를 추가하여 서버 정의를 저장소와 함께 커밋합니다.
claude mcp add sqlite --scope project -- uvx mcp-server-sqlite --db-path ./dev.db
이렇게 하면 프로젝트 루트에 .mcp.json 파일이 생성되며 서버 정의가 포함됩니다. 동일한 저장소에서 Claude Code를 실행하는 팀원은 별도의 개발자별 설정 없이 자동으로 동일한 도구를 사용할 수 있습니다. (단, 필수 구성 요소가 설치되어 있어야 합니다.)
모든 곳에서 유용한 사용자 범위 도구의 경우:
claude mcp add playwright --scope user -- npx -y @playwright/mcp@latest
인기 MCP 플러그인과 그 기능
Anthropic이 프로토콜을 공개한 이후 MCP 생태계는 크게 성장했습니다. 실제 사용 사례가 있는 몇 가지 범주는 다음과 같습니다.
개발 도구
| 서버 | 추가 기능 |
|---|---|
@playwright/mcp |
브라우저 자동화 — 탐색, 클릭, 추출, 스크린샷 |
@modelcontextprotocol/server-git |
로컬 저장소의 커밋, diff, 브랜치, blame 읽기 |
@modelcontextprotocol/server-filesystem |
범위가 지정된 파일 시스템 접근 — 정의된 경로의 파일 읽기/쓰기 |
mcp-server-sqlite |
SQLite 데이터베이스 쿼리 및 검사 |
서비스 및 API
| 서버 | 추가 기능 |
|---|---|
@linear/mcp-server |
Linear 이슈 생성, 읽기, 업데이트 |
@sentry/mcp-server |
Sentry 오류 및 트레이스 쿼리 |
@modelcontextprotocol/server-github |
GitHub 저장소, 이슈, PR, 코드 검색 |
@notionhq/notion-mcp-server |
Notion 페이지 및 데이터베이스 읽기 및 쓰기 |
AI 및 코드 실행
| 서버 | 추가 기능 |
|---|---|
| Novita Sandbox MCP 서버 | 클라우드 샌드박스에서 격리된 Python/Node 실행 |
@modelcontextprotocol/server-memory |
세션 간 지속적인 키-값 메모리 |
이들은 npm 패키지의 경우 npx, Python 패키지의 경우 uvx/pip와 함께 claude mcp add를 통해 설치할 수 있습니다.
런타임에 Claude가 도구 호출을 라우팅하는 방식
Claude는 무작위로 또는 모든 도구를 호출하지 않습니다. 각 작업 단계에 적합한 도구(있는 경우)를 도구 설명에만 기반하여 추론합니다.
라우팅 로직(개요):
- 세션 시작 시 Claude는 모든 등록된 서버를 쿼리하고 도구 카탈로그를 구축합니다.
- 각 사용자 메시지 또는 작업 단계에 대해 Claude는 어떤 도구 설명이 필요한 것과 일치하는지 평가합니다.
- 일치할 가능성이 있는 경우 Claude는 도구의 JSON Schema에 따라 적절한 인수로 호출을 구성합니다.
- Claude Code는 호출을 전달하고, 결과를 기다린 후, 다음 단계로 진행하기 전에 결과를 통합합니다.
결과적으로 도구 설명은 매우 중요합니다. "유용한 도구"와 같은 모호한 설명은 도구가 호출되지 않는 결과를 초래합니다. 도구가 정확히 무엇을 하는지, 언제 호출해야 하는지, 입력과 출력이 무엇인지 설명하는 설명은 정확하고 신뢰할 수 있는 사용으로 이어집니다.
자체 MCP 서버를 구축했는데 도구가 등록되었음에도 호출되지 않는 경우, 거의 항상 설명이 문제이지 구현이 문제가 아닙니다.
Claude는 단일 턴 내에서 도구 호출을 연결할 수도 있습니다. 파일을 읽어 컨텍스트를 이해하고, 종속성을 검색하고, 테스트를 실행하고, 출력을 확인하고, 수정 사항을 제안합니다. 각 단계는 잠재적으로 다른 서버의 다른 도구를 사용합니다.
샌드박스에서 플러그인 실행하기
플러그인이 코드(Python 스크립트, 셸 명령, 브라우저 자동화)를 실행할 때 로컬 머신에서 실행하면 위험이 따릅니다. 파일 시스템 접근 권한이나 프로세스 생성 권한이 있는 도구는 오작동하거나 잘못된 프롬프트를 수신할 경우 공격 표면이 넓습니다.
Novita Agent Sandbox는 도구 실행을 위한 격리된 클라우드 환경을 제공하여 이 문제를 해결합니다. MCP 서버를 로컬에서 실행하는 대신 샌드박스 인스턴스 내에 배포합니다. 샌드박스는 자체 파일 시스템, 네트워크 범위 및 리소스 제한을 갖습니다. 도구 실행은 호스트 머신에 영향을 미치지 않고 해당 경계 내에서 발생합니다.
Claude의 관점에서 통합은 동일합니다. 도구 목록은 같아 보이고 호출도 동일하게 작동합니다. 차이점은 전적으로 실행이 발생하는 위치입니다.
MCP 도구 실행을 위한 Novita Sandbox의 주요 특징:
- 빠른 시작: 인스턴스가 평균 약 200ms 미만으로 시작되어 도구 왕복 지연 시간을 낮게 유지합니다.
- 초당 과금: 유휴 예약이 아닌 활성 실행 시간에 대해서만 비용을 지불합니다.
- 격리된 파일 시스템: 각 샌드박스 인스턴스는 별도의 작업 공간을 가지므로 세션 간 누출을 방지합니다.
- 구성 가능한 네트워크 범위: 도구가 연결할 수 있는 외부 서비스를 제어합니다.
MCP 도구 핸들러 내에서 Novita Sandbox SDK를 사용하려면:
pip install novita-sandbox
from novita_sandbox.code_interpreter import Sandbox
def execute_code(code: str, api_key: str) -> dict:
sandbox = Sandbox.create(
template="code-interpreter-v1",
api_key=api_key,
domain="sandbox.novita.ai",
timeout=300,
)
result = sandbox.run_code(code, language="python")
sandbox.kill()
return {
"output": result.logs,
"error": result.error,
}
code-interpreter-v1 템플릿에는 pandas, numpy, matplotlib 및 기타 일반적인 패키지가 사전 설치되어 있습니다. 전체 과정은 Novita Sandbox와 mcp-use 라이브러리로 원격 코드 실행 MCP 서버 구축하기를 참조하세요.
도구 사용 추론을 위한 Novita LLM API 사용
Claude Code는 백엔드로 구성된 모델을 사용하여 도구 사용 추론을 처리합니다. 비용, 지연 시간 또는 모델 접근성 문제로 인해 Claude Code를 대체 공급자를 통해 라우팅하는 경우, 도구 호출에 대한 추론 계층도 해당 공급자를 통해 라우팅됩니다.
Novita LLM API는 https://api.novita.ai/anthropic에서 Anthropic 호환 엔드포인트를 제공합니다. 세 개의 환경 변수로 한 번 구성합니다.
export ANTHROPIC_BASE_URL="https://api.novita.ai/anthropic"
export ANTHROPIC_AUTH_TOKEN="your-novita-api-key"
export ANTHROPIC_MODEL="qwen/qwen3-coder-480b-a35b-instruct"
export ANTHROPIC_SMALL_FAST_MODEL="deepseek/deepseek-v4-flash"
이 설정을 사용하면 Claude Code의 MCP 도구 호출이 이전과 동일하게 계속 작동합니다. 라우팅은 추론을 수행하는 모델에 영향을 미치며, 도구 디스패치 메커니즘은 Claude Code 계층에 유지됩니다.
도구 사용이 많은 세션을 위한 모델 선택:
- Qwen3-Coder 480B — Claude가 많은 파일을 읽고, 다단계 시퀀스를 계획하고, 각 단계에서 도구를 호출해야 하는 장기적인 작업에 적합합니다. 긴 컨텍스트 처리 기능을 통해 복잡한 세션 내내 이전 도구 결과를 계속 사용할 수 있습니다.
- MiniMax M2.7 — 에이전트 도구 사용 정확도에 최적화되어 있으며, 잘못된 도구 호출을 줄이고 각 단계가 이전 결과를 기반으로 하는 다중 턴 시퀀스를 처리하도록 특별히 설계되었습니다.
- DeepSeek V4 Flash — 빠르고 저렴하며,
ANTHROPIC_SMALL_FAST_MODEL에 적합한 선택입니다. Claude Code는 이 슬롯을 세션 요약 및 컨텍스트 압축에 사용하며, 둘 다 깊은 추론이 필요하지 않습니다.
Claude Code 대신 자체 MCP 호스트를 구축하는 경우, Novita LLM API는 함수 호출을 지원하는 모델을 위해 https://api.novita.ai/v3/openai에서 OpenAI 호환 엔드포인트도 제공합니다.
import openai
client = openai.OpenAI(
base_url="https://api.novita.ai/v3/openai",
api_key="your-novita-api-key",
)
response = client.chat.completions.create(
model="meta-llama/llama-3.3-70b-instruct",
messages=[{"role": "user", "content": "사용 가능한 도구를 나열하고 빠른 점검을 실행하세요."}],
tools=[
{
"type": "function",
"function": {
"name": "list_files",
"description": "현재 작업 디렉터리의 파일을 나열합니다.",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "나열할 디렉터리 경로."
}
},
"required": ["path"]
}
}
}
],
tool_choice="auto",
)
이는 오픈 가중치 모델이 폐쇄형 모델과 다른 비용 또는 지연 시간 특성으로 사용자 지정 MCP 파이프라인에서 추론 계층 역할을 하도록 하려는 시나리오에서 특히 유용합니다.
오픈 가중치 모델을 대체 백본으로 사용하기
MCP를 많이 사용하는 Claude Code 워크플로에서 종종 간과되는 옵션은 기본 Claude 모델을 유능한 오픈 가중치 대안으로 완전히 대체하는 것입니다. Qwen3-Coder, MiniMax M2.7 및 DeepSeek V3.1과 같은 모델은 도구 호출 정확도와 다단계 추론을 위해 특별히 훈련되었습니다. 일부 벤치마크에서는 함수 호출 작업에서 폐쇄형 소스 모델과 동등하거나 능가하는 성능을 훨씬 낮은 비용으로 제공합니다.
대량의 에이전트 세션(CI 파이프라인, 자동화된 코드 리뷰, 일괄 리팩토링)을 실행하는 팀에게 비용 차이는 중요합니다. Novita AI는 동일한 Anthropic 호환 엔드포인트를 통해 이러한 모델에 대한 액세스를 제공하므로, 전환은 코드 재작성이 아닌 구성 변경입니다.
효과적인 도구 설명 작성하기
Claude Code용 자체 MCP 서버를 구축하는 경우, 도구 설명의 품질이 Claude가 도구를 효과적으로 사용하는지 여부를 결정합니다. 이것이 사용자 지정 서버에서 가장 효과가 큰 작업입니다.
효과적인 도구 설명은 세 가지 질문에 답합니다.
- 도구는 무엇을 합니까? — 추상적이지 않고 구체적으로
- 언제 호출되어야 합니까? — 시나리오 또는 트리거 조건
- 입력과 출력은 무엇입니까? — Claude가 올바른 인수를 구성하기에 충분한 정보
동일한 search_codebase 도구에 대한 두 설명을 비교해 보세요.
좋지 않음: "코드베이스를 검색합니다."
효과적: "현재 저장소의 소스 파일에서 심볼, 문자열 또는 정규식 패턴을 검색합니다. 함수가 정의된 위치를 찾거나, 변수의 모든 사용 위치를 찾거나, 특정 모듈을 참조하는 파일을 식별해야 할 때 이 도구를 호출하세요. 일치하는 줄과 줄 번호가 포함된 파일 경로 목록을 반환합니다."
두 번째 설명은 Claude에게 도구가 무엇을 하는지뿐만 아니라 언제 호출해야 하는지도 알려주므로 훨씬 더 정확하고 적시에 호출이 이루어집니다.
몇 가지 추가 팁:
- 변경 도구를 명확히 표시하세요: 도구가 데이터베이스에 쓰거나 코드를 배포하는 경우 명시적으로 언급하세요. 그러면 Claude가 해당 작업이 의도되었다는 명확한 증거 없이 도구를 호출하는 데 더 신중을 기할 것입니다.
- 반환 형태를 설명하세요: 도구가 특정 구조의 JSON 객체를 반환하는 경우 주요 필드를 설명하세요. Claude는 이를 사용하여 다음 단계에 필요한 올바른 정보를 추출합니다.
- 범위를 좁게 유지하세요: 임의의 셸 명령을 허용하는
"run_anything"이라는 도구는 프로젝트 테스트 스위트를 실행하는"run_tests"보다 Claude가 추론하기 어렵습니다. 정확한 설명이 있는 좁은 도구가 모호한 설명이 있는 광범위한 도구보다 더 잘 작동합니다.
일반적인 플러그인 문제 해결
claude mcp add 후 도구가 나타나지 않음
새 터미널에서 서버 명령이 오류 없이 실행되는지 확인하세요. Claude Code는 하위 프로세스 stderr를 숨길 수 있습니다. claude mcp list를 실행하세요. 서버에 시간 초과 또는 오류가 표시되면 구성이 아닌 명령 자체가 실패하는 것입니다.
도구가 등록되었지만 호출되지 않음
도구 설명이 너무 모호합니다. Claude가 도구를 호출해야 하는 시기와 인수의 의미를 지정하도록 다시 작성하세요.
npx가 첫 번째 실행에서 멈춤
설치 프롬프트를 자동으로 수락하려면 -y 플래그를 추가하세요: npx -y @package/mcp-server. 플래그가 없으면 npx는 사용자 확인을 기다리고 Claude Code는 연결 시간 초과를 감지합니다.
새 프로젝트에서 서버가 활성화되지 않음
local 범위로 등록하고 다른 디렉터리에서 Claude Code를 시작했습니다. 전역 서버의 경우 --scope user로 다시 추가하거나 올바른 프로젝트 루트에서 add 명령을 실행하세요.
도구 호출이 스키마 유효성 검사 오류로 실패함
Claude는 도구의 JSON Schema를 기반으로 인수를 구성합니다. 스키마에서 필수 필드가 누락되었거나 유형이 일치하지 않으면 서버가 호출을 거부합니다. inputSchema 정의를 검토하세요. 불완전한 스키마는 불완전한 호출 인수로 이어집니다.
claude mcp add 명령을 찾을 수 없음
Claude Code를 설치하세요: npm install -g @anthropic-ai/claude-code, 그런 다음 claude --version으로 확인하세요.
FAQ
Claude Code에 플러그인 마켓플레이스가 있나요?
전통적인 의미는 아닙니다. Claude Code는 플랫폼별 마켓플레이스 대신 MCP 프로토콜을 사용합니다. 커뮤니티에서 제작한 MCP 서버는 npm, PyPI 및 GitHub에 게시됩니다. 일부 집계 사이트에서 선별된 목록을 유지 관리하지만, 공식 Claude Code 마켓플레이스는 없습니다.
Claude Code 플러그인 문서는 무엇인가요?
Anthropic의 Claude Code MCP 통합 공식 문서는 docs.anthropic.com/claude-code에 있습니다. MCP 사양 자체는 modelcontextprotocol.io에 있습니다. 권위 있는 프로토콜 및 구현 세부 정보는 이 두 출처를 참조하세요.
MCP 서버와 Claude Code 플러그인의 차이점은 무엇인가요?
이 용어는 Claude Code의 맥락에서 동일한 것을 의미합니다. 개발자가 "Claude Code 플러그인"이라고 말할 때는 일반적으로 Claude Code에 연결된 MCP 서버를 의미합니다. "플러그인"이라는 단어는 Anthropic의 공식 용어는 아니지만, 개념은 직접적으로 매핑됩니다. 한 번 설치하면 모든 세션에서 사용할 수 있으며, 새로운 도구로 Claude의 기능을 확장합니다.
Claude Desktop과 Claude Code에서 동일한 MCP 서버를 사용할 수 있나요?
네. 서버는 프로토콜에 구애받지 않습니다. 어떤 호스트가 연결하는지 중요하지 않습니다. stdio 서버의 경우 Claude Code(claude mcp add 사용)와 Claude Desktop(JSON 구성 파일 사용) 모두 동일한 명령을 실행할 수 있습니다. HTTP 서버의 경우 URL에 연결할 수 있는 모든 호스트가 연결할 수 있습니다.
MCP 서버를 몇 개나 등록할 수 있나요?
MCP 프로토콜과 Claude Code는 하드 제한을 두지 않습니다. 실제로는 수백 개의 도구가 있는 많은 서버가 세션 시작 속도를 늦추고(도구 검색은 시작 시 실행됨) Claude의 도구 선택에 노이즈를 추가할 수 있습니다. 활성 집합을 특정 세션에 실제로 필요한 것으로 유지하세요.
MCP 플러그인을 추가하는 데 보안 위험이 있나요?
네. MCP 서버는 작업을 수행하는 데 필요한 권한을 가진 프로세스로 실행됩니다. 파일 시스템 접근 권한이 있는 서버는 파일을 읽거나 쓸 수 있고, 셸 실행 권한이 있는 서버는 임의의 명령을 실행할 수 있습니다. 신뢰하는 서버만 추가하세요. 프로덕션 또는 공유 환경의 경우 격리된 환경에서 서버를 실행하는 것을 고려하세요. 위의 샌드박스 섹션을 참조하세요.
오픈 가중치 모델이 MCP 도구 호출을 지원하나요?
네. Anthropic 메시지 API 형식으로 함수 호출을 구현하는 모델은 제공업체에 관계없이 Claude Code의 MCP 계층에서 작동합니다. Qwen3-Coder, MiniMax M2.7 및 DeepSeek V3.1은 모두 구조화된 도구 호출을 지원합니다. 도구 디스패치는 Claude Code에서 처리합니다. 모델은 예상 형식으로 유효한 도구 호출 명령을 반환하기만 하면 됩니다.
