https://www.anthropic.com/news/model-context-protocol
모델 컨텍스트 프로토콜 (MCP) - Anthropic
요즘 키워드가 너무 많이 떠서 모르고 넘어가면 안될것 같아 정리.
MCP는 애플리케이션이 LLM에 컨텍스트를 제공하는 방법을 표준화하는 개방형 프로토콜입니다. MCP는 AI 애플리케이션을 위한 USB-C 포트와 같습니다. USB-C가 다양한 주변기기와 액세서리에 기기를 연결하는 표준화된 방법을 제공하는 것처럼, MCP는 AI 모델을 다양한 데이터 소스와 도구에 연결하는 표준화된 방법을 제공합니다.
MCP provides a standardized way for applications to:
- Share contextual information with language models
- Expose tools and capabilities to AI systems
- Build composable integrations and workflows
The protocol uses JSON-RPC 2.0 messages to establish communication between:
- Hosts: LLM applications that initiate connections
- Clients: Connectors within the host application
- Servers: Services that provide context and capabilities
MCP는 개발 도구의 전체 에코시스템에 프로그래밍 언어 지원을 추가하는 방법을 표준화하는 언어 서버 프로토콜에서 영감을 얻었습니다. 이와 유사한 방식으로 MCP는 추가 컨텍스트와 도구를 AI 애플리케이션 에코시스템에 통합하는 방법을 표준화합니다.
https://modelcontextprotocol.io/introduction

https://yozm.wishket.com/magazine/detail/3041/
요즘 핫한 ‘MCP’, 정체가 뭘까? | 요즘IT
엄청난 능력을 가진 LLM도, 훈련할 때 사용한 학습 데이터의 범위를 넘어선 정보가 필요한 경우에는 어려움을 겪게 됩니다. 특히 최근 한창 각광받는 AI 에이전트는, ‘적절한 시점’에 ‘적절한
yozm.wishket.com
https://velog.io/@k-svelte-master/what-is-mcp
MCP의 모든 것을 알아봅시다.
개발자인데 mcp 원리 계속 모른상태로 있을건가요?
velog.io
Specification
https://spec.modelcontextprotocol.io/specification/
https://spec.modelcontextprotocol.io/specification/2025-03-26/
Tutorial
Get started using pre-built servers in Claude for Desktop.
https://modelcontextprotocol.io/quickstart/user
Building MCP with LLMs
https://modelcontextprotocol.io/tutorials/building-mcp-with-llms
Github
https://github.com/modelcontextprotocol
Servers
https://github.com/modelcontextprotocol/servers
Server 하나 예제로 들여다 보기
Filesystem MCP Server (https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem)
Node.js server implementing Model Context Protocol (MCP) for filesystem operations.
read_file
- Read complete contents of a file
- Input: path (string)
- Reads complete file contents with UTF-8 encoding
import fs from "fs/promises";
import path from "path";
import os from 'os';
// Tool handlers
server.setRequestHandler(ListToolsRequestSchema, async () => {
return {
tools: [
{
name: "read_file",
description:
"Read the complete contents of a file from the file system. " +
"Handles various text encodings and provides detailed error messages " +
"if the file cannot be read. Use this tool when you need to examine " +
"the contents of a single file. Only works within allowed directories.",
inputSchema: zodToJsonSchema(ReadFileArgsSchema) as ToolInput,
},
],
};
});
server.setRequestHandler(CallToolRequestSchema, async (request) => {
try {
const { name, arguments: args } = request.params;
switch (name) {
case "read_file": {
const parsed = ReadFileArgsSchema.safeParse(args);
if (!parsed.success) {
throw new Error(`Invalid arguments for read_file: ${parsed.error}`);
}
const validPath = await validatePath(parsed.data.path);
const content = await fs.readFile(validPath, "utf-8");
return {
content: [{ type: "text", text: content }],
};
}
default:
throw new Error(`Unknown tool: ${name}`);
}
} catch (error) {
const errorMessage = error instanceof Error ? error.message : String(error);
return {
content: [{ type: "text", text: `Error: ${errorMessage}` }],
isError: true,
};
}
});
LLM의 능력을 활용할 새로운 방식이 확실.