반응형
MCP는 보통 LLM과 외부 시스템을 연동하는 역할로 알려져 있다.
(노션 MCP, Supabase MCP, …)
그런데, 외부 시스템과는 관계 없이 LLM의 행동을 제어하거나 유도하는 용도로 활동되기도 한다.
(Sequential Thinking MCP, Meta Reasoning MCP, …)
예를 들어, 프롬프트 조작이나 메타 지시어 삽입을 통해 LLM의 응답 구조를 고정하거나,
특정 작업 순서를 따르도록 강제하는 등의 방식이다.
이 경우 MCP는 단순한 인터페이스 계층을 넘어,
LLM의 “행동 정책(controller)” 또는 “프롬프트 운영 계층”으로 작동할 수 있다.
LLM-MCP Flow
- LLM이 MCP 서버에
tool/list
요청을 보내면, MCP 서버가 사용 가능한 도구 목록을 반환한다. (name, description, inputSchema, …)
{
"name": "get_weather",
"description": "특정 도시의 현재 날씨를 가져옵니다",
"inputSchema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "도시명"
}
},
"required": ["city"]
}
}
- LLM은 사용자의 요청과 tool list를 매칭해서, 적절한 tool을 선택한다.
- LLM은 tool의 입력 스키마를 보고, 필요한 정보를 사용자 메시지에서 추출한다.
required
필드가 있으면 반드시 값을 찾고, 없으면 사용자에게 물어보거나 기본값을 사용한다. - LLM은
tools/call
요청으로 도구를 실행하고 결과를 받는다.
LLM 행동 유도 메커니즘
- 스키마 제약: JSON 스키마가 LLM의 입력 형식을 강제
- 설명 기반 지침: description에 특정 문구를 넣음으로써 LLM의 행동 유도
- 힌트 시스템: destructiveHink(실행 전 경고), idempotentHint(멱등성)
- 프롬프트 템플릿: 복잡한 여러 단계의 작업을
prompts/list
를 통해 하나의 템플릿으로 제공 ⇒ LLM에게 정형화된 워크플로우 제공 가능
따라서, LLM의 행동 전 의사결정에 관여할 수 있는 부분은 tools/list
를 통해 전달되는 메타데이터 뿐이다.
이 정보를 통해 LLM의 사고와 행동을 조종할 수 있다.
단순 외부 시스템과의 연동을 주 기능으로 삼는다면 MCP는 단순한 API 서버에 불과하지만, 위 내용을 토대로 잘 짜여진 MCP는 마치 LLM의 행동 설계 프레임워크로서 동작할 수 있게 되는 것이다.
반응형