• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
showyoui
博客园    首页    新随笔    联系   管理    订阅  订阅

【MCP 实战1】基础概念

目录
  • 1. 什么是 MCP (Model Context Protocol)
    • MCP 简介
    • MCP 的价值
    • MCP 的架构组件
      • 1. Client (客户端)
      • 2. Transport (传输层)
      • 3. Server (服务器)
  • 2. MCP 的核心概念
    • Tools (工具)
    • Resources (资源)
    • Prompts (提示)
  • 3. OpenSearch MCP Server 项目概览
    • 核心功能
    • 项目结构
  • 4. MCP 的应用场景
    • 数据库集成
    • 文件系统访问
    • API 集成
    • 开发工具集成
  • 5. 为什么选择 OpenSearch 作为示例
    • OpenSearch 的优势
  • 6. 下一步

1. 什么是 MCP (Model Context Protocol)

MCP 简介

Model Context Protocol (MCP) 是一个开放标准协议,旨在让 AI 助手能够安全地访问外部数据源和工具。它解决了 AI 模型需要与外部系统交互的核心问题。

MCP 的价值

  • 标准化接口:为 AI 与外部系统的交互提供统一标准
  • 安全性:提供受控的访问机制,确保数据安全
  • 可扩展性:支持多种数据源和工具的集成
  • 互操作性:不同的 AI 客户端可以使用同一个 MCP 服务器

MCP 的架构组件

┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│             │    │             │    │             │
│   Client    │◄──►│ Transport   │◄──►│   Server    │
│             │    │             │    │             │
└─────────────┘    └─────────────┘    └─────────────┘
     │                    │                    │
     │                    │                    │
     v                    v                    v
Claude Desktop/Cursor  SSE/Stdio          Your MCP Server
     │                                         │
     │                                         │
     v                                         v
   用户交互                                 外部系统集成 (数据库、API、文件等)
                                      

1. Client (客户端)

  • 作用:AI agent 访问 MCP server,如 Claude Desktop、Cursor 等
  • 职责:发送用户请求,处理服务器响应

2. Transport (传输层)

  • 作用:客户端与服务器之间的通信机制
  • 官方标准协议:
    • Stdio:标准输入输出,适合本地应用和进程通信
    • Streamable HTTP:使用 HTTP POST + 可选 SSE 流,适合 Web 应用和远程通信
  • 自定义传输:
    • MCP 官方支持自定义传输实现
    • 需要遵循官方 Transport 接口规范
    • 用于特殊网络协议、专用通信通道等场景
  • 注意:SSE 作为独立传输在 2024-11-05 版本后已弃用

3. Server (服务器)

  • 作用:实际执行工具调用和数据访问的后端服务
  • 职责:
    • 定义可用的工具 (Tools)
    • 提供数据资源 (Resources)
    • 处理客户端请求
    • 与外部系统交互

2. MCP 的核心概念

Tools (工具)

# 示例:一个简单的计算器工具
@mcp.tool(description="Add two numbers")
async def add_numbers(a: int, b: int) -> list[TextContent]:
    """Add two numbers and return the result."""
    result = a + b
    return [TextContent(type="text", text=str(result))]

Resources (资源)

# 示例:文件资源
@mcp.resource("file://{path}")
async def read_file(path: str) -> str:
    """Read file content."""
    with open(path, 'r') as f:
        return f.read()

Prompts (提示)

# 示例:预定义提示模板
@mcp.prompt("analyze-data")
async def analyze_data_prompt(data_type: str) -> str:
    """Generate analysis prompt for specific data type."""
    return f"Please analyze this {data_type} data and provide insights."

3. OpenSearch MCP Server 项目概览

我们将要学习的项目是一个完整的 OpenSearch MCP Server,通过 MCP tools 使它提供以下功能:

核心功能

  • 索引管理:列出索引、获取索引映射和设置
  • 集群管理:获取集群健康状态和统计信息
  • 文档操作:搜索文档

项目结构

opensearch-mcp-server/
├── src/
│   └── opensearch_mcp_server/
│       ├── __init__.py
│       ├── server.py              # 主服务器文件
│       ├── opensearch_client.py   # OpenSearch 客户端
│       └── tools/                 # 工具模块
│           ├── __init__.py
│           ├── cluster.py         # 集群管理工具
│           ├── document.py        # 文档操作工具
│           └── index.py           # 索引管理工具
├── pyproject.toml                 # 项目配置
├── README.md                      # 项目说明
└── test_opensearch.py            # 测试文件

4. MCP 的应用场景

数据库集成

  • 让 AI 能够查询数据库
  • 执行数据分析任务
  • 生成报表和洞察

文件系统访问

  • 读取和写入文件
  • 搜索文件内容
  • 管理文档和代码

API 集成

  • 调用第三方 API
  • 数据同步和转换
  • 自动化工作流程

开发工具集成

  • 代码分析和重构
  • 项目管理
  • CI/CD 流程集成

5. 为什么选择 OpenSearch 作为示例

OpenSearch 的优势

  1. 开源搜索引擎:免费且功能强大
  2. 丰富的 API:提供完整的 REST API
  3. 实用性强:企业级搜索和分析平台
  4. 学习价值高:涵盖了 MCP 的核心概念

6. 下一步

在接下来的教程中,我们将:

  1. 搭建开发环境
  2. 从简单的 Hello World 开始
  3. 逐步构建完整的 OpenSearch MCP Server
  4. 学习测试、部署和最佳实践

让我们开始这个激动人心的 MCP 开发之旅!


提示:建议你先阅读 MCP 官方文档 来获得更深入的理解。

posted @ 2025-06-22 22:10  showyoui  阅读(10)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3