模型上下文协议学习平台

一个基于网络的交互式学习平台,用于理解和构建模型上下文协议(MCP),提供教育内容、架构解析、实际用例和动手教程。

  • by MaxGrosshandler
  • EJS
  • 本地部署
  • 更新于
在 GitHub 查看 MaxGrosshandler/mcp-learning

使用说明

MCP讲解-互动学习平台

一个全面的、交互式的基于网络的指南,用于理解模型上下文协议(MCP)以及如何使用它进行构建。

概述

MCP(模型上下文协议)是一个开源标准,用于将AI应用程序连接到外部系统、数据源和工具。该项目提供:

  • 教育内容:了解MCP是什么,为什么它很重要,以及它是如何工作的
  • 建筑深潜:了解客户端-服务器模型和JSON-RPC通信
  • 真实世界用例:探索跨行业的实际应用
  • 入门指南:用示例构建您的第一个MCP服务器
  • 互动演示:将MCP通信可视化

特性

📚 学习路径

  1. 什么是MCP? -核心概念介绍
  2. 建筑 -深入了解MCP的工作原理
  3. 用例 -真实世界的应用程序和示例
  4. 入门指南 -实践教程和代码示例

🎨 交互式元素

  • 动画组件图
  • 交互式流程演示
  • Node.js和Python中的代码示例
  • 概念的视觉解释

📱 响应式设计

  • 移动友好界面
  • 适用于所有设备
  • 流畅的动画和过渡
  • 无障碍导航

快速开始

先决条件

  • Node.js 14+或更高版本
  • npm或纱线

安装

  1. 克隆或下载此项目

  2. 导航到项目目录:

    cd MCP
    
  3. 安装依赖项:

    npm install
    
  4. 启动开发服务器:

    npm start
    
  5. 打开浏览器并导航到:

    http://localhost:3000
    

项目结构

MCP/
├── server.js              # Express server
├── package.json           # Dependencies
├── README.md             # This file
├── public/               # Static files
│   ├── styles.css        # Main stylesheet
│   ├── app.js            # General app functionality
│   └── demo.js           # Interactive demo logic
└── views/                # EJS templates
    ├── index.ejs         # Home page
    ├── what-is-mcp.ejs   # MCP basics
    ├── architecture.ejs  # Technical deep-dive
    ├── use-cases.ejs     # Real-world applications
    └── getting-started.ejs # Implementation guide

内容概述

首页

  • MCP简介
  • 关键功能的快速概述
  • 导航到学习模块
  • MCP概念可视化图

什么是MCP?

  • 定义和目的
  • 三个主要功能(数据、工具、工作流)
  • 它解决的问题
  • 对开发人员、人工智能应用程序和用户的好处
  • 现实世界类比

建筑

  • 客户端服务器模型
  • JSON-RPC 2.0协议
  • 核心组件(资源、工具、提示)
  • 请求响应流程
  • 消息类型
  • 运输机制
  • 互动演示

用例

  • 商业智能与分析
  • 知识管理
  • 开发与编码
  • 客户服务
  • 内容创作
  • 研究与分析
  • 系统管理
  • 遗留系统集成

入门指南

  • 先决条件和设置
  • Node.js示例实现
  • Python示例实现
  • 分步指南
  • 常见模式
  • 测试和最佳实践

关键概念解释

资源

AI应用程序可以读取的数据源:

  • 文件和文档
  • 数据库记录
  • API响应
  • 实时数据流

工具

AI应用程序可以调用的函数:

  • 数据库查询
  • 外部API调用
  • 系统操作
  • 自定义计算

提示

可重复使用的提示模板和说明:

  • 特定域说明
  • 自定义系统提示
  • 工作流定义
  • 任务模板

通信协议

MCP使用JSON-RPC 2.0进行标准化通信:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "resources/list",
  "params": {}
}

构建您的第一台MCP服务器

简单的Node.js示例

const { Server } = require('@modelcontextprotocol/sdk');

const server = new Server({
  name: "my-server",
  version: "1.0.0"
});

// Define resources
server.setResourceHandler(async () => {
  return {
    resources: [
      {
        uri: "data://resource1",
        name: "Resource 1",
        mimeType: "application/json"
      }
    ]
  };
});

// Define tools
server.setToolHandler(async (toolName, toolInput) => {
  if (toolName === "my_tool") {
    return {
      content: [{
        type: "text",
        text: "Tool executed successfully"
      }]
    };
  }

  throw new Error(`Unknown tool: ${toolName}`);
});

server.start(process.stdin, process.stdout);

常见模式

  1. 数据库连接:将MCP连接到查询数据库
  2. 文件系统访问:通过MCP公开文件
  3. 外部API集成:将API包装为MCP工具
  4. 实时数据流:订阅实时数据
  5. 身份验证和授权:安全访问

发展

本地运行

npm install
npm run dev

服务器将于启动 http://localhost:3000

生产大楼

npm run build
npm start

学习资源

最佳实践

  1. 错误处理:始终优雅地处理错误
  2. 文档:明确记录资源和工具
  3. 安全:验证输入并实施访问控制
  4. 演出:缓存数据并优化查询
  5. 日志记录:记录重要事件
  6. 版本控制:保持向后兼容性

架构概述

┌─────────────────┐         JSON-RPC 2.0          ┌──────────────────┐
│   AI Client     │ ◄──────────────────────────► │    MCP Server    │
│   (Claude, etc) │                                │ (Your Service)   │
└─────────────────┘                                └──────────────────┘
                                                           │
                                                   ┌───────┴─────────┐
                                                   │                 │
                                          ┌────────▼──────┐  ┌────────▼──────┐
                                          │    Resources  │  │     Tools     │
                                          │   (Data API)  │  │  (Functions)  │
                                          └───────────────┘  └───────────────┘

常见问题解答

Q: MCP的用途是什么? A: MCP使AI应用程序能够以标准化的方式连接到外部系统、数据源和工具。

Q: 我需要和Claude一起使用MCP吗? A: 不,MCP与任何支持它的AI应用程序兼容。

Q: 我可以用任何语言构建MCP服务器吗? A: 是的!SDK可用于Node.js、Python等。您还可以直接实现JSON-RPC 2.0协议。

Q: MCP安全吗? A: MCP提供了标准化的安全模式,但安全取决于正确的实现。始终验证输入并使用身份验证。

Q: 如何部署MCP服务器? A: 您可以在任何支持您语言的托管平台上进行部署(AWS、Azure、Google Cloud等)。

贡献

这是一个教育项目。您可以自由地分叉、修改和使用它来学习。

许可证

麻省理工学院许可证-欢迎使用此项目进行学习和教学。

联系与支持

对于问题或疑问:

  • 在GitHub存储库上打开一个问题
  • 检查 MCP官方文件
  • 加入MCP社区讨论

快乐学习! 🚀

从主页开始,按照学习路径成为MCP专家。