使用说明
🚀 Enhanced MCP Server-向我的同事介绍MCP
📚 目录
🤔 什么是MCP?
**MCP(Model Context Protocol)**是AI模型安全访问外部工具和数据的标准协议。
🏗️ MCP的核心概念
┌─────────────┐ MCP Protocol ┌─────────────┐
│ AI Model │ ←──────────────→ │ MCP Server │
│ (Cursor AI) │ │ (우리 서버) │
└─────────────┘ └─────────────┘
│
▼
┌─────────────┐
│ Tools & │
│ Data │
└─────────────┘
🤷♂️ 为什么需要MCP?
问:AI已经很聪明了,为什么需要MCP? A:AI只知道学习过的数据。不知道我们公司的实时员工信息、项目状态、密码等!
Q:直接给AI数据不行吗? A:安全上很危险,如果数据持续变化,每次都要重新学习AI。MCP提供实时、安全的数据!
🌟 MCP的强大优势:只要做一次就可以在任何地方使用!
🏢 우리가 만든 MCP 서버
│
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│Cursor AI│ │ n8n │ │ Make.com│
│ 코딩 │ │ 워크플로우│ │자동화툴 │
└─────────┘ └─────────┘ └─────────┘
│ │ │
▼ ▼ ▼
"김개발 정보 "매일 오전 "Slack에
알려줘" 직원 현황 급여 정보
보고서 생성" 알림 전송"
🎯 实际使用情形
📝 方案1:开发者(Cursor AI)
개발자: "김개발님이 담당한 프로젝트 진행률이 어떻게 되나요?"
AI: MCP 서버에서 데이터 조회 → "MCP-Integration 프로젝트 65% 완료"
개발자: "그럼 예상 완료일은?"
AI: "2025년 7월 15일 마감 예정입니다"
🔄 方案2:自动化(n8n)
매일 오전 9시 자동 실행:
1. MCP 서버에서 모든 직원 정보 조회
2. 휴가 중인 직원 필터링
3. 관리자에게 이메일 발송
4. Slack 채널에 현황 업데이트
📊 场景3:无代码自动化(Make.com)
프로젝트 마감일 알림 시스템:
1. MCP 서버에서 프로젝트 상태 확인
2. 마감일 7일 전인 프로젝트 찾기
3. 담당자에게 자동 알림 전송
4. 진행률이 50% 미만이면 관리자에게 에스컬레이션
🔍 更具体的问题和答案
问:一台MCP服务器真的可以在多个平台上使用吗? A:是的!MCP是标准协议,一旦创建:
- 从Cursor AI到编码助手
- n8n到工作流自动化
- 从Make.com到无代码自动化
- 甚至可以在自己制作的应用程序中使用!
问:如何管理安全性? A:在MCP服务器上集中管理权限:
// 예: 급여 정보는 HR 부서만 접근 가능
if (requestType === 'salary' && !user.hasRole('HR')) {
throw new Error('권한이 없습니다');
}
Q:也可以实时数据吗? A:当然可以!
// 실시간 시스템 모니터링
async getRealtimeSystemStatus() {
return {
cpu: getCurrentCPUUsage(),
memory: getCurrentMemoryUsage(),
timestamp: new Date().toISOString()
};
}
🚀 MCP的实际业务价值
| 传统方法 | MCP方法 | 改进效果 |
|---|---|---|
| 每次手动检查数据 | AI自动查询 | 节省90%时间 |
| 每个工具单独联动开发 | 一次开发即可联动所有工具💰 开发成本降低70% | |
| 数据不一致风险 | 单源一致性保证🎯 准确度提高99% | |
| 安全策略分布式管理集中安全管理🔒 安全风险降低80% |
简单地说:如果AI问“告诉我金开发员工的信息”,MCP服务器将在公司数据库中查找信息,并起到向AI传达信息的中间桥梁作用!
📁 了解项目结构
enhanced-mcp-server/
├── 📄 package.json # 프로젝트 설정 파일
├── 🔧 enhanced-server.js # MCP 서버 메인 코드
├── 🎯 .cursor-mcp.json # Cursor AI 연동 설정
├── 🧪 test-enhanced.js # 테스트 파일
└── 📚 README.md # 이 파일!
每个文件的角色
| 文件 | 角色 | 新员工需要知道的事情 |
|---|---|---|
package.json |
项目信息和依赖性管理 | npm包管理的基础 |
enhanced-server.js |
MCP服务器的核心逻辑 | 最重要的文件! |
.cursor-mcp.json |
与Cursor AI建立连接 | AI如何找到我们的服务器 |
test-enhanced.js |
服务器测试代码 | 开发后如何验证 |
⚙ENT MCP服务器工作原理
步骤1:初始化服务器
// enhanced-server.js의 핵심 부분
class EnhancedMcpServer {
constructor() {
// 🗄️ 회사 데이터베이스 (AI가 모르는 정보!)
this.companyDatabase = {
employees: [
{ id: 'EMP001', name: '김개발', department: 'Engineering', salary: 8500 },
// ... 더 많은 직원 정보
]
};
// 🔧 MCP 서버 생성
this.server = new Server({
name: 'enhanced-mcp-server',
version: '2.0.0'
});
}
}
步骤2:注册“工具”(Tools)
// AI가 사용할 수 있는 도구들을 정의
{
name: 'query_employee_database',
description: '🏢 회사 직원 데이터베이스에서 정보를 조회합니다',
inputSchema: {
type: 'object',
properties: {
query_type: { type: 'string', enum: ['all', 'by_department', 'by_name'] },
filter: { type: 'string', description: '필터 값' }
}
}
}
步骤3:工具运行逻辑
// AI가 도구를 호출하면 실행되는 함수
async queryEmployeeDatabase(queryType, filter) {
const employees = this.companyDatabase.employees;
switch (queryType) {
case 'by_name':
return employees.filter(emp => emp.name.includes(filter));
case 'by_department':
return employees.filter(emp => emp.department === filter);
default:
return employees;
}
}
🔍 源代码详细分析
📄 package.json분석
{
"name": "enhanced-mcp-server",
"version": "2.0.0",
"type": "module", // ← ES6 모듈 사용
"dependencies": {
"@modelcontextprotocol/sdk": "^0.4.0" // ← MCP 공식 SDK
}
}
新职员积分:
"type": "module":使用最新的JavaScript语法- MCP SDK:OpenAI创建的官方库
🎯 .cursor-mcp.json분석
{
"mcpServers": {
"enhanced-mcp-server": {
"command": "node",
"args": ["enhanced-server.js"],
"cwd": "/Users/sangsoonhwang/Documents/GitHub/enhanced-mcp-server"
}
}
}
新职员积分:
- Cursor AI寻找我们服务器的GPS般的角色
command:服务器运行命令cwd:服务器所在的文件夹位置
🔧 enhanced-server.js核心结构
1.类结构
class EnhancedMcpServer {
constructor() {
this.companyDatabase = { /* 데이터 */ }; // 📊 데이터 저장소
this.server = new Server(/* 설정 */); // 🔧 MCP 서버
this.setupToolHandlers(); // 🛠️ 도구 설정
}
}
2.工具注册过程
setupToolHandlers() {
// 📋 사용 가능한 도구 목록 제공
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
return {
tools: [
{
name: 'query_employee_database',
description: '직원 정보 조회',
inputSchema: { /* 입력 형식 정의 */ }
}
// ... 더 많은 도구들
]
};
});
// 🔧 도구 실행 처리
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
const { name, arguments: args } = request.params;
switch (name) {
case 'query_employee_database':
return await this.queryEmployeeDatabase(args.query_type, args.filter);
// ... 다른 도구들
}
});
}
3.实际业务逻辑
async queryEmployeeDatabase(queryType, filter) {
console.log(`🔍 직원 조회: ${queryType}, 필터: ${filter}`);
const employees = this.companyDatabase.employees;
let result;
switch (queryType) {
case 'by_name':
result = employees.filter(emp => emp.name.includes(filter));
break;
case 'by_department':
result = employees.filter(emp => emp.department === filter);
break;
case 'all':
default:
result = employees;
}
return {
content: [{
type: 'text',
text: `📊 조회 결과: ${JSON.stringify(result, null, 2)}`
}]
};
}
🚀 实践:运行MCP服务器
步骤1:安装依赖性
npm install
步骤2:测试服务器
npm test
预计输出:
🧪 간단한 MCP 테스트 시작...
📋 파일 확인:
✅ package.json - 존재함
✅ enhanced-server.js - 존재함
✅ .cursor-mcp.json - 존재함
🎉 기본 설정 확인 완료!
步骤3:运行服务器
npm start
第4步:在各种平台上进行测试
🎯 在Cursor AI中测试
- 在Cursor AI中打开此项目文件夹
- 允许MCP服务器连接
- 尝试以下问题:
- “请查询我们公司工程部门的员工”
- “告诉我金开发职员的信息”
- “帮我破译ALPHA-7代码”
🔄 在n8n中联动
{
"nodes": [
{
"name": "MCP Server Call",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"url": "http://localhost:3000/mcp",
"method": "POST",
"body": {
"tool": "query_employee_database",
"args": {
"query_type": "by_department",
"filter": "Engineering"
}
}
}
}
]
}
n8n工作流示例:
- 调度程序:每天上午9点运行
- MCP呼叫:查看员工现状
- 数据加工:度假者,按项目分类
- 发送通知:Slack/通过电子邮件发送报告
📊 在Make.com上集成
// Make.com HTTP 모듈 설정
{
"url": "http://localhost:3000/mcp",
"method": "POST",
"headers": {
"Content-Type": "application/json"
},
"body": {
"tool": "get_project_status",
"args": {
"project_name": "MCP-Integration"
}
}
}
Make.com场景示例:
- 触发器:检测Google Sheets更新
- MCP查询:查看员工的项目信息
- 条件分支:根据进度的不同动作
- 动作:自动发送电子邮件或Slack通知
🔌 直接调用API
# curl을 사용한 직접 호출
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"tool": "query_employee_database",
"args": {
"query_type": "by_name",
"filter": "김개발"
}
}'
🐍 在Python中使用
import requests
def get_employee_info(name):
response = requests.post('http://localhost:3000/mcp', json={
'tool': 'query_employee_database',
'args': {
'query_type': 'by_name',
'filter': name
}
})
return response.json()
# 사용 예
employee = get_employee_info('김개발')
print(f"직원 정보: {employee}")
🛠️ 创建自定义工具
如何添加新工具
步骤1:添加工具定义
// setupToolHandlers() 메서드의 tools 배열에 추가
{
name: 'calculate_bonus',
description: '직원 보너스 계산',
inputSchema: {
type: 'object',
properties: {
employee_id: { type: 'string', description: '직원 ID' },
performance_score: { type: 'number', description: '성과 점수 (1-10)' }
},
required: ['employee_id', 'performance_score']
}
}
步骤2:添加执行逻辑
// CallToolRequestSchema 핸들러의 switch문에 추가
case 'calculate_bonus':
return await this.calculateBonus(args.employee_id, args.performance_score);
步骤3:实现方法
async calculateBonus(employeeId, performanceScore) {
const employee = this.companyDatabase.employees.find(emp => emp.id === employeeId);
if (!employee) {
throw new McpError(ErrorCode.InvalidRequest, `직원 ${employeeId}를 찾을 수 없습니다`);
}
const baseBonus = employee.salary * 0.1; // 기본 보너스 10%
const performanceMultiplier = performanceScore / 10;
const finalBonus = baseBonus * performanceMultiplier;
return {
content: [{
type: 'text',
text: `💰 ${employee.name}님의 보너스: ${finalBonus.toLocaleString()}만원 (성과점수: ${performanceScore}/10)`
}]
};
}
🎯 新员工的关键点
一定要记住的事情
-
MCP=AI和数据之间的桥梁
- 安全地提供AI无法直接访问的数据
-
工具(Tool)=AI可用的功能
- 每个工具都有明确的目的和输入/输出格式
-
方案(Schema)=工具手册
- 指导AI正确使用工具
-
异步处理(async/await)
- 所有工具的运行都是异步的
🚨 注意事项
- 保安:在适当的权限检查后提供敏感信息
- 错误处理:有关意外输入的正确错误消息
- 性能:处理大数据时考虑分页
🌐 跨平台集成提示
问:从哪个平台开始比较好? A:推荐顺序:
- 光标AI (最简单)→开发过程中立即测试
- n8n (中等难度)→通过可视化工作流构建自动化
- Make.com (中等难度)→无代码实现复杂场景
- 直接API调用 (高级)→定制应用程序开发
问:各平台的优缺点?
平台优点缺点推荐用途 |--------|------|------|-----------| | 光标AI | 🟢 设置简单,立即使用|🔴 仅在开发环境中使用|在开发期间查询数据| | n8n | 🟢 开源、可视化编辑|🔴 需要安装服务器|自动化内部工作流| | Make.com | 🟢 云,多种联动|🔴 收费,复杂的设置|外部服务集成| | 직접 API | 🟢 完全控制,自定义|🔴 需要开发知识开发专用应用程序
📈 下一步
- 创建更复杂的工具:数据库联动、API调用等
- 增强的安全性:认证,添加权限管理系统
- 监视:构建日志记录、度量收集系统
- 多平台支持:添加REST API端点
- 实时通知:通过WebSocket集成实时数据推送
🤝 如果需要帮助
- MCP官方文档: https://modelcontextprotocol.io/
- GitHub问题:注册项目问题
- 团队导师:有什么疑问,请随时提问!
🎉 恭喜!现在大家也迈出了MCP专家的第一步!