MCP 서버: AI와 외부 도구를 연결하는 표준 인터페이스 안내서

GoGoComputer·2025년 5월 4일
post-thumbnail

물론입니다! 아래에 있는 내용은 MCP 서버에 대한 원문을 한국어로 쉽게 풀어서 설명한 것입니다. 최대한 초보자도 이해할 수 있도록 구성했어요.


🌐 MCP 서버란 무엇인가요?

MCP 서버는 복잡하게 흩어져 있는 다양한 시스템(예: 날씨 API, Stripe 결제 시스템 등)을 **AI가 쉽게 사용할 수 있도록 통합해주는 "중간 다리"**입니다.

쉽게 말하면, AI가 여러 도구를 사용할 수 있도록 **공통 규격의 인터페이스(메뉴판)**를 제공해주는 것입니다.

MCP 서버는 총 세 가지 주요 기능을 AI에게 제공합니다:


🧰 1. 툴(Tools): AI가 사용할 수 있는 "함수"

툴은 가장 핵심적인 기능입니다.
AI가 필요할 때 호출할 수 있는 함수 형태의 도구들을 뜻합니다.
예를 들어:

  • get_weather: 날씨 불러오기
  • get_forecast: 예보 보기
  • get_alerts: 경고 메시지 보기

이런 것들은 전부 하나하나가 **툴(tool)**이고, 우리가 원하는 동작을 코드로 구현할 수 있습니다.
(예: 외부 API 호출, 데이터 저장, 파일 읽기 등)

즉, MCP를 통해 AI가 실제로 "버튼을 누르듯" 다양한 동작을 실행할 수 있게 됩니다.


📦 2. 리소스(Resources): AI에게 보여줄 데이터

리소스는 AI가 참고할 수 있는 데이터를 의미합니다.
예를 들어,

  • 정적인 리소스: PDF 문서, 텍스트 파일, 이미지 등
  • 동적인 리소스: 실시간으로 데이터를 가져와서 보여주는 것 (예: 웹에서 현재 환율 불러오기)

즉, 리소스는 AI가 배경 지식으로 삼을 수 있는 정보입니다.


✨ 3. 프롬프트(Prompts): 미리 만들어둔 질문·대화 템플릿

AI에게 전달하는 대화의 틀입니다.
예를 들어, 고객 상담에서 자주 묻는 말들을 미리 작성해두고,
AI가 이 템플릿을 활용해 빠르게 대응할 수 있게 만드는 것입니다.


🛠️ MCP 서버를 만드는 방법은?

MCP 서버는 직접 만들 수도 있고, 이미 만들어진 것을 가져다 쓸 수도 있어요:

  1. 직접 코딩해서 만들기

    • Python이나 Node.js로 직접 코드를 작성
    • 복잡하지만 자유도 높음
  2. AI를 사용해서 자동 생성하기

    • Cursor, MCP Generator 같은 도구가 자동으로 서버를 만들어 줌
  3. 커뮤니티에서 공유된 서버 사용하기

    • 이미 만들어진 오픈소스 MCP 서버를 가져다 쓰고, 필요한 기능만 수정하면 됨
    • 예: 날씨 서버, 이메일 서버 등
  4. 공식 서버 사용하기 (기업 제공)

    • Stripe, Cloudflare 같은 기업들이 직접 만든 MCP 서버 제공
    • LangChain과 비슷하게 각 벤더들이 공식 패키지 형태로 유지보수함

💡 중요한 팁: 다시 만들지 마세요!

이미 누군가가 만든 MCP 서버가 있을 확률이 높습니다.
새로 만들기 전에 먼저 검색해 보세요.
예: Stripe 서버가 이미 있다면, 굳이 처음부터 만들 필요 없음!

부족한 기능이 있다면 해당 기업에 연락해서 기능 추가를 요청할 수도 있어요.


🧪 MCP 서버는 어떻게 실행되나요?

MCP 서버는 여러 방식으로 실행할 수 있어요:

  1. 로컬 실행 (stdin/stdout)

    • 가장 간단한 방법 (터미널에서 실행)
  2. 원격 실행 (SSE, SSH 등)

    • 다른 컴퓨터나 클라우드에서 실행
  3. 도커(Docker) 컨테이너 실행

    • 컨테이너화해서 배포 가능 (예: 서버 환경 일관성 유지)

