10장. MCP 와 Prompt·Context Engineering
도구를 잇는 표준, MCP
식당마다 주문서 양식이 다르면 배달 앱은 식당마다 따로 연결을 만들어야 합니다. 양식을 하나로 맞추면, 새 식당은 양식만 맞추면 되고 배달 앱은 한 번만 만들면 됩니다. AI 앱과 도구 사이에 MCP 가 이 공통 양식입니다.
왼쪽은 AI 앱 3개와 도구 3개를 서로 따로 이은 모습으로 연결이 3 × 3 = 9개 필요합니다. 오른쪽은 가운데에 MCP 를 두어, 앱은 MCP 클라이언트 하나, 도구는 MCP 서버 하나만 만들면 되어 3 + 3 = 6개면 됩니다. 앱과 도구가 늘수록 차이가 커집니다. 여기서 주문서 양식이 MCP, 식당이 도구, 배달 앱이 AI 앱입니다.
9장과 무엇이 다른가
| 견줄 것 | 9장의 도구 | MCP 서버의 도구 |
|---|---|---|
| 어디에 있나 | 우리 파이썬 코드 안의 함수 | 따로 도는 프로그램(서버) |
| 누가 쓰나 | 그 코드만 | MCP 를 아는 어느 앱이나 |
| 도구 설명 | 우리가 JSON 스키마를 손으로 적는다 | 서버가 함수의 타입 힌트와 설명에서 만들어 준다 |
| 바꾸면 | 앱 코드를 고친다 | 서버만 고치면 모든 앱에 반영된다 |
연결 수 세기
for apps, tools in [(3, 3), (5, 10), (10, 30)]:
print(f"앱 {apps}개, 도구 {tools}개 → 따로 이으면 {apps * tools}개, MCP 로 이으면 {apps + tools}개")앱 10개와 도구 30개라면 따로 이을 때 300개, MCP 로 이을 때 40개입니다. 도구를 만드는 쪽과 쓰는 쪽이 서로를 몰라도 되는 것이 표준의 힘입니다.
코드에 나오는 함수
| 코드 | 쉬운 뜻 |
|---|---|
[(3, 3), (5, 10), (10, 30)] | (앱 수, 도구 수) 짝 세 개를 담은 목록이다. 작은 경우부터 큰 경우까지 차례로 본다 |
for apps, tools in … | 짝 하나를 꺼내 앞 숫자는 apps, 뒤 숫자는 tools 에 나눠 담는다 |
apps * tools | 따로 이을 때의 연결 수다. 앱마다 모든 도구와 하나씩 이으므로 곱한다 |
apps + tools | MCP 로 이을 때 만들 것의 수다. 앱마다 클라이언트 하나, 도구마다 서버 하나라서 더한다 |
f"…{apps * tools}…" | f-string(formatted string, 서식 문자열)이다. 중괄호 안의 셈 결과를 글 속에 끼워 넣는다 |
이 코드가 뜻하는 것
배달 앱과 식당으로 읽어 봅니다. 양식이 제각각이면 배달 앱 하나가 식당마다 연결 작업을 따로 해야 하니 "앱 수 × 식당 수"만큼 일이 생깁니다. 양식을 하나로 맞추면 앱은 양식을 한 번 익히고, 식당도 양식을 한 번 맞추면 되니 "앱 수 + 식당 수"면 됩니다. 여기서 배달 앱이 apps, 식당이 tools, 공통 양식이 MCP 입니다.
| 줄 | 하는 일 | 쉽게 말하면 |
|---|---|---|
for apps, tools in [...] | 세 가지 규모를 차례로 본다 | 작은 동네, 중간 동네, 큰 동네 |
apps * tools | 곱해서 따로 이을 연결 수를 센다 | 앱마다 식당마다 따로 연결 작업 |
apps + tools | 더해서 MCP 로 만들 것의 수를 센다 | 양식 한 번 익히기 + 양식 한 번 맞추기 |
print(...) | 두 수를 한 줄에 견준다 | 일의 양을 나란히 적은 표 |
결과에서 앱 3개, 도구 3개일 때는 9개와 6개로 차이가 작습니다. 앱 10개, 도구 30개가 되면 300개와 40개로 벌어집니다. 곱은 둘 다 커질 때 빠르게 늘고, 합은 천천히 늘기 때문입니다. 비유와 다른 점이 하나 있습니다. 실행할 때는 앱이 쓰는 서버마다 연결이 하나씩 생깁니다("MCP 의 구조" 절). 줄어드는 것은 실행 중의 연결이 아니라 "새로 만들어야 할 연결 코드"의 수입니다.
주의할 점
- MCP 는 "모델을 더 똑똑하게" 하지 않습니다. 도구를 잇는 방법을 표준으로 정할 뿐, 도구를 고르고 쓰는 것은 여전히 모델과 우리 코드의 몫입니다.
- MCP 는 빠르게 바뀌는 규격입니다. 이 장은 파이썬
mcp패키지 2.3.0 으로 실행했고, 1.x 의FastMCP는 2.x 에서MCPServer로 이름이 바뀌었습니다. 쓰는 판의 문서를 확인합니다.