C.W.K.
Stream
Lesson 03 of 05 · published

Host · Client · Server

~24 min · host, client, server, topology

Level 0호기심 많은 독자
0 XP0/48 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

MCP architecture 는 삼각형. 세 역할, 세 책임, 누가 누구에게 말하는지 엄격한 룰.

  • Host — user 가 실제로 쓰는 application. Claude Desktop, VS Code with Copilot, Cursor, custom assistant. UX 소유, LLM (또는 그 API 호출) 운영, user 한테 tool 승인 받는 등 security 결정 책임.
  • Client — host 안의 한 server 와 MCP 말하는 코드 조각. 3 MCP server 쓰는 host 는 client 3 개 — server 마다 한 개. Client 는 server 와 1:1 — pool 안 해.
  • Server — client 한테 tool, resource, prompt 노출하는 별도 process (또는 remote service). Weather server, GitHub server, Postgres server. Server 들 서로 모름; 각자 자기 client 와만 말.

엄격한 룰: server 는 다른 server 에 절대 말 안 하고, server 는 host 에 직접 닿지 않음. Cross-server 조율 다 host 경유. 의도적이야. 모든 server 의 blast radius 가 bounded — 악의적이거나 buggy server 가 할 수 있는 최악은 자기 host 한테만 misbehave. Host 가 security 경계; protocol 이 topology 로 강제.

두 결과: 첫째, capability 합성 은 host 의 일 — user 가 'Postgres 에서 user 찾아 요약을 Slack 에 post' 라고 하면, host 가 Postgres server 에 한 호출, Slack server 에 한 호출 orchestrate. Server 들 서로 모름. 둘째, 권한은 server 별: GitHub server 에 'read code' 부여가 filesystem server 에 같은 권한 부여 안 함, vice versa. 삼각형이 trust 모델.

Code

MCP server 둘 있는 host — client 둘, cross-talk 없음·python
# Host runtime pseudocode
from mcp.client.stdio import stdio_client
from mcp.client.session import ClientSession

async def host_runtime():
    # Server 마다 client 한 개. 각 session 독립.
    github_session  = await connect_to_server("github_mcp", argv=["uvx","github-mcp"])
    postgres_session = await connect_to_server("postgres_mcp", argv=["uvx","postgres-mcp","--dsn","..."])

    # HOST 가 orchestrate. Server 들 서로 말 안 함.
    github_data   = await github_session.call_tool("search_issues", {"query": "..."})
    postgres_data = await postgres_session.call_tool("query", {"sql": "select ..."})
    return summarize(github_data, postgres_data)

External links

Exercise

좋아하는 MCP-쓰는 product (Claude Desktop, Cursor, custom assistant) 를 삼각형으로 스케치: host 명명, server 다 list, server 별 client 연결 그려. 어느 두 server 사이에도 화살표 없는 거 봐. 그 빠진 화살표가 security 모델.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.