🤖 MCP 서버의 고급 기능: 샘플링(Sampling)

AI에게 “이런 프롬프트를 줬을 때 어떤 응답을 하겠니?” 하고 직접 물어볼 수 있는 기능입니다.
이 기능은 강력하지만, 보안·개인정보 문제가 있을 수 있으니 주의가 필요해요.
강의 후반부에서 더 자세히 다룰 예정입니다.


🧩 응용: 서로 연결되는 MCP 서버들

흥미로운 점은, 하나의 프로그램이 **클라이언트(MCP 요청자)**이면서 동시에 **서버(MCP 제공자)**도 될 수 있다는 것입니다.

이렇게 되면 다양한 역할을 가진 여러 에이전트(AI 앱)들이 서로 연결되어,
복잡한 작업도 협업해서 처리할 수 있게 됩니다.


🌍 MCP 생태계의 미래

MCP는 현재 빠르게 발전 중입니다. 앞으로 이런 기능들이 추가될 거예요:

  1. 공식 MCP 서버 등록소(Registry)

    • 전 세계 사람들이 만든 MCP 서버를 검색하고 활용할 수 있는 플랫폼
  2. 공식 인증 시스템

    • 악성 MCP 서버(예: 해커가 만든 가짜 Stripe 서버)를 구분할 수 있는 안전장치
  3. 웹사이트 기능 노출

    • 앞으로는 웹사이트가 AI에게 **"이런 기능이 있어요!"**라고 알려주는 규격을 가질 예정
    • robots.txt처럼 /.well-known/mcp.json 같은 파일로 기능 안내
  4. 보안 기능 강화

    • OAuth 2.0, 세션 토큰 등을 이용한 인증 시스템 도입 예정

✅ 요약

항목설명
MCP 서버AI가 다양한 도구·데이터를 표준화된 방식으로 사용할 수 있게 도와주는 시스템
제공 기능Tools (함수), Resources (데이터), Prompts (템플릿)
구현 방식직접 개발 / 자동 생성 / 커뮤니티 / 기업 제공
실행 방식로컬 / 원격 / Docker
미래 전망인증, 보안, 탐색 기능, 웹 연동까지 확대 예정

🛠 MCP Inspector란 무엇인가요?

Tutorials Inspector: https://modelcontextprotocol.io/docs/tools/inspector

inspector github: https://github.com/modelcontextprotocol/inspector


MCP Inspector라는 도구에 대해 소개하려고 합니다.

이 도구는 Anthropic이라는 회사에서 만든 **Model Context Protocol(MCP)**의 일부로,
MCP 서버를 **개발하고 디버깅(오류 수정)**하는 데 아주 유용하게 사용되는 오픈소스 도구입니다.

🔧 왜 중요한가요?

MCP 서버를 만들다 보면, 다음과 같은 작업이 필요합니다:

  • 내가 만든 MCP 서버가 정상적으로 작동하는지 확인
  • 서버에 연결된 **툴(tool)**이나 **리소스(resource)**가 잘 노출되고 있는지 확인
  • 각 기능들이 제대로 작동하는지 직접 테스트
  • 로그나 오류 메시지 확인

이런 과정을 쉽게 해주는 도구가 바로 MCP Inspector입니다.
말하자면, AI 도구 개발자를 위한 전용 실험실이라고 볼 수 있어요.


🌐 설치 없이 실행 가능!

MCP Inspector는 따로 복잡하게 설치할 필요 없이 npm 명령어로 바로 실행할 수 있어요.
즉, 로컬 컴퓨터에서 간단하게 실행하고 테스트할 수 있는 개발 도구입니다.


🧩 어떤 기능들이 있나요?

MCP Inspector는 여러 가지 탭(tab)으로 구성되어 있는데, 각각의 기능은 다음과 같아요:

  1. Resources 탭

    • 서버에 어떤 리소스가 있는지 보여줍니다.
    • 리소스의 **설명(Metadata)**과 실제 **내용(Content)**도 확인 가능해요.
  2. Prompts 탭

    • AI에게 전달될 프롬프트 템플릿을 볼 수 있어요.
    • 프롬프트에 들어갈 **입력값(Arguments)**도 확인할 수 있고,
    • 직접 입력해보며 테스트도 할 수 있습니다!
  3. Tools 탭

    • 서버가 제공하는 모든 툴 목록
    • 각 툴이 어떻게 작동하는지 **스키마(schema)**를 보여줘요.
    • 그리고 이 툴들을 직접 실행하고 결과도 확인할 수 있어요!
  4. Notifications 탭

    • 서버에서 발생하는 알림 메시지오류 로그를 실시간으로 볼 수 있습니다.

