MCP Notepad Server
A learning-focused MCP server that demonstrates core MCP concepts through a simple notepad application, enabling users to create, update, delete, and search notes while exploring tools, resources, and prompts functionality.
README
MCP 메모장 서버 - 학습용 예제
MCP(Model Context Protocol)의 핵심 기능을 학습하기 위한 간단한 메모장 서버입니다.
📚 학습 목표
이 예제를 통해 다음을 배울 수 있습니다:
| 기능 | 설명 | 파일 |
|---|---|---|
| Tools | AI가 실행할 수 있는 액션 정의 | src/tools/noteTools.ts |
| Resources | AI가 읽을 수 있는 데이터 제공 | src/resources/noteResources.ts |
| Prompts | 재사용 가능한 프롬프트 템플릿 | src/prompts/notePrompts.ts |
🚀 빠른 시작
1. 의존성 설치
cd mcp-notes-server
npm install
2. 빌드
npm run build
3. Claude Desktop에 등록
~/Library/Application Support/Claude/claude_desktop_config.json 파일에 추가:
{
"mcpServers": {
"mcp-notes": {
"command": "node",
"args": ["/절대경로/mcp-notes-server/dist/index.js"]
}
}
}
4. Claude Desktop 재시작
📦 제공 기능
Tools (도구)
| 도구명 | 설명 | 입력 |
|---|---|---|
create_note |
새 메모 생성 | title, content, tags? |
update_note |
메모 수정 | id, title?, content?, tags? |
delete_note |
메모 삭제 | id |
search_notes |
메모 검색 | keyword |
Resources (리소스)
| URI | 설명 |
|---|---|
notes://list |
전체 메모 목록 |
notes://note/{id} |
특정 메모 조회 |
Prompts (프롬프트)
| 이름 | 설명 | 인자 |
|---|---|---|
summarize_note |
메모 요약 | noteId, style? |
extract_tags |
태그 추출 | noteId, maxTags? |
organize_notes |
정리 제안 | - |
🗂 프로젝트 구조
mcp-notes-server/
├── src/
│ ├── index.ts # 진입점, 서버 설정
│ ├── store/
│ │ └── noteStore.ts # 인메모리 메모 저장소
│ ├── tools/
│ │ └── noteTools.ts # Tool 정의 및 핸들러
│ ├── resources/
│ │ └── noteResources.ts # Resource 정의 및 핸들러
│ └── prompts/
│ └── notePrompts.ts # Prompt 정의 및 핸들러
├── package.json
└── tsconfig.json
💡 핵심 개념 정리
1. Tool
// 정의
{
name: "create_note",
description: "새 메모 생성",
inputSchema: {
type: "object",
properties: {
title: { type: "string" },
content: { type: "string" }
},
required: ["title", "content"]
}
}
// 핸들러
server.setRequestHandler(CallToolRequestSchema, async (request) => {
// 도구 실행 로직
});
2. Resource
// 정의
{
uri: "notes://list",
name: "메모 목록",
mimeType: "application/json"
}
// 핸들러
server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
// 리소스 읽기 로직
});
3. Prompt
// 정의
{
name: "summarize_note",
description: "메모 요약",
arguments: [
{ name: "noteId", required: true }
]
}
// 핸들러
server.setRequestHandler(GetPromptRequestSchema, async (request) => {
return {
messages: [
{ role: "user", content: { type: "text", text: "..." } }
]
};
});
🔧 개발 팁
디버깅
stderr로 로그 출력 (stdout은 MCP 통신에 사용):
console.error("[Debug] 메시지");
감시 모드 개발
npm run dev # tsc --watch
📖 다음 단계
- 파일 영속화:
noteStore.ts를 수정하여 JSON 파일로 저장 - 추가 리소스: 태그별, 날짜별 필터링 추가
- SSE 전송: HTTP 기반 전송으로 변경해보기
📚 참고 자료
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.