0Pricing
MCP Academy · 강의

도구, 리소스와 프롬프트 구현하기

사용 사례에 필요한 세 가지 기본 요소를 모두 구축합니다.

도구, 리소스와 프롬프트 구현하기은(는) CoddyKit의 무료 MCP Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 MCP Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. MCP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

세 가지 기본 요소를 모두 구현하세요

계획을 세웠으니 이제 실제 코드를 작성합니다. 이 레슨에서는 tool, resource, prompt를 하나의 작동하는 서버로 연결합니다. 🛠️

백엔드를 설정하세요

먼저 서버가 다룰 대상을 준비하세요. 목록이나 SQLite 파일과 같은 작은 저장소에 모든 기본 요소가 공유할 노트를 보관합니다.

import sqlite3

db = sqlite3.connect("notes.db")
db.execute("CREATE TABLE IF NOT EXISTS notes(id INTEGER PRIMARY KEY, title TEXT, body TEXT)")

추가 tool을 작성하세요

첫 번째 tool은 노트를 만듭니다. 데코레이터가 이를 공개하고, 타입 힌트가 인수를 모델이 채울 수 있는 스키마로 변환합니다.

@mcp.tool()
def add_note(title: str, body: str) -> str:
    db.execute("INSERT INTO notes(title, body) VALUES (?, ?)", (title, body))
    db.commit()
    return "Saved."

검색 tool을 작성하세요

키워드로 노트를 검색하는 두 번째 tool을 추가하세요. 일치 항목의 짧은 목록을 반환하면 모델이 결과를 쉽게 사용할 수 있습니다.

@mcp.tool()
def search_notes(query: str) -> list[str]:
    rows = db.execute("SELECT title FROM notes WHERE body LIKE ?", (f"%{query}%",))
    return [r[0] for r in rows]

tool을 명확하게 설명하세요

각 tool에 일반적인 docstring을 작성하세요. 이 텍스트가 tool의 설명이 되며, 설명이 명확하면 모델이 적절한 때에 올바른 tool을 선택할 수 있습니다.

resource를 노출하세요

이제 읽기 전용 컨텍스트를 제공하세요. resource URI를 사용하면 모델이 저장소를 변경하지 않고 노트 하나를 가져올 수 있습니다.

@mcp.resource("note://{note_id}")
def get_note(note_id: int) -> str:
    row = db.execute("SELECT body FROM notes WHERE id = ?", (note_id,)).fetchone()
    return row[0] if row else "Not found."

URI 변수를 가져오세요

URI의 중괄호가 함수 인수가 됩니다. MCP는 경로에서 노트 ID를 바로 가져오므로 각 읽기 요청이 정확히 하나의 레코드를 대상으로 합니다.

prompt를 등록하세요

사용자가 실행할 수 있는 재사용 가능한 prompt를 추가하세요. 요청의 틀을 잡아 호출자가 매번 일관되고 높은 품질의 지침을 받을 수 있게 합니다.

@mcp.prompt()
def summarize(note_id: int) -> str:
    return f"Read note://{note_id} and summarize it in three bullet points."

유용한 텍스트를 반환하세요

모든 결과를 간결하고 사람이 읽기 쉽게 유지하세요. 짧고 명확한 문자열은 모델의 토큰을 절약하고 사용자에게 표시되는 출력도 훨씬 읽기 쉽게 만듭니다.

함께 사용하되 역할은 명확히 하세요

tool은 동작을 수행하고, resource는 읽으며, prompt는 지시합니다. 각 역할을 구분하면 클라이언트와 모델이 언제나 각 요소에서 무엇을 기대해야 하는지 알 수 있습니다.

진입점을 연결하세요

파일 끝에서 서버를 실행하여 클라이언트가 연결할 수 있게 하세요. run 호출이 반복 처리를 시작하고 제어권을 전송 방식에 넘깁니다.

if __name__ == "__main__":
    mcp.run()

빠른 확인

resource URI의 세부 사항을 확인해 보겠습니다.

복습

세 가지 기본 요소를 모두 구현했습니다. tool은 동작하고, resource는 읽으며, prompt는 지시합니다. 이제 종합 프로젝트 서버가 실제 작업을 수행합니다. 🎯

자주 묻는 질문

“도구, 리소스와 프롬프트 구현하기” 강의는 무료인가요?

네 — “도구, 리소스와 프롬프트 구현하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 MCP Academy 강의 전체를 잠금 해제할 수 있습니다. MCP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“도구, 리소스와 프롬프트 구현하기”에서 뭘 배우나요?

사용 사례에 필요한 세 가지 기본 요소를 모두 구축합니다. 브라우저에서 직접 실행하는 실습 코드로 MCP Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

MCP Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 MCP Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“도구, 리소스와 프롬프트 구현하기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 MCP Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 MCP Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 프로젝트와 도구의 범위 정하기
  2. 도구, 리소스와 프롬프트 구현하기
  3. 테스트, 검사와 강화
  4. 서버 문서화 및 게시하기
← MCP Academy(으)로 돌아가기