🧪 실제 사용 예시

영상에서는 실제로 로컬에 실행 중인 MCP 서버에 연결해서 테스트해봅니다.
이번에 연결한 서버는 유명한 소프트웨어의 **문서(documentation)**를 가져오는 기능이 있어요.

  • list document sources라는 툴: 문서를 제공하는 출처 목록을 보여줌
  • fetch docs라는 툴: 사용자가 원하는 특정 패키지의 문서를 가져옴

Inspector에서 이 툴들을 직접 실행해보면,
입력값을 바꾸고, 출력 결과를 확인하면서 내 MCP 서버가 제대로 작동하는지 바로 알 수 있어요.


✅ 요약

MCP Inspector는 다음과 같은 목적을 가진 개발자 도구입니다:

  • 🧠 MCP 서버를 쉽게 확인하고 테스트
  • 🛠 툴/프롬프트/리소스를 시각적으로 디버깅
  • 설치 없이 빠르게 사용 가능 (npm으로 실행)

MCP 기반의 AI 서버를 만든다면, 이 도구는 거의 필수입니다!

Inspector 공식문서 (25.05)

In-depth guide to using the MCP Inspector for testing and debugging Model Context Protocol servers

The MCP Inspector is an interactive developer tool for testing and debugging MCP servers. While the Debugging Guide covers the Inspector as part of the overall debugging toolkit, this document provides a detailed exploration of the Inspector's features and capabilities.

Getting started

Installation and basic usage

The Inspector runs directly through npx without requiring installation:

npx @modelcontextprotocol/inspector <command>
npx @modelcontextprotocol/inspector <command> <arg1> <arg2>

Inspecting servers from NPM or PyPi

A common way to start server packages from NPM or PyPi.

```bash npx -y @modelcontextprotocol/inspector npx # For example npx -y @modelcontextprotocol/inspector npx server-postgres postgres://127.0.0.1/testdb ``` ```bash npx @modelcontextprotocol/inspector uvx # For example npx @modelcontextprotocol/inspector uvx mcp-server-git --repository ~/code/mcp/servers.git ```

Inspecting locally developed servers

To inspect servers locally developed or downloaded as a repository, the most common
way is:

```bash npx @modelcontextprotocol/inspector node path/to/server/index.js args... ``` ```bash npx @modelcontextprotocol/inspector \ uv \ --directory path/to/server \ run \ package-name \ args... ```

Please carefully read any attached README for the most accurate instructions.

Feature overview

The Inspector provides several features for interacting with your MCP server:

Server connection pane

  • Allows selecting the transport for connecting to the server
  • For local servers, supports customizing the command-line arguments and environment

Resources tab

  • Lists all available resources
  • Shows resource metadata (MIME types, descriptions)
  • Allows resource content inspection
  • Supports subscription testing

Prompts tab

  • Displays available prompt templates
  • Shows prompt arguments and descriptions
  • Enables prompt testing with custom arguments
  • Previews generated messages

Tools tab

  • Lists available tools
  • Shows tool schemas and descriptions
  • Enables tool testing with custom inputs
  • Displays tool execution results

Notifications pane

  • Presents all logs recorded from the server
  • Shows notifications received from the server

Best practices

Development workflow

  1. Start Development

    • Launch Inspector with your server
    • Verify basic connectivity
    • Check capability negotiation
  2. Iterative testing

    • Make server changes
    • Rebuild the server
    • Reconnect the Inspector
    • Test affected features
    • Monitor messages
  3. Test edge cases

    • Invalid inputs
    • Missing prompt arguments
    • Concurrent operations
    • Verify error handling and error responses

Next steps

Check out the MCP Inspector source code Learn about broader debugging strategies

🧠 LLMs를 위한 안내판, llm.txt란?

LLMs-txt Overview: https://langchain-ai.github.io/langgraph/llms-txt-overview/

