엑셀이나 CSV로 관리하는 장부를 클로드가 직접 찾아보고 고치게 하려면 그 사이를 이어 주는 MCP 서버가 필요합니다. mcp-server-dev(MCP 서버 개발)는 Anthropic 공식 플러그인 디렉터리에 있는 스킬 묶음으로, MCP 서버를 어떤 방식으로 만들고 도구를 어떻게 설계할지 안내합니다. 플러그인은 무료지만 쓸 때 클로드 사용량이 듭니다. 가상 식당의 예약 장부를 조회·추가하는 MCP 서버를 같은 요청으로 플러그인 없이 2번, 있이 2번 만들게 하고, 만든 서버를 실제로 띄워 채점했습니다.
MCP(Model Context Protocol)는 클로드 같은 AI가 바깥 프로그램·파일에 연결되는 공통 규격입니다. 처음이라면 MCP 뜻과 연결하는 법을 먼저 보세요.
- 네 번 모두 실제로 돌아가는 서버가 나왔습니다. 채점 8개 중 플러그인 없이 6·6점, 있이 7·7점이었습니다.
- 점수 차이는 도구 선언 한 곳에서 났습니다. 플러그인 쪽은 예약 추가 도구에 “읽기 전용 아님” 표시와 “인원 1명 이상” 제약을 달았습니다.
- 사용량은 0.50~0.58달러로 비슷했고 네 번 모두 2분이 안 걸렸습니다. 스킬을 실제로 부른 것은 두 번 중 한 번뿐이었습니다.
결과부터 보기: 만든 서버로 예약 찾고 넣기
영상은 요청문, 만든 서버를 클로드 코드에 연결해 예약을 찾고 넣은 장면, 채점표, 실제로 달라진 코드, 사용량 순서입니다.
직접 눌러 보기: 네 번이 만든 server.py 전문과 클로드의 답 열어 보기
직접 실행 확인한 날짜 2026-10-18
- 실행 환경
- macOS 26.1 · Claude Code 2.1.302 · Opus 5.5 · 생각 깊이 중간 (네 번 모두 같은 설정) · 파이썬 mcp 2.3.0, fastmcp 4.1.1
- 설치 난이도
- 명령 한 줄. 안에 든 것은 스킬 3개(문서만, 실행 파일 없음)
- 비용
- 플러그인은 무료. 서버 하나 만드는 데 API 단가로 0.50~0.58달러어치 사용량
- 라이선스
- Apache-2.0 (anthropics/claude-plugins-official)
따라 해 보기: 요청문과 실습 재료
장부 파일이 있는 폴더에서 클로드 코드를 열고 아래처럼 요청하면 됩니다. 클로드 코드가 처음이라면 클로드 코드 설치 방법을 먼저 보세요. 실습 재료(zip)에는 가상 예약 장부, 요청문, 채점 기준, 플러그인 있이 1회차가 만든 server.py를 넣었습니다.
우리 가게(<가게 종류>) 예약 장부 <장부 파일 이름>.csv를 클로드가 직접 조회하고 새 예약을 넣을 수 있게 MCP 서버를 만들어 줘. 내 맥에서 나만 쓰고, 할 일은 '날짜나 이름으로 예약 찾기'와 '새 예약 추가' 두 가지야. 화면이나 로그인은 필요 없어. 파이썬으로 만들어 줘. 다 만들면 이 폴더에서 서버를 띄우는 명령을 run.txt에 한 줄로 적어 줘.
<…> 부분은 내 장부에 맞게 바꿉니다. 좋은 결과라면 server.py 하나와 실행 명령이 나오고, 클로드가 장부 사본으로 찾기·추가·틀린 입력 거절을 직접 시험해 봤다고 알려 줍니다. 실험 때는 미리 만든 파이썬 환경을 쓰라는 문장을 더 붙였습니다. “나만 쓴다”, “할 일 두 가지”, “화면·로그인 필요 없음”을 요청에 넣은 이유는 아래 스킬이 처음에 묻는 질문이기 때문입니다.
mcp-server-dev에 들어 있는 것
claude plugin details로 뽑은 구성은 스킬 3개뿐입니다. 명령·에이전트·훅·MCP 서버는 없습니다. 스킬은 상황이 맞으면 클로드가 꺼내 읽는 지시 문서입니다.

