十大必装 MCP 服务器详解
1. 🐙 GitHub MCP – 代码协作必备
适用场景: 需要频繁操作 GitHub 仓库、查看 Issues、创建 PR
claude mcp add @modelcontextprotocol/server-github
核心功能:
- 🔍 搜索仓库: "查找所有带 bug 标签的 Issue"
- 📝 创建 Issue/PR: "为这个修复创建一个 Pull Request"
- 📊 查看统计: "显示本周的提交记录"
- 🔔 通知管理: "列出我未读的通知"
配置示例:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
}
}
}
}
最佳实践:
- 使用 Fine-grained Personal Access Token,只授予必要权限
- 在
.gitignore中排除配置文件,避免泄露 Token - 为不同项目使用不同的 Token 范围
2. 🧠 Sequential Thinking MCP – 复杂问题推理
适用场景: 需要解决复杂算法、架构设计、调试棘手 Bug
claude mcp add @modelcontextprotocol/server-sequential-thinking
核心功能:
- 🎯 逐步推理: 将复杂问题拆解为多个步骤
- 🔄 思维链可视化: 查看 AI 的推理过程
- ✅ 验证逻辑: 检查推理的每一步是否合理
使用示例:
你: "为什么这个递归函数会导致栈溢出?"
Claude (启用 Sequential Thinking):
思考步骤 1: 检查递归终止条件
思考步骤 2: 分析递归深度
思考步骤 3: 计算内存占用
结论: 缺少边界检查导致无限递归
最佳实践:
- 对于算法优化、性能调优问题特别有效
- 可以要求 Claude "显示详细推理过程"
- 适合学习 AI 如何解决复杂问题
3. 📚 Context7 MCP – 实时技术文档
适用场景: 使用最新框架、查找 API 用法、了解最佳实践
claude mcp add context7
核心功能:
- 🔍 智能搜索: 自动从官方文档、GitHub 讨论、Stack Overflow 查找答案
- 📖 实时更新: 始终获取最新的框架版本信息
- 💡 最佳实践: 包含社区验证的代码示例
支持的技术栈:
- 前端: React, Vue, Next.js, Svelte
- 后端: Django, FastAPI, Express, Rails
- 移动: React Native, Flutter
- 工具: Tailwind CSS, Prisma, Supabase
使用示例:
你: "Next.js 15 的 Server Actions 怎么用?"
Claude (使用 Context7):
根据最新文档 (2024年11月),Next.js 15 的 Server Actions...
[自动引用官方文档和实际代码示例]
4. 🎭 Playwright MCP – 浏览器自动化
适用场景: E2E 测试、网页抓取、UI 自动化
claude mcp add @executeautomation/playwright-mcp-server
核心功能:
- 🌐 跨浏览器测试: Chromium, Firefox, WebKit
- 📸 截图录屏: 自动捕获测试过程
- 🔍 元素定位: 智能选择器生成
- ⚡ 并发执行: 多浏览器并行测试
使用示例:
你: "测试登录流程是否正常"
Claude:
1. 打开登录页面
2. 填写用户名和密码
3. 点击登录按钮
4. 验证跳转到首页
5. 截图保存测试结果
配置示例:
{
"playwright": {
"command": "npx",
"args": ["-y", "@executeautomation/playwright-mcp-server"],
"env": {
"PLAYWRIGHT_HEADLESS": "false"
}
}
}
5. 🐘 PostgreSQL MCP – 数据库操作
适用场景: 数据库设计、SQL 查询优化、数据迁移
claude mcp add @modelcontextprotocol/server-postgres
核心功能:
- 🗄️ Schema 管理: 查看表结构、索引、约束
- 📝 SQL 生成: 自动编写优化的查询语句
- 🔍 性能分析: 识别慢查询和索引问题
- 🛠️ 数据迁移: 生成迁移脚本
配置示例:
{
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"POSTGRES_CONNECTION_STRING": "postgresql://user:pass@localhost:5432/mydb"
}
}
}
安全提示:
- ⚠️ 只读权限: 生产环境建议使用只读用户
- 🔒 环境变量: 不要在代码中硬编码数据库密码
- 📊 查询限制: 设置查询结果行数上限
6. 🐳 Docker MCP – 容器管理
适用场景: 容器化部署、本地开发环境、微服务管理
claude mcp add @ivo-toby/docker-mcp-server
核心功能:
- 🚀 容器管理: 启动/停止/重启容器
- 📦 镜像操作: 构建、拉取、推送镜像
- 🔍 日志查看: 实时查看容器日志
- 📊 资源监控: CPU、内存、网络使用情况
使用示例:
你: "启动开发环境的所有服务"
Claude:
执行 docker-compose up -d
✅ PostgreSQL 已启动
✅ Redis 已启动
✅ API 服务已启动
所有服务运行正常,访问 http://localhost:3000
7. 🔄 Memory MCP – 跨会话记忆
适用场景: 长期项目、个性化配置、上下文保持
claude mcp add @modelcontextprotocol/server-memory
核心功能:
- 💾 持久化记忆: 保存项目偏好、代码风格
- 🔍 智能回忆: 自动关联相关历史对话
- 🏷️ 知识管理: 标签化存储重要信息
使用示例:
第一次对话:
你: "我们项目使用 TypeScript + React + Tailwind"
Claude: "已记住,后续代码将遵循此技术栈"
第二天:
你: "创建一个按钮组件"
Claude: (自动使用 TypeScript + Tailwind 编写)
8. 🏗️ Supabase MCP – 后端即服务
适用场景: 快速原型开发、实时应用、用户认证
claude mcp add supabase-mcp
核心功能:
- 🗄️ 数据库操作: 直接查询 Supabase Postgres
- 🔐 身份验证: 管理用户和权限
- 📦 存储管理: 上传/下载文件
- 🔄 实时订阅: 监听数据变化
配置示例:
{
"supabase": {
"command": "npx",
"args": ["-y", "supabase-mcp"],
"env": {
"SUPABASE_URL": "https://xxx.supabase.co",
"SUPABASE_KEY": "your_service_role_key"
}
}
}
9. 📦 NPM MCP – 包管理助手
适用场景: 依赖管理、包版本选择、漏洞检查
claude mcp add npm-mcp-server
核心功能:
- 🔍 包搜索: 查找合适的 npm 包
- 📊 版本对比: 分析不同版本差异
- 🛡️ 安全审计: 检查已知漏洞
- 📝 依赖分析: 查看依赖树
使用示例:
你: "我需要一个日期处理库"
Claude:
推荐 date-fns (现代化,Tree-shakeable)
- 每周下载: 1200万
- 大小: 13.2KB (按需引入)
- 无依赖,TypeScript 支持
安装命令: npm install date-fns
10. 🎨 Figma MCP – 设计协作
适用场景: 前端开发、设计还原、组件生成
claude mcp add figma-mcp
核心功能:
- 🎨 设计稿解析: 提取颜色、间距、字体
- 🧩 组件生成: 自动创建 React/Vue 组件
- 📐 尺寸计算: 转换设计稿到响应式代码
- 🔄 实时同步: 监听设计变更
使用示例:
你: "根据这个 Figma 链接生成 Card 组件"
Claude:
[分析设计稿]
生成 TypeScript React 组件:
- 圆角: 12px
- 阴影: shadow-lg
- 间距: p-6
- 响应式: sm/md/lg 断点
MCP 安装与配置
基础安装流程
- 确认环境:
# 检查 Claude Code 版本
claude --version # 需要 0.3.0+
# 检查 Node.js (大多数 MCP 需要)
node --version # 建议 18.0.0+
- 安装 MCP 服务器:
# 方式 1: 使用内置命令 (推荐)
claude mcp add @modelcontextprotocol/server-github
# 方式 2: 手动配置
npm install -g @modelcontextprotocol/server-github
- 验证安装:
claude mcp list
配置文件详解
位置: ~/.claude.json (macOS/Linux) 或 %APPDATA%\Claude\config.json (Windows)
完整配置示例:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
},
"disabled": false
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"POSTGRES_CONNECTION_STRING": "postgresql://localhost/dev"
},
"timeout": 30000
}
},
"globalShortcuts": {
"toggleMcp": "Ctrl+Shift+M"
}
}
配置参数说明:
command: 执行命令 (通常是npx或node)args: 命令参数env: 环境变量 (支持${VAR_NAME}引用系统变量)disabled: 临时禁用 MCPtimeout: 超时时间 (毫秒)
常见问题解决
❌ MCP 无法启动
症状: Error: MCP server failed to start
解决方案:
# 1. 检查 Node.js 版本
node --version # 应该 >= 18.0.0
# 2. 清除 npm 缓存
npm cache clean --force
# 3. 重新安装
claude mcp remove problematic-mcp
claude mcp add problematic-mcp
# 4. 查看详细日志
claude mcp logs problematic-mcp
⏱️ MCP 响应缓慢
优化建议:
- 减少 MCP 数量: 只安装真正需要的
- 设置超时时间: 避免长时间等待
- 使用缓存: 配置
cacheSize参数
{
"mcpServers": {
"github": {
"timeout": 10000,
"cacheSize": 100
}
}
}
🔒 权限不足错误
GitHub MCP 示例:
# 生成新 Token
# 访问: https://github.com/settings/tokens/new
# 勾选权限: repo, read:org, read:user
# 在配置中使用
export GITHUB_TOKEN="ghp_..."
claude mcp add @modelcontextprotocol/server-github
最佳实践总结
推荐组合方案
全栈开发者:
claude mcp add @modelcontextprotocol/server-github
claude mcp add @modelcontextprotocol/server-postgres
claude mcp add @ivo-toby/docker-mcp-server
前端工程师:
claude mcp add context7
claude mcp add @executeautomation/playwright-mcp-server
claude mcp add figma-mcp
数据工程师:
claude mcp add @modelcontextprotocol/server-postgres
claude mcp add supabase-mcp
claude mcp add @modelcontextprotocol/server-memory
性能优化建议
| 优化项 | 说明 | 效果 |
|---|---|---|
| 按需启用 | 只在需要时启用特定 MCP | 减少 30% 启动时间 |
| 环境隔离 | 开发/生产使用不同配置 | 提高安全性 |
| 缓存配置 | 启用结果缓存 | 减少 50% 重复查询 |
| 超时设置 | 合理设置超时时间 | 避免卡顿 |
总结
选择合适的 MCP 服务器能让 Claude Code 的能力翻倍。本文推荐的 10 个 MCP 覆盖了开发工作流的各个环节:
✅ 代码协作: GitHub MCP
✅ 复杂推理: Sequential Thinking
✅ 技术文档: Context7
✅ 自动化测试: Playwright
✅ 数据库管理: PostgreSQL
✅ 容器化: Docker
✅ 跨会话记忆: Memory
✅ 后端服务: Supabase
✅ 包管理: NPM
✅ 设计协作: Figma
下一步行动:
- 根据你的技术栈选择 2-3 个核心 MCP
- 使用
claude mcp add一键安装 - 在实际项目中测试效果
- 逐步扩展到其他 MCP
推荐阅读:
💡 小贴士: 如果你使用 Claude API 进行开发,推荐试试 APIYI 这个 AI 模型 API 中转站——价格实惠、稳定可靠,还提供免费试用额度,非常适合个人开发者和小团队。
十大必装 MCP 服务器
1. GitHub MCP Server ⭐⭐⭐⭐⭐
功能: 直接与 GitHub 仓库、PR、Issues、CI/CD 工作流交互
这是使用最广泛的 MCP 服务器,几乎是开发者必装。安装后,你可以让 Claude:
- 创建和审查 Pull Request
- 管理 Issues 和讨论
- 监控 GitHub Actions 状态
- 搜索代码和提交历史
安装命令:
claude mcp add github --scope user -- npx -y @modelcontextprotocol/server-github
环境变量: 需要设置 GITHUB_PERSONAL_ACCESS_TOKEN
适合场景: 开源维护、团队协作、代码审查自动化
2. Sequential Thinking ⭐⭐⭐⭐⭐
功能: 结构化思考服务器,让 Claude 分步骤解决复杂问题
这个服务器改变了 Claude Code 处理复杂问题的方式。它引入了一种模拟人类认知的反思性思考过程,让 Claude 能够:
- 有条理地分解问题
- 在推理过程中修正方向
- 保持长链条推理的上下文
安装命令:
claude mcp add sequential-thinking -- npx -y @modelcontextprotocol/server-sequential-thinking
适合场景: 架构设计、复杂 bug 调试、大型功能规划
3. Filesystem MCP Server ⭐⭐⭐⭐⭐
功能: 安全的本地文件操作——读取、写入、编辑、搜索目录
这是官方基础服务器,提供细粒度的权限控制,支持复杂的代码库重构工作流。
安装命令:
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory
适合场景: 本地代码操作、批量文件处理、项目迁移
4. Context7 MCP ⭐⭐⭐⭐⭐
功能: 实时获取最新的开发文档和 API 参考
解决了 AI 知识库过时的痛点。Context7 会自动获取当前版本的文档,确保 Claude 提供的代码示例和 API 用法是最新的。
安装命令:
claude mcp add context7 -- npx -y @context7/mcp
适合场景: 使用 React、Next.js、Vue 等快速迭代框架的团队
5. Playwright MCP ⭐⭐⭐⭐
功能: 浏览器自动化,支持端到端测试和网页数据提取
Playwright MCP 使用可访问性快照(Accessibility Snapshots)来理解网页结构,无需视觉分析即可进行精准操作。
安装命令:
claude mcp add playwright -- npx -y @playwright/mcp@latest
适合场景: E2E 测试编写、网页爬虫、前端自动化
6. Brave Search MCP ⭐⭐⭐⭐
功能: 隐私优先的网络搜索,支持研究和内容引用
让 Claude 能够搜索最新信息、引用来源、总结内容,而不牺牲隐私。
安装命令:
claude mcp add brave-search -- npx -y @anthropic/mcp-server-brave-search
环境变量: 需要设置 BRAVE_API_KEY
适合场景: 技术调研、文档引用、竞品分析
7. PostgreSQL MCP Server ⭐⭐⭐⭐
功能: 直接与 PostgreSQL 数据库交互
让 Claude 能够查询数据库、分析数据结构、生成 SQL 语句、优化查询性能。
安装命令:
claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres postgresql://user:pass@localhost/db
适合场景: 数据分析、数据库调优、后端开发
8. Docker MCP Server ⭐⭐⭐⭐
功能: 构建、运行、检查容器,直接通过 AI 命令管理 Docker
非常适合调试服务、生成 Dockerfile、管理可复现的开发环境。
安装命令:
claude mcp add docker -- npx -y @modelcontextprotocol/server-docker
适合场景: 容器化开发、DevOps 工作流、环境调试
9. Sentry MCP ⭐⭐⭐
功能: 错误追踪和性能监控集成
让 Claude 能够分析 Sentry 中的错误报告,并立即建议修复方案。
安装方式: SSE 远程服务器,需要 Sentry API token
适合场景: 生产环境调试、错误分析、性能优化
10. Notion MCP ⭐⭐⭐
功能: 知识库集成,支持页面和数据库操作
让 Claude 能够读取和更新 Notion 中的文档,实现知识管理与代码开发的联动。
安装方式: 官方实现,需要 Notion API key
适合场景: 文档管理、项目记录、知识库维护
MCP 服务器分类速查