llm.txt는 웹사이트에 있는 중요한 정보들을 **AI 모델(예: ChatGPT, Gemini 등)**이 더 잘 이해하고 분석할 수 있도록 도와주는 파일입니다.
쉽게 말하면, AI가 웹사이트를 빠르게 파악할 수 있도록 도와주는 요약 가이드예요.


🗂️ 어디에 두는 건가요?

이 파일은 보통 **웹사이트의 최상위 폴더(root)**에 위치합니다.
예: https://example.com/lm.txt

웹사이트를 관리하는 사람(운영자, 개발자 등)이 이 파일을 직접 작성해서 넣어야 해요.


💡 llm.txt 안에는 어떤 정보가 들어있나요?

이 파일은 보통 Markdown 형식으로 작성되고, 다음과 같은 내용이 포함됩니다:

  1. 중요한 페이지들의 URL 목록
  2. 각 페이지의 간단한 설명
  3. (선택사항) 추가 메타데이터, 키워드 등

예시:

- https://example.com/about : 회사 소개 페이지입니다.
- https://example.com/docs/memory : 메모리 기능에 대한 문서입니다.

이렇게 간단한 형태로 되어 있어서 **기계(=AI)**가 쉽게 분석할 수 있어요.


✅ 이걸 왜 써야 하죠? (장점)

1. AI가 웹사이트를 더 정확하게 이해

AI가 웹사이트를 분석할 때 lm.txt가 있으면, 어떤 페이지가 중요한지 빠르게 알 수 있어요.

2. 실시간 정보 추출이 쉬워짐

AI 에이전트가 웹사이트에서 실시간으로 정보를 찾을 때, 어떤 링크를 우선 탐색해야 할지 알려줘요.

3. AI 검색엔진에 더 잘 노출됨 (SEO 향상)

검색엔진도 AI를 사용하니까, lm.txt가 있으면 콘텐츠가 더 잘 드러나요.

4. 사이트 구조 파악이 쉬움

사이트 전체를 훑지 않고도 전체 맥락을 알 수 있으니, AI가 더 똑똑하게 행동할 수 있어요.


📁 llm.txt vs llm.full.txt 차이점

Anthropic과 LangChain 팀은 두 가지 버전을 사용해요:

종류설명용도
llm.txt간단한 버전. URL + 간단한 설명만 포함빠르고 가볍게 AI가 구조 파악할 때
llm.full.txt전체 페이지 내용까지 포함된 버전. 파일 크기가 큼AI가 오프라인에서 전체 내용을 바로 참고할 때

🧑‍💻 언제 어떻게 쓰면 좋을까?

🔹 llm.txt (요약 버전)

  • AI 에이전트 + 웹 크롤링 도구(FireCrawl 등) 조합일 때 좋아요.

  • 예: 메모리에 대한 정보가 필요할 때

    • 에이전트는 llm.txt를 읽고, 어떤 페이지에 메모리 정보가 있는지 확인
    • 해당 URL만 웹에서 실시간으로 다운로드 → 정보 분석
  • 실시간 정보 획득이 가능하지만:

    • 여러 번 요청해야 하므로 시간이 좀 더 걸릴 수 있음 (=지연 있음)

🔹 llm.full.txt (전체 텍스트 포함 버전)

  • 웹에 요청할 필요 없이, 모든 내용을 이미 갖고 있어요.
  • Vector DB 등에 **인덱싱(검색 가능하게 저장)**하면 매우 빠르게 활용 가능
  • 단점: 파일 크기가 크고, 메모리/저장소 요구가 커짐

⚖️ 요약 비교

항목lm.txtlm.full.txt
실시간 정보가능 (웹에서 직접 가져옴)불가능 (미리 저장된 데이터)
속도느릴 수 있음 (요청 과정 필요)빠름 (이미 가지고 있음)
크기작음
유지보수동적이므로 최신 정보 반영 쉬움수동으로 갱신해야 함
활용법크롤링 도구 + AI 조합에 적합자체 AI 앱 + 벡터 DB에 적합

🤖 실제 활용 예 (MCP와 함께)

