1. MCP (Model Context Protocol)
개요
MCP(Model Context Protocol)는 AI 애플리케이션(특히 LLM)이 외부 데이터 소스 및 도구와 표준화된 방식으로 연결될 수 있게 해주는 개방형 프로토콜이다. Anthropic이 주도하여 개발했으며, USB-C 포트가 다양한 주변기기를 연결하는 표준을 제공하듯, MCP는 AI 모델을 다양한 데이터 소스와 도구에 연결하는 표준화된 인터페이스를 제공한다.
공식 사이트: modelcontextprotocol.io GitHub: github.com/modelcontextprotocol
아키텍처
MCP는 클라이언트-서버 아키텍처를 따르며, 세 가지 주요 참여자로 구성된다:
| 구성 요소 | 설명 |
|---|---|
| MCP Host (호스트) | AI 애플리케이션 (Claude Desktop, VS Code, IDE 등). 여러 MCP 클라이언트를 생성하고 관리한다. |
| MCP Client (클라이언트) | 호스트 내에서 각 MCP 서버와 1:1 연결을 유지하는 컴포넌트 |
| MCP Server (서버) | 특정 기능(도구, 리소스, 프롬프트)을 노출하는 경량 프로그램. 로컬 또는 원격으로 실행 가능 |
MCP Host (AI Application)
├── MCP Client 1 ─── MCP Server A (로컬: 파일시스템)
├── MCP Client 2 ─── MCP Server B (로컬: 데이터베이스)
├── MCP Client 3 ─── MCP Server C (원격: Sentry)
└── MCP Client 4 ─── MCP Server C (원격)
계층 구조
MCP는 두 개의 계층으로 구성된다:
1️⃣ 데이터 계층 (Data Layer)
- JSON-RPC 2.0 기반 메시지 교환
- 생명주기 관리: 연결 초기화, 기능 협상, 종료 처리
- 서버 기능: Tools, Resources, Prompts 노출
- 클라이언트 기능: Sampling, Roots, Elicitation 제공
- 유틸리티: 알림(Notifications), 진행 추적(Progress), 취소(Cancellation), 로깅(Logging)
2️⃣ 전송 계층 (Transport Layer)
- Stdio Transport: 표준 입출력 사용, 로컬 프로세스 간 통신 (저지연)
- Streamable HTTP Transport: HTTP POST + Server-Sent Events, 원격 서버 통신 지원, OAuth 인증 가능
핵심 프리미티브 (Primitives)
서버가 제공하는 기능
| 프리미티브 | 설명 | 예시 |
|---|---|---|
| Tools (도구) | AI 모델이 호출할 수 있는 실행 가능한 함수 | 파일 검색, DB 쿼리, API 호출, 이메일 전송 |
| Resources (리소스) | 읽기 전용 데이터 소스 (컨텍스트 제공) | 문서 내용, DB 스키마, API 응답 |
| Prompts (프롬프트) | 재사용 가능한 템플릿 (상호작용 구조화) | 시스템 프롬프트, Few-shot 예제, 워크플로우 템플릿 |
클라이언트가 제공하는 기능
| 프리미티브 | 설명 |
|---|---|
| Sampling | 서버가 호스트 LLM에 완성(completion) 요청 |
| Roots | 서버가 URI/파일시스템 경계 탐색 |
| Elicitation | 서버가 사용자에게 추가 정보 요청 |
프로토콜 메시지 예시
초기화 (Initialize)
// 클라이언트 → 서버
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": { "elicitation": {} },
"clientInfo": { "name": "example-client", "version": "1.0.0" }
}
}
도구 목록 조회 (tools/list)
// 클라이언트 → 서버
{ "jsonrpc": "2.0", "id": 2, "method": "tools/list" }
// 서버 → 클라이언트 응답
{
"jsonrpc": "2.0", "id": 2,
"result": {
"tools": [
{
"name": "weather_current",
"title": "Weather Information",
"description": "Get current weather for any location",
"inputSchema": {
"type": "object",
"properties": {
"location": { "type": "string", "description": "City name" },
"units": { "type": "string", "enum": ["metric", "imperial"] }
},
"required": ["location"]
}
}
]
}
}
도구 실행 (tools/call)
{
"jsonrpc": "2.0", "id": 3,
"method": "tools/call",
"params": {
"name": "weather_current",
"arguments": { "location": "San Francisco", "units": "imperial" }
}
}
공식 SDK 목록
MCP는 다양한 언어로 SDK를 제공한다:
| 언어 | GitHub 저장소 |
|---|---|
| Python | python-sdk |
| TypeScript | typescript-sdk |
| Java | java-sdk |
| Kotlin | kotlin-sdk |
| Go | go-sdk |
| C# | csharp-sdk |
| Rust | rust-sdk |
| Swift | swift-sdk |
| Ruby | ruby-sdk |
| PHP | php-sdk |
Python SDK 예제 (v2)
서버 (15줄)
from mcp.server import MCPServer
mcp = MCPServer("Demo")
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers."""
return a + b
@mcp.resource("greeting://{name}")
def greeting(name: str) -> str:
"""Greet someone by name."""
return f"Hello, {name}!"
클라이언트 (10줄)
import asyncio
from mcp import Client
from server import mcp
async def main():
async with Client(mcp) as client:
result = await client.call_tool("add", {"a": 1, "b": 2})
print(result.structured_content) # {'result': 3}
asyncio.run(main())
참조 서버 (Reference Servers)
공식 저장소(servers)에서 제공하는 참조 구현:
| 서버 | 설명 |
|---|---|
| Everything | 테스트용 (프롬프트, 리소스, 도구 모두 포함) |
| Fetch | 웹 콘텐츠 가져오기 및 변환 |
| Filesystem | 보안 파일 시스템 접근 |
| Git | Git 저장소 읽기/검색/조작 |
| Memory | 지식 그래프 기반 영구 메모리 |
| Sequential Thinking | 순차적 사고 프로세스 |
| Time | 시간 및 시간대 변환 |
보안 원칙
- 사용자 동의 및 통제: 모든 데이터 접근과 작업에 명시적 동의 필요
- 데이터 프라이버시: 사용자 데이터 보호, 무단 전송 금지
- 도구 안전성: 도구는 임의 코드 실행으로 간주되어 주의 필요
- LLM 샘플링 통제: 샘플링 요청 시 사용자 승인 필수
2. 마리아의 복음서 (Gospel of Mary)
개요
마리아의 복음서는 2세기경에 기록된 초기 기독교 문서로, 정경(신약성경)에 포함되지 않은 외경이다. 예수의 부활 후 막달라 마리아가 받은 특별한 계시와 가르침을 중심으로 한다.
참고: 학자들 사이에서는 "복음서(gospel)"라는 용어를 "예수의 성년기 활동과 가르침을 주로 다루는 텍스트"로 제한하는 경향이 있어, 이 문서를 엄밀한 의미의 복음서로 분류하지 않는 경우도 있다.
발견 및 사본 현황
| 사본 | 언어 | 연대 | 발견 시기 | 특징 |
|---|---|---|---|---|
| 베를린 사본 (BG 8502) | 콥트어 (사히드 방언) | 5세기 | 1896년, 카이로에서 구입 | 가장 완전한 형태 (7-10쪽, 15-19쪽 보존) |
| 옥시링쿠스 파피루스 L 3525 | 그리스어 | 3세기 | 1897-1906년 발견, 1983년 출판 | 단편 |
| 라이랜즈 파피루스 463 | 그리스어 | 3세기 초 | 1938년 출판 | 가장 오래된 사본 |
참고: 베를린 사본은 요한의 아포크리폰, 예수 그리스도의 소피아, 베드로 행전도 함께 포함하고 있다.
"마리아"의 정체
학자들 사이에서 논쟁이 있으나, 대다수는 막달라 마리아로 본다:
| 주장 | 지지 학자 | 근거 |
|---|---|---|
| 막달라 마리아 | Karen King, Esther de Boer, Richard Valantasis | 예수의 알려진 추종자, 부활 목격자, 다른 영지주의 문헌(피스티스 소피아, 빌립 복음서)에서의 역할 |
| 예수의 어머니 마리아 | Stephen Shoemaker, F. Stanley Jones | - |
| 예수의 누이 마리아 | Barbara Silvertsen | 빌립 복음서에서 예수의 누이 중 한 명이 "마리아"로 확인 |
Karen King의 요약: "마리아가 여성으로서, 모범적인 제자로서, 예수 사역의 증인으로서, 영광스러운 예수를 본 환시자로서, 그리고 전통적으로 베드로와 대립하는 인물로서의 전통이 바로 그녀를 마리아 복음서의 메시지와 의미를 전달하는 데 필요한 모든 역할을 수행할 수 있는 유일한 인물로 만들었다."
내용 구조
현존하는 본문은 8쪽(페이지 7-10, 15-19)만 남아 있으며, 시작 부분(1-6쪽)과 중간 부분(11-14쪽)이 소실되었다.
제1부: 예수와 제자들의 대화 (7,1-9,24)
물질과 죄의 본질에 관한 대화
- 제자가 "물질은 소멸되는가?"라고 묻자, 예수는 "모든 본성은 자신의 고유한 뿌리로 되돌아간다"고 답한다.
- 베드로가 "세상의 죄가 무엇인가?"라고 묻자, 예수는 "죄라는 것은 존재하지 않는다. 오히려 너희 자신이 간음의 본성에 따라 행동할 때 죄를 만들어낸다" 고 말한다.
- "선(Good)이 너희 가운데 와서 모든 본성의 본질을 그 뿌리로 회복시켰다."
예수의 작별과 사명 위임
- "인자는 너희 안에 있다. 그를 따르라! 그를 찾는 자는 그를 찾을 것이다."
- "가서 왕국의 복음을 전파하라. 내가 정한 것 이상으로 어떤 규칙도 정하지 말고, 율법 제정자처럼 율법을 주지 말라."
제2부: 마리아의 계시 (10,1-23; 15,1-19,2)
베드로의 요청
"자매여, 우리는 구세주께서 다른 여자들보다 당신을 더 사랑하셨음을 압니다. 당신이 기억하는 구세주의 말씀 – 당신이 알고 있으나 우리는 알지 못하고 듣지도 못한 그 말씀을 우리에게 알려주십시오."
마리아의 환상
- 마리아가 환상 중에 주님을 보았다고 고백
- 예수: "너는 복이 있도다, 나를 보고도 흔들리지 않으니. 마음이 있는 곳에 보물이 있다."
- 환상을 보는 주체는 영혼과 영 사이에 있는 '마음(mind)'이라고 설명
영혼의 상승 (소실된 부분 이후) 영혼이 최종 안식처로 가는 길에 네 가지 힘(권능)과 대화:
| 권능 | 형태/특징 | 영혼의 응답 |
|---|---|---|
| 첫째: 어둠(Darkness) | - | - |
| 둘째: 욕망(Desire) | "왜 거짓말하느냐? 너는 내게 속해 있다" | "나는 너를 보았다. 너는 나를 보지 못했고 알지도 못했다. 너는 내 옷을 나 자신으로 착각했다" |
| 셋째: 무지(Ignorance) | "어디로 가느냐? 너는 악에 묶여 있다" | "나는 묶여 있었으나 묶지 않았다. 나는 모든 것(땅의 것과 하늘의 것)이 용해되고 있음을 인식했다" |
| 넷째: 분노의 일곱 형태 | 어둠, 욕망, 무지, 죽음의 흥분, 육체의 왕국, 육체의 어리석은 지혜, 분노의 지혜 | "나를 묶던 것이 죽임을 당했고, 나를 둘러싸던 것이 파괴되었으며, 내 욕망이 끝나고 무지가 죽었다. 이제부터 나는 침묵 속에서 안식을 얻을 것이다" |
제3부: 제자들의 논쟁 (17,7-19,2)
- 안드레: "이 가르침들은 이상한 생각들이다. 구세주가 이런 말씀을 하셨다고 믿지 않는다"
- 베드로: "그분이 여자와 비밀리에 말씀하셨단 말인가? 우리가 돌아서서 그녀의 말을 모두 들어야 한단 말인가?"
- 레위(마태): "베드로여, 너는 항상 성급했다. 구세주가 그녀를 합당하게 여기셨다면, 네가 누구이기에 그녀를 거부하느냐? 구세주는 그녀를 확실히 아신다. 그렇기에 그분이 우리보다 그녀를 더 사랑하셨다"
- 결말: 제자들이 나가서 가르치고 전파하기 시작함
신학적 특징
영지주의(Gnosticism)적 해석
마리아의 복음서는 일반적으로 영지주의 문헌으로 분류된다:
| 영지주의 요소 | 본문에서의 표현 |
|---|---|
| 이원론 | 물질과 영의 대립, 물질로부터의 해방 |
| 비밀 지식(Gnosis) | 마리아만이 받은 특별 계시 |
| 데미우르고스 비판 | 간접적으로 암시 (물질 창조에 대한 비판) |
| 영혼의 상승 | 네 권능을 통과하여 최종 안식에 도달 |
| 내적 깨달음 | "인자가 너희 안에 있다" |
대안적 해석
Esther de Boer(2004)는 마리아 복음서를 영지주의 특유의 텍스트로 보지 말고 더 넓은 기독교적 맥락에서 해석해야 한다고 주장:
- 이원론적 창조관이 아닌 일원론적 창조관에서 비롯
- 유대교, 기독교, 스토아 철학의 신념과 더 유사
- 주요 목적은 두려움에 사로잡힌 제자들에게 복음 전파를 격려하는 것
Karen King의 해석
"이 저작은 거의 1500년 동안 사라진 기독교의 한 형태를 흥미롭게 엿볼 수 있게 한다... 예수의 가르침을 내적 영적 지식으로 가는 길로 해석하는 급진적 해석을 제시하며; 영생을 위한 길로써 그의 고통과 죽음을 거부하며; 막달라 마리아가 창녀였다는 오류를 폭로한다; 초기 기독교 문헌 중 여성 리더십의 정당성을 가장 직설적이고 설득력 있게 제시한다; 불법적 권력에 대한 날카로운 비판과 영적 완성에 대한 유토피아적 비전을 제공한다."
역사적 의의
- 여성 리더십의 증거: 초기 기독교에서 여성의 지도적 역할을 입증하는 가장 강력한 문서
- 초기 기독교의 다양성: 2세기 기독교 내 다양한 신학적 흐름과 갈등을 보여줌
- 정경 형성 과정의 이해: 왜 특정 문서가 정경에 포함되고 배제되었는지에 대한 통찰
- 베드로-마리아 대립: 토마스 복음서, 피스티스 소피아 등 다른 문헌에서도 나타나는 패턴으로, 정통파(베드로)와 영지주의(마리아)의 갈등을 상징
대중문화 속의 마리아 복음서
| 매체 | 작품 | 설명 |
|---|---|---|
| 영화 | 《다빈치 코드》(2006) | 예수가 아내를 두었으며 인간이었다는 증거로 인용 |
| 영화 | 《Mary》(2005, Abel Ferrara) | 마리아를 예수의 아내가 아닌 가장 중요한 제자로 묘사 |
| TV | 《X-Files》 "Hollywood A.D." | 마리아 복음서 위조본이 등장 |
| 오페라 | 《The Gospel of Mary Magdalene》(Mark Adamo, 2013) | 마리아 복음서와 요한복음을 기반 |
| 오라토리오 | 《Mary Magdalene Gospel》(Peeter Vähi, 2010-2011) | 콥트어 원문 기반 |
| 소설 | 《According to Mary Magdalene》(Marianne Fredriksson, 1997) | 마리아 복음서에서 영감 |
주요 학술 참고문헌
| 저자 | 저서 | 비고 |
|---|---|---|
| Karen L. King | The Gospel of Mary of Magdala: Jesus and the First Woman Apostle (2003) | 가장 권위 있는 주석 및 번역 |
| Christopher Tuckett | The Gospel of Mary (2007) | Oxford Early Christian Gospel Texts |
| Esther A. de Boer | The Gospel of Mary: Beyond a Gnostic and a Biblical Mary Magdalene (2004) | 영지주의 해석에 대한 대안 제시 |
| Bart D. Ehrman | Lost Scriptures (2003) | 일반 독자를 위한 개론 |
요약: MCP는 AI와 외부 도구/데이터를 연결하는 현대의 개방형 프로토콜이며, 마리아의 복음서는 2세기 초기 기독교의 다양한 신학적 흐름과 여성 리더십의 중요성을 보여주는 중요한 역사적 문서이다. 두 주제는 전혀 다른 영역(기술 vs. 종교/역사)에 속하지만, 각각의 분야에서 표준화와 권위에 대한 질문을 제기한다는 공통점이 흥미롭다.