| 分类 | MCP 服务器 | 核心价值 |
|---|---|---|
| 版本控制 | GitHub、GitLab | PR 管理、代码审查自动化 |
| 思维增强 | Sequential Thinking | 复杂问题结构化推理 |
| 文件操作 | Filesystem | 本地文件安全操作 |
| 文档获取 | Context7、Brave Search | 实时文档和搜索能力 |
| 浏览器自动化 | Playwright、Puppeteer | E2E 测试、网页爬虫 |
| 数据库 | PostgreSQL、Supabase | 数据查询和分析 |
| 容器化 | Docker | 容器管理、环境调试 |
| 监控 | Sentry、PostHog | 错误追踪、产品分析 |
| 生产力 | Notion、Linear、Figma | 知识库、任务管理、设计 |
Panduan Konfigurasi Dasar MCP
Perintah Inti
# Menambahkan server MCP
claude mcp add [name] --scope user -- [command]
# Melihat MCP yang sudah terinstal
claude mcp list
# Menghapus server MCP
claude mcp remove [name]
# Menguji server MCP
claude mcp get [name]
Lokasi File Konfigurasi
| Sistem | Path File Konfigurasi |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Umum | ~/.claude.json (direkomendasikan) |
Contoh Konfigurasi
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your_token_here"
}
},
"sequential-thinking": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
}
}
}
Penjelasan Scope
| Scope | Keterangan | Kasus Penggunaan |
|---|---|---|
| local | Hanya tersedia untuk proyek saat ini | Tools khusus proyek |
| user | Tersedia untuk semua proyek, bersifat privat | Tools pribadi yang sering dipakai |
| project | Konfigurasi level proyek, bisa dibagikan | Tools untuk kolaborasi tim |
Tips Konfigurasi
- Prasyarat Node.js: Sebagian besar MCP menggunakan npx, pastikan Node.js sudah terinstal
- Restart untuk Efektif: Setelah mengubah konfigurasi, perlu restart Claude Code
- Penanganan Khusus Windows: Perintah npx lokal mungkin memerlukan prefix
cmd /c - Penyesuaian Timeout: Atur timeout startup melalui
MCP_TIMEOUT=10000
Saran: Melalui APIYI apiyi.com kamu bisa mendapatkan akses API berbagai model AI, yang dikombinasikan dengan MCP bisa menghasilkan workflow AI yang lebih fleksibel.
Best Practice Instalasi MCP
Kombinasi Instalasi yang Direkomendasikan
Developer Frontend:
- Context7 (dokumentasi framework terbaru)
- Playwright (testing E2E)
- GitHub (version control)
Developer Backend:
- PostgreSQL (operasi database)
- Docker (manajemen container)
- GitHub (version control)
Developer Full-stack:
- Sequential Thinking (masalah kompleks)
- GitHub (version control)
- Context7 (dokumentasi real-time)
Hal-hal yang Perlu Diperhatikan
- Jangan Terlalu Banyak: Instal 2-3 MCP inti saja, terlalu banyak akan memperlambat startup
- Cek Dependensi: Pastikan dependensi seperti Node.js, Docker sudah terinstal dengan benar
- Lindungi Kredensial: API Key dan Token jangan di-commit ke repository kode
- Update Berkala: Ekosistem MCP berkembang cepat, tetap update untuk mendapatkan fitur baru
Pertanyaan Umum
Q1: Apa perbedaan antara MCP dan fitur bawaan Claude Code?
Fitur bawaan Claude Code fokus pada pengeditan kode dan operasi terminal. Sedangkan MCP memperluas kemampuan Claude untuk berinteraksi dengan sistem eksternal—database, layanan cloud, tools pihak ketiga, dan lain-lain. Analoginya begini: fitur bawaan adalah "kemampuan dasar", MCP adalah "plugin perluasan".
Q2: Sudah instal MCP tapi Claude tidak merespons, bagaimana solusinya?
Cara mengatasi yang umum:
- Restart Claude Code agar konfigurasi diterapkan
- Gunakan
claude mcp listuntuk mengecek apakah instalasi berhasil - Periksa apakah environment variable (seperti API Token) sudah diatur dengan benar
- Cek apakah ada dependency yang kurang (seperti Node.js)
- Coba tingkatkan waktu timeout startup
MCP_TIMEOUT=10000
Q3: Apa yang perlu diperhatikan pengguna di China saat menggunakan MCP?
Beberapa MCP server bergantung pada layanan luar negeri (seperti GitHub API, Brave Search), yang mungkin mengalami masalah akses. Saran:
- Gunakan layanan relay seperti APIYI apiyi.com untuk mendapatkan akses API yang stabil
- Prioritaskan MCP yang berjalan lokal (seperti Filesystem, Sequential Thinking)
- Untuk MCP yang memerlukan jaringan, pastikan koneksi internet stabil
Kesimpulan
Nilai inti dari Claude Code MCP:
- Perluasan Kemampuan: Mengubah Claude dari code editor menjadi platform pengembangan yang lebih powerful
- Integrasi Workflow: Satu interface untuk mengoperasikan berbagai tools seperti GitHub, database, layanan cloud, dan lainnya
- Efisiensi Berlipat: Otomatisasi pekerjaan repetitif, fokus pada tugas pengembangan inti
10 MCP Wajib Instal – Ringkasan Cepat:
- Version Control: GitHub
- Peningkatan Berpikir: Sequential Thinking
- Operasi File: Filesystem
- Dokumentasi Real-time: Context7
- Pencarian Web: Brave Search
- Otomasi Browser: Playwright
- Database: PostgreSQL
- Manajemen Container: Docker
- Monitoring Error: Sentry
- Knowledge Base: Notion
Disarankan mulai dari 2-3 skenario yang paling sering kamugunakan, lalu perluas secara bertahap. Melalui APIYI apiyi.com kamu bisa mendapatkan berbagai API model AI, yang dikombinasikan dengan MCP dapat membangun workflow pengembangan yang lebih powerful.
description: "Panduan lengkap untuk memahami dan mengimplementasikan Model Context Protocol (MCP) – protokol terbuka yang memungkinkan AI mengakses berbagai sumber data dan tools secara terstandar"
Model Context Protocol (MCP) adalah standar terbuka yang dikembangkan oleh Anthropic untuk menghubungkan aplikasi AI dengan berbagai sumber data dan tools. Bayangkan seperti USB untuk AI – satu interface standar yang bisa menghubungkan AI assistant kamu dengan database, API, file system, dan berbagai layanan lainnya.
Mengapa MCP Penting?
Sebelum ada MCP, setiap integrasi AI harus dibuat custom untuk masing-masing data source. Mau akses Google Drive? Buat custom integration. Mau connect ke database? Buat lagi dari nol. Ini jelas tidak efisien.
MCP menyelesaikan masalah ini dengan menyediakan protokol standar yang:
- Universal: Satu cara standar untuk semua integrasi
- Modular: Tambah atau ganti data source dengan mudah
- Secure: Built-in authentication dan authorization
- Scalable: Bisa handle multiple connections secara efisien
Arsitektur MCP
MCP menggunakan arsitektur client-server yang sederhana:
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ │ │ │ │ │
│ MCP Host │────────▶│ MCP Client │────────▶│ MCP Server │
│ (Claude) │ │ │ │ (Database) │
│ │ │ │ │ │
└─────────────┘ └──────────────┘ └─────────────┘
- MCP Host: Aplikasi AI yang ingin mengakses data (seperti Claude)
- MCP Client: Component yang mengelola koneksi ke servers
- MCP Server: Service yang menyediakan akses ke specific data source atau tools
Komponen Utama MCP
1. Resources
Resources adalah data yang bisa diakses oleh AI. Bisa berupa:
- File dan dokumen
- Database records
- API responses
- Live data feeds
Contoh resource URI:
file:///home/user/documents/report.pdf
postgres://localhost/mydb/users
https://api.example.com/data
2. Prompts
Prompts adalah template yang bisa digunakan kembali untuk task-task umum. Misalnya:
{
"name": "analyze-code",
"description": "Analisis kualitas kode",
"arguments": [
{
"name": "file_path",
"description": "Path ke file yang akan dianalisis",
"required": true
}
]
}
3. Tools
Tools adalah fungsi yang bisa dipanggil oleh AI untuk melakukan actions. Contohnya:
{
name: "create_file",
description: "Buat file baru",
inputSchema: {
type: "object",
properties: {
path: { type: "string" },
content: { type: "string" }
},
required: ["path", "content"]
}
}
Implementasi MCP Server Sederhana
Berikut contoh membuat MCP server sederhana menggunakan TypeScript:
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import {
ListToolsRequestSchema,
CallToolRequestSchema,
} from "@modelcontextprotocol/sdk/types.js";
// Inisialisasi server
const server = new Server(
{
name: "my-mcp-server",
version: "1.0.0",
},
{
capabilities: {
tools: {},
},
}
);
// Daftarkan tools yang tersedia
server.setRequestHandler(ListToolsRequestSchema, async () => {
return {
tools: [
{
name: "get_current_time",
description: "Dapatkan waktu saat ini",
inputSchema: {
type: "object",
properties: {
timezone: {
type: "string",
description: "Timezone (opsional)",
},
},
},
},
],
};
});
// Handle tool calls
server.setRequestHandler(CallToolRequestSchema, async (request) => {
if (request.params.name === "get_current_time") {
const timezone = request.params.arguments?.timezone || "UTC";
const time = new Date().toLocaleString("id-ID", { timeZone: timezone });
return {
content: [
{
type: "text",
text: `Waktu saat ini (${timezone}): ${time}`,
},
],
};
}
throw new Error(`Unknown tool: ${request.params.name}`);
});
// Start server
async function main() {
const transport = new StdioServerTransport();
await server.connect(transport);
console.error("MCP Server running on stdio");
}
main().catch(console.error);
Konfigurasi di Claude Desktop
Untuk menggunakan MCP server di Claude Desktop, tambahkan konfigurasi di file config:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"my-server": {
"command": "node",
"args": ["/path/to/your/server/build/index.js"]
}
}
}
Atau jika menggunakan npx:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/path/to/allowed/directory"
]
}
}
}
Best Practices
1. Security First
Selalu validasi input dan batasi akses:
server.setRequestHandler(CallToolRequestSchema, async (request) => {
// Validasi input
const { path } = request.params.arguments;
// Pastikan path ada dalam allowed directory
if (!isPathAllowed(path)) {
throw new Error("Access denied: path not allowed");
}
// Process request...
});
2. Error Handling
Berikan error messages yang jelas:
try {
const result = await performOperation();
return { content: [{ type: "text", text: result }] };
} catch (error) {
return {
content: [{
type: "text",
text: `Error: ${error.message}\nSilakan coba lagi atau hubungi admin.`
}],
isError: true
};
}
3. Logging
Implement proper logging untuk debugging:
import winston from "winston";
const logger = winston.createLogger({
level: "info",
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: "mcp-server.log" })
]
});
server.setRequestHandler(CallToolRequestSchema, async (request) => {
logger.info("Tool called", {
tool: request.params.name,
timestamp: new Date().toISOString()
});
// Process request...
});
Use Cases Populer
1. Database Access
{
name: "query_database",
description: "Jalankan SQL query",
inputSchema: {
type: "object",
properties: {
query: { type: "string" },
database: { type: "string" }
}
}
}
2. File System Operations
{
name: "read_file",
description: "Baca isi file",
inputSchema: {
type: "object",
properties: {
path: { type: "string" }
}
}
}
3. API Integration
{
name: "call_api",
description: "Panggil external API",
inputSchema: {
type: "object",
properties: {
endpoint: { type: "string" },
method: { type: "string" },
data: { type: "object" }
}
}
}
Troubleshooting Tips
Server Tidak Terdeteksi
- Cek path di config file sudah benar
- Pastikan dependencies sudah terinstall
- Restart Claude Desktop
- Cek logs untuk error messages
Connection Issues
// Tambahkan timeout handling
const timeout = setTimeout(() => {
console.error("Connection timeout");
process.exit(1);
}, 30000);
server.connect(transport).then(() => {
clearTimeout(timeout);
console.error("Connected successfully");
});
Performance Issues
- Implement caching untuk data yang sering diakses
- Gunakan connection pooling untuk database
- Batasi jumlah concurrent requests
- Monitor memory usage
Resources & Dokumentasi
Untuk informasi lebih lanjut tentang MCP, berikut beberapa resource yang berguna:
-
MCP 官方文档:
modelcontextprotocol.io– Dokumentasi lengkap spesifikasi MCP dari Anthropic -
官方 MCP 服务器仓库:
github.com/modelcontextprotocol/servers– Koleksi implementasi referensi MCP server yang dimaintain secara resmi -
Awesome MCP Servers:
github.com/wong2/awesome-mcp-servers– Daftar pilihan MCP server yang dikurasi oleh komunitas -
Claude Code MCP 文档:
code.claude.com/docs/en/mcp– Dokumentasi resmi konfigurasi dan penggunaan MCP di Claude Code
Kesimpulan
MCP adalah game-changer dalam ekosistem AI. Dengan standardisasi cara AI mengakses data dan tools, development menjadi lebih cepat, maintenance lebih mudah, dan integrasi lebih reliable.
Mulai eksperimen dengan MCP servers yang sudah tersedia, lalu coba buat custom server untuk use case spesifik kamu. Komunitas MCP berkembang pesat, jadi ini waktu yang tepat untuk mulai explore!
Penulis: Tim Teknis
Diskusi Teknis: Yuk diskusi di kolom komentar, lebih banyak resource bisa diakses di komunitas teknis APIYI apiyi.com