이 방식은 MCP 서버 + AI 에이전트 환경에서 특히 강력해요.
예를 들어:

  • llm.txt를 읽고 → 필요한 정보가 있는 페이지만 추출해서
  • MCP를 통해 → 크롤링하고 → AI에 전달하면,
  • 매우 정확하고 효율적인 정보 검색이 가능해요!

다음 영상에서는 **직접 구현 예시(Hands-on)**를 보여준다고 하니, 개념이 어려워도 걱정하지 마세요.


🧩 정리

  • llm.txtAI가 웹사이트 구조와 핵심 정보를 빠르게 이해하도록 도와주는 파일
  • llm.full.txt모든 내용을 담은 고용량 버전
  • 웹사이트가 AI 친화적이 되려면, 이 파일을 준비해두는 것이 매우 유리
  • LangChain, MCP 등 다양한 AI 개발 프레임워크와도 연동 가능

예시 파일 형태나 템플릿

📄 llm.txt 예시 (간단 요약 버전)

AI가 빠르게 사이트의 구조를 파악하도록 도와주는 요약형 버전

# llm.txt - LLM Friendly Site Map

- https://example.com/           : 홈페이지. 사이트의 전반적인 소개와 최근 소식을 담고 있습니다.
- https://example.com/about      : 회사 소개. 비전, 팀 소개 및 연락처가 있습니다.
- https://example.com/docs       : 기술 문서의 메인 페이지입니다.
- https://example.com/docs/api   : API 설명서입니다. 사용법, 요청 예시 등이 포함되어 있습니다.
- https://example.com/blog       : 기술 블로그. 최신 업데이트와 개발 팁을 공유합니다.
- https://example.com/contact    : 문의하기 페이지. 이메일과 소셜 링크가 포함되어 있습니다.

📄 lm.full.txt 예시 (전체 내용 버전)

AI가 사전 분석 없이 모든 정보를 통째로 받아볼 수 있도록 하는 전체 버전입니다.

# llm.full.txt - Full Content Index for LLMs

## https://example.com/
Welcome to Example.com – your go-to platform for AI-powered solutions. Learn more about our mission, recent projects, and explore resources designed for developers and researchers.

## https://example.com/about
### Our Mission
We aim to democratize artificial intelligence for all.

### Meet the Team
Our passionate developers, researchers, and community managers come from diverse backgrounds in tech and academia.

### Contact
Email: contact@example.com  
Location: Seoul, South Korea

## https://example.com/docs/api
### Authentication
All API requests require an API key provided during signup.

### Endpoints
- GET /api/v1/users – Retrieve a list of users  
- POST /api/v1/chat – Send a chat message to the AI engine

### Rate Limiting
Maximum 1000 requests per hour.

## https://example.com/blog
- [2025-04-21] Introducing Our New Chatbot Platform
- [2025-03-05] How We Use Vector Embeddings for Document Search
- [2025-01-10] Scaling LLMs with Hybrid Cloud Infrastructure

💡 사용 팁

용도추천 템플릿
AI가 구조만 알게 하고, 크롤링해서 실시간 분석하게 만들고 싶다llm.txt
전체 내용을 미리 벡터DB에 넣고 검색/응답 성능을 높이고 싶다llm.full.txt

좋아요. 지금 설명드릴 내용은 **MCP 서버(MCP Server)** 가 어떻게 "실시간 문서 검색 도구"처럼 작동해서, **Cloud Desktop**이나 **Cursor** 같은 AI 도우미에게 가장 최신의 정보를 제공할 수 있게 도와주는지를 다룬 내용입니다. 초보자도 이해할 수 있도록, 최대한 쉽고 자세히 설명드릴게요.

🧠 MCP 서버가 뭐 하는 건가요?

우선 MCP(Server)는 LLM(AI 모델)이 외부 정보를 실시간으로 가져올 수 있게 해주는 **“다리 역할”**을 합니다.
여기서 설명된 MCP 서버는 특히 "문서(docs)"를 실시간으로 찾아주는 도우미 역할을 해요.

보통 오픈소스 프로젝트의 문서는 빠르게 바뀌고, 예전 내용을 AI에게 알려주면 금방 오래된(stale) 정보가 될 수 있어요.
그래서 이 MCP 서버는 AI가 매번 최신 문서를 실시간으로 긁어와서(스크래핑해서) 답변에 활용할 수 있도록 해주는 역할을 합니다.