| 스킬 | 언제 불리나·무엇을 하나 (SKILL.md 기준) | 부를 때 분량 |
|---|---|---|
build-mcp-server | “MCP 서버 만들어 줘”에 불리는 입구. 무엇에 연결하는지·누가 쓰는지·동작이 몇 개인지·화면이 필요한지·로그인 방식을 먼저 묻고, 배포 방식과 도구 설계 방식을 하나 골라 권한 뒤 만들거나 아래 두 스킬로 넘김 | 약 4.4k토큰 |
build-mcp-app | 대화 안에 입력 양식·목록 선택·확인 창 같은 화면(위젯)을 띄우는 MCP 앱 만들기 | 약 7.2k토큰 |
build-mcpb | 내 컴퓨터에서 도는 서버를 파이썬·노드 없이 설치되는 파일 하나(.mcpb)로 묶기 | 약 2.8k토큰 |
깔아 두면 매 대화에 약 504토큰이 들어갑니다. 스킬 3개의 설명문이 항상 실리기 때문입니다.
build-mcp-server가 권하는 순서는 이렇습니다. 클라우드 서비스를 잇는 서버는 주소만 등록하면 되는 원격(HTTP) 서버를 기본으로 권하고, 내 컴퓨터의 파일·앱을 다뤄야 하면 MCPB 묶음, 나 혼자 쓰는 시험용이면 로컬(stdio) 서버를 고릅니다. 동작이 15개쯤 아래면 동작마다 도구 하나, 수십 개가 넘으면 “찾기+실행” 도구 두 개로 묶으라고 합니다. 기본은 타입스크립트 공식 SDK이고, 파이썬을 원하면 FastMCP를 권합니다.
딸린 도구 설계 문서에는 Anthropic 디렉터리에 올릴 때 떨어지는 기준이 정리돼 있습니다. 읽기와 쓰기 도구를 나눌 것, 도구마다 title·readOnlyHint(읽기 전용)·destructiveHint(지우거나 덮어씀) 주석을 달 것, 매개변수마다 설명과 범위 제약을 둘 것, 오류는 서버를 죽이지 말고 도구 오류로 돌려줄 것 같은 내용입니다. 이번 채점 기준도 여기서 뽑았습니다.
1단계. 플러그인 깔기 (약 1분)
서버를 만들 폴더에서 터미널에 아래 명령을 실행합니다. claude-plugins-official은 클로드 코드에 처음부터 등록된 공식 플러그인 저장소이고, --scope local은 이 폴더에서만 켜는 옵션입니다.
claude plugin install mcp-server-dev@claude-plugins-official --scope local
claude plugin details mcp-server-dev
이렇게 나오면 성공 ✔ Successfully installed plugin: mcp-server-dev@claude-plugins-official (scope: local)(플러그인 설치 성공, 범위: 이 폴더). 구성 목록에 Skills (3) build-mcp-app, build-mcp-server, build-mcpb가 나옵니다.
- 설치 명령이 플러그인을 찾지 못하면
claude plugin marketplace add anthropics/claude-plugins-official로 저장소를 등록한 뒤 다시 설치합니다. - 클로드 앱에서는 디렉터리에서 설치합니다(디렉터리 여는 법). 이 글은 클로드 코드 터미널 기준입니다.
필요 없어지면 같은 폴더에서 아래 명령으로 지웁니다.
claude plugin uninstall mcp-server-dev@claude-plugins-official --scope local
2단계. 같은 요청으로 서버 만들게 하기 (약 2분)
이 단계에서는 같은 요청을 플러그인 없이·있이 보내 결과를 비교합니다. 장부는 가상 식당의 예약 5건입니다. 칸은 예약번호·날짜·시간·이름·전화·인원·테이블·메모이고, 메모 하나에는 쉼표(“생일, 케이크 반입”)를 넣었습니다. 같은 요청을 플러그인 없이 2번, 있이 2번 보냈습니다.
채점은 사람이 읽지 않고, 만든 서버를 run.txt 명령으로 실제로 띄운 뒤 MCP 클라이언트로 붙어서 확인했습니다. 기준은 실행 전에 도구 설계 문서와 디렉터리 제출 점검표에서 뽑아 고정했고, 요청문에는 넣지 않았습니다.
| 채점 항목 | 없이 1·2 | 있이 1·2 |
|---|---|---|
| 서버가 뜨고 도구 목록에 응답 | ✓ ✓ | ✓ ✓ |
| 조회 도구와 추가 도구가 따로 있음 | ✓ ✓ | ✓ ✓ |
| 모든 도구에 주석 3종(title·읽기 전용·파괴) | ✗ ✗ | ✗ ✗ |
| 모든 매개변수에 설명 | ✓ ✓ | ✓ ✓ |
| 스키마에 형식·범위 제약(예: 인원 1 이상) | ✗ ✗ | ✓ ✓ |
| 틀린 날짜(2026-13-45)는 도구 오류로 거절, 장부에 안 들어감 | ✓ ✓ | ✓ ✓ |
| 추가하면 새 예약번호를 돌려주고 장부에 한 줄 늘어남 | ✓ ✓ | ✓ ✓ |
| “김민수”로 찾으면 2건 | ✓ ✓ | ✓ ✓ |
| 합계(8점) | 6 · 6 | 7 · 7 |
| ① 플러그인 없음 (1·2) | ② 플러그인 있음 (1·2) | |
|---|---|---|
| 부른 스킬 | 해당 없음 | build-mcp-server · 부르지 않음 |
| 만든 것 | server.py, run.txt (FastMCP, 로컬 stdio) | 같음 |
| 걸린 시간 | 1분 반쯤 | 2분이 안 걸림 · 1분 남짓 |
| 사용량(API 단가) | 0.50 · 0.51달러 | 0.58 · 0.51달러 |
네 번 모두 구조가 거의 같았습니다. 도구는 find_reservations(찾기)와 add_reservation(추가) 두 개, 예약번호는 마지막 번호 다음으로 자동, 같은 날짜·시간·테이블이 겹치면 거절하는 규칙을 스스로 넣었습니다. 장부를 쓰는 동안 파일을 잠그는 처리도 네 번 다 들어갔습니다.
채점이 갈린 한 곳
예약 추가 도구를 선언하는 줄입니다. 플러그인 없이 한 두 번은 찾기 도구에만 readOnlyHint: True를 달고 추가 도구에는 아무 주석도 달지 않았습니다. 인원 1명 이상 검사는 함수 안에만 있었습니다. 2회차는 매개변수 설명에 “(1 이상)”이라고 적었지만, 스키마의 범위 제약으로는 걸지 않았습니다.
@mcp.tool(annotations={"readOnlyHint": False, "destructiveHint": False, "idempotentHint": False})
def add_reservation(
...
party: Annotated[int, Field(ge=1, description="인원 수")],
플러그인 있이 두 번은 주석 줄이 똑같았고, 인원 1명 이상 제약도 같았습니다. 다만 2회차는 스킬을 부르지 않았습니다. 깔아 두면 실리는 스킬 설명만으로 달라졌는지는 이번 실험으로 가릴 수 없습니다. 스킬을 부른 1회차도 스킬이 시킨 공식 문서(claude.com/docs/llms-full.txt) 가져오기는 하지 않았습니다.
주석 3종은 네 번 모두 못 채웠습니다. 찾기 도구에는 읽기 전용 표시만 있었고, title은 직접 쓰지 않아 FastMCP가 이름으로 “Find Reservations”를 자동으로 붙였습니다. 점검표는 데이터를 바꾸는 도구에 destructiveHint를 true로 달라고 하는데, 플러그인 쪽은 예약 추가가 기존 줄을 지우지 않는다고 보고 false로 두었습니다. 디렉터리에 올릴 서버라면 “점검표대로 주석을 달아 줘”라고 따로 요청하는 편이 확실합니다.
3단계. 만든 서버를 클로드 코드에 연결해 쓰기 (약 1분)
서버를 만들었으면 클로드 코드에 등록해야 클로드가 도구로 씁니다. 네 번 모두 마지막 답에 아래 꼴의 등록 명령을 알려 줬습니다. 등록할 때는 파이썬과 server.py를 절대 경로로 적습니다.
claude mcp add reservations -- /<경로>/.venv/bin/python /<경로>/server.py
등록한 뒤 클로드 코드에서 평소 말로 부탁하면 됩니다. 아래는 플러그인 있이 1회차가 만든 서버를 연결해 보낸 요청과 결과입니다.
요청: 10월 21일 예약 보여 주고, 23일 저녁 7시에 정하늘 님 2명(010-7777-8888) T4로 예약 넣어 줘.
→ find_reservations {"date": "2026-10-21"}
→ add_reservation {"date": "2026-10-23", "time": "19:00", "name": "정하늘", "phone": "010-7777-8888", "party": 2, "table": "T4"}
10월 21일 예약은 2건입니다.
| R-0003 | 12:00 | 박지훈 | 010-9876-5432 | 6명 | T5 | 생일, 케이크 반입 |
| R-0004 | 18:30 | 최유진 | 010-5555-1111 | 3명 | T2 | 유아 의자 1개 |
말씀하신 예약은 **R-0006**으로 등록했습니다. 10월 23일 19:00, 정하늘 님 2명, 연락처 010-7777-8888, 테이블 T4입니다.
- 이렇게 나오면 성공 클로드가
find_reservations·add_reservation을 부르고, 장부 파일 맨 아래에R-0006,2026-10-23,19:00,정하늘,…줄이 생깁니다. 이 요청 한 번은 0.10달러어치였습니다. claude mcp list에서 서버가 연결 실패로 나오면: 등록한 경로가 상대 경로인지 확인합니다. 네 번 모두 절대 경로로 등록 명령을 적어 줬습니다.- 등록을 지우려면
claude mcp remove reservations를 실행합니다(MCP 연결 공식 문서).
이런 사람에게 권합니다
- ✅ 남에게 나눠 줄 MCP 서버를 만드는 사람. 원격 서버·로그인(OAuth)·MCPB 묶음·디렉터리 제출 기준처럼, 이번 실험에서 쓰지 않은 큰 결정을 안내하는 문서가 들어 있습니다(공식 설명 기준).
- ✅ 대화 안에 입력 양식이나 확인 창을 띄우는 MCP 앱을 만들려는 사람. build-mcp-app이 그 일만 다룹니다(공식 설명 기준).
- ❌ 내 컴퓨터에서 나만 쓸 작은 서버가 목적인 사람. 이번 과제에서는 플러그인 없이도 돌아가는 서버가 나왔고, 차이는 주석과 제약 한 줄이었습니다.
한계와 주의할 점
- 도구 두 개짜리 작은 서버 하나로, 조건마다 두 번씩만 돌렸습니다. 스킬이 힘을 쓰는 원격 배포·로그인·화면 위젯은 시험하지 않았습니다.
- 스킬 일부는 버전이 지났습니다. 스킬 문서는 FastMCP 3.x를 권하지만 2026-10-18 파이썬 패키지 최신은 fastmcp 4.1.1, 공식 mcp 2.3.0이었습니다. 이번 네 번은 설치된 4.1.1에 맞춰 코드를 썼습니다.
- 플러그인 있이 2회차는 한국어로 요청했는데 마지막 답을 영어로 했습니다. 서버 코드의 설명문은 한국어였습니다. 이번 네 번 중 이 한 번뿐이라 원인은 확인하지 못했습니다.
- 실험에서는 파이썬 환경을 미리 만들어 두고 새 설치를 막았습니다. 처음 하는 분은 클로드가
pip install로 패키지를 깔겠다고 물을 수 있습니다.
대안
| 방법 | 다른 점 | 이럴 때 고르세요 |
|---|---|---|
| mcp-server-dev(이 글) | 배포 방식·도구 설계·제출 기준 안내 문서 3개 | 남에게 나눠 줄 서버, 원격·로그인·화면이 필요한 서버 |
| 말로 요청 | 이번 실험에서 돌아가는 서버가 똑같이 나옴, 주석·제약 한 줄 차이 | 나만 쓰는 작은 서버 |
| Context7 MCP | 서버를 만드는 대신 남이 만든 MCP 서버를 연결 | 최신 라이브러리 문서를 클로드에게 읽히고 싶을 때 |
| claude-code-setup 플러그인 | 내 프로젝트에 맞는 MCP·스킬·훅을 추천 | 무엇을 연결할지부터 고르고 싶을 때 |
자주 묻는 질문
MCP 서버를 만들려면 코딩을 알아야 하나요?
이번 네 번은 요청문 한 번으로 server.py와 실행 명령까지 나왔습니다. 파이썬이 설치돼 있고, 등록 명령을 터미널에 붙여 넣을 정도면 따라 할 수 있습니다. 고칠 일이 생기면 코드를 읽어야 할 수 있습니다.
mcp-server-dev 플러그인은 무료인가요?
플러그인 자체는 무료(Apache-2.0)입니다. 서버를 만들 때 클로드 사용량이 들고, 이번에는 한 번에 0.50~0.58달러어치였습니다. 구독 요금제라면 그만큼 사용량 한도에서 빠집니다.
스킬을 직접 부르려면 어떻게 하나요?
“MCP 서버 만들어 줘”처럼 말하면 클로드가 알아서 꺼내 쓸 수 있지만, 이번에는 두 번 중 한 번만 불렸습니다. 확실히 쓰려면 /mcp-server-dev:build-mcp-server로 부릅니다(플러그인 README 기준).
만든 서버를 클로드 데스크톱 앱에서도 쓸 수 있나요?
스킬 설명에 따르면 내 컴퓨터에서 도는 서버를 남에게 나눠 줄 때는 MCPB 파일로 묶어 앱에 설치하게 하고, 클라우드 서비스를 잇는 서버는 원격 서버로 올려 주소를 커넥터로 등록하라고 권합니다. 이번에는 클로드 코드 연결만 확인했습니다.
출처
mcp-server-dev 플러그인 폴더, build-mcp-server SKILL.md, 도구 설계 문서, 커넥터 제출 점검표, 클로드 코드 MCP 문서 (모두 2026-10-18 확인, 저장소 별 42,079개)