📚 문서 읽는 과정을 '책 비유'로 쉽게 설명

  1. lmtxt (lm.txt) 라는 파일이 있어요.
    이건 마치 책의 목차와 같아요.

    • 각 챕터가 어떤 주제를 다루는지
    • 각 주제는 어떤 URL에 있는지 (예: "LangGraph의 Memory 개념은 여기 링크에 있어요")
      이 정보들을 담고 있는 텍스트 파일입니다.
  2. MCP 서버는 먼저 이 목차 파일을 찾아서 봐요.

  3. 사용자가 "LangGraph memory가 뭐야?" 라고 물으면,

    • 서버는 목차를 살펴보고
    • 관련된 URL을 찾아서
    • 그 URL에 들어가서 웹사이트 내용을 실시간으로 긁어오고(스크래핑),
    • 그 내용을 AI에게 전달해주는 거예요!

🔧 실제 실행 흐름 (단계별 설명)

  1. 코드 다운로드 및 실행 준비

    • GitHub에서 MCP 서버 코드를 클론함
    • uv라는 Python 기반 서버 도구를 설치함 (가볍고 빠른 웹 서버용 도구)
    • Python 가상환경을 만들고, 의존성 패키지들을 설치함
  2. 서버 실행

    • uv 명령어로 서버를 실행하면 MCP 서버가 8082번 포트에서 대기합니다.
    • 서버가 준비되면 요청을 받을 준비 완료!
  3. MCP Inspector로 디버깅

    • MCP Inspector는 MCP 서버에 연결해서 어떤 툴이 있는지 확인할 수 있는 도구예요
    • 여기에 접속하면 MCP 서버가 어떤 기능을 제공하는지 시각적으로 확인 가능
  4. 제공 툴 예시

    • list_sources: 목차(lmtxt)에 있는 URL 목록을 보여줌
    • fetch_docs: 특정 URL의 내용을 실시간으로 가져옴

🧑‍💻 Cloud Desktop과 연결하는 방법

  1. Cloud Desktop의 설정 파일(JSON)을 엽니다

  2. MCP 서버가 어떻게 실행되어야 하는지 정의한 설정 스니펫을 복사해서 붙여넣습니다

    • 예를 들면 MCP 서버는 uv로 실행되고
    • 사용하는 포트는 8081
    • 실행 경로는 절대 경로로 지정
    • 사용 방식은 stdio (터미널 입력/출력 기반 연결)
  3. 설정 저장 후 Cloud Desktop 재시작


🧪 실시간 작동 확인하기

이제 MCP 서버가 제대로 연결되었는지 확인해 볼 수 있습니다.

  1. 예전에는 Cloud Desktop이 “LangGraph memory”에 대해 자신이 훈련된 내용 기반으로만 대답했어요
    → 최신 내용이 아닐 수 있음

  2. 이제는 MCP 서버가 연결되었으니,

    • 먼저 list_sources 도구로 lmtxt URL을 찾고
    • 그 URL을 기반으로 실제 문서들을 긁어오고
    • 그중 “memory”라는 단어가 포함된 페이지를 찾아
    • 그 페이지 내용을 긁어서
    • 진짜 최신 정보 기반으로 대답하게 됩니다!

✅ 결과

최종적으로 Cloud Desktop은

  • AI가 오래된 기억으로만 답하지 않고,
  • 최신 문서에서 필요한 내용을 긁어와서
  • 더 정확하고 최신의 답을 줄 수 있게 되는 거예요.

이 모든 걸 가능하게 해주는 게 바로 MCP 서버입니다!


📌 요약

단계설명
1.MCP 서버는 실시간 문서 조회 기능 제공
2.lmtxt 파일은 '문서의 목차' 역할
3.사용자 질문 → 관련 문서 URL 추출 → 해당 페이지 실시간 스크래핑
4.Cloud/Desktop 설정에 MCP 서버 연결
5.AI는 최신 문서를 직접 읽고 답함

이제 “AI가 직접 문서를 읽고 답해주는” 미래가 아주 가까워졌다는 느낌이 들죠 😄
이 기능은 AI의 정확도와 최신성 문제를 아주 잘 해결해줍니다.

혹시 이 내용을 그림이나 다이어그램으로도 보고 싶으신가요?

profile
IT를 좋아합니다.

0개의 댓글