当前位置: 首页 > java >正文

第二章:MCP服务器分类

Chapter 2: MCP服务器分类


🌟 从上一章到本章

在第一章:Model Context Protocol (MCP)中,我们学习了如何通过MCP让LLM安全访问文件系统。现在,让我们想象一个更复杂的需求:假设你需要让LLM同时处理文件、查询数据库、分析代码仓库,甚至连接云端服务。这时候问题来了——如何快速找到适合这些任务的服务器?

本章将介绍MCP服务器的三类分类体系(官方示例、官方集成、社区开发),帮助你像“超市购物”一样,根据需求快速选择或构建服务器!


🎯 中心用例:选择适合任务的服务器

假设你正在开发一个AI助手,需要以下功能:

  1. 读取本地文件(如PDF合同)
  2. 查询公司数据库(如客户信息)
  3. 分析GitHub仓库(如项目代码变更)
  • 对于文件操作,你可以直接使用官方提供的Reference服务器(如Filesystem
  • 对于数据库访问,可能需要集成Third-Party服务器(如AWS或PostgreSQL)
  • 对于GitHub分析,社区可能已开发了现成的Community服务器

🔍 三类服务器的核心区别

MCP将服务器分为三类,用不同“信任等级”和“使用场景”帮助开发者快速决策:

1. Reference(官方示例)

  • 信任度:最高(由MCP团队维护)
  • 用途:学习MCP标准、快速验证功能
  • 示例
    # 启动官方文件系统服务器(安全目录白名单)
    npx -y @modelcontextprotocol/server-filesystem /my/safe/directory
    

2. Third-Party(官方集成)

  • 信任度:高(由知名公司维护)
  • 用途:连接主流工具(如AWS、GitHub、Docker)
  • 示例
    // 配置AWS服务器(需提供API密钥)
    {"aws": {"command": "npx","args": ["@vendor/server-aws"],"env": {"AWS_ACCESS_KEY": "your_key"}}
    }
    

3. Community(社区开发)

  • 信任度:中/低(需自行验证)
  • 用途:探索创新场景(如小众工具、实验性功能)
  • 示例
    # 安装社区开发的Nginx服务器
    git clone https://github.com/user/nginx-mcp-server
    cd nginx-mcp-server && npm start
    

🛠️ 如何根据需求选择?

步骤1:确定需求类型

场景推荐类别例子
核心功能(文件/数据库)ReferenceFilesystem, PostgreSQL
企业级工具集成Third-PartyAWS, GitHub, Docker
小众需求(如游戏引擎)CommunityUnity编辑器控制、3D模型渲染

步骤2:配置服务器

在客户端配置文件中注册服务器,例如:

{"mcpServers": {"文件系统": {                   // Reference服务器"command": "npx","args": ["@modelcontextprotocol/server-filesystem", "/data"]},"数据库": {                    // Third-Party服务器"command": "npx","args": ["@aws/server-postgres", "localhost:5432"]},"代码分析": {                  // Community服务器"command": "python","args": ["./custom-git-server.py"]}}
}

🕵️ 内部实现:分类如何影响调用流程?

以下时序图展示LLM调用不同分类服务器的过程:

LLM MCP客户端 Third-Party服务器 GitHub API Reference服务器 本地文件系统 请求"分析代码仓库" 转发请求给GitHub服务器 获取仓库数据 返回代码变更记录 格式化结果 请求"读取合同文件" 转发请求给文件系统 读取合同.pdf 返回文件内容 返回文本内容 LLM MCP客户端 Third-Party服务器 GitHub API Reference服务器 本地文件系统

💡 总结与展望

本章我们学到:

  1. 三类服务器的区别:官方示例→高信任,官方集成→强功能,社区开发→高创新
  2. 选择方法:根据需求类型快速定位服务器
  3. 配置示例:如何在客户端注册不同类别的服务器

接下来,我们将深入MCP传输机制,探索服务器与LLM如何通过不同协议(如STDIO、HTTP)高效通信——这将解答“为什么某些服务器启动更快”等问题!

🚀 下一步:尝试在你的项目中混合使用不同类别的服务器,比如同时配置文件系统和GitHub分析工具!

http://www.xdnf.cn/news/1659.html

相关文章:

  • 【C语言干货】面试 | 不使用临时变量实现两个整数的交换
  • PageView 内嵌套 TabBarView 的滑动冲突
  • PySide6 GUI 学习笔记——常用类及控件使用方法(常用类矩阵QRectF)
  • 在Vue3中,如何在父组件中使用v-model与子组件进行双向绑定?
  • DNS实验
  • 【Python语言基础】24、并发编程
  • 学习记录:DAY17
  • 机器学习(7)——K均值聚类
  • 【python】一文掌握 markitdown 库的操作(用于将文件和办公文档转换为Markdown的Python工具)
  • .NET代码保护混淆和软件许可系统——Eziriz .NET Reactor 7
  • Postgresql源码(143)统计信息基础知识(带实例)
  • Zynq7020 制作boot.bin及烧录到开发板全流程解析
  • 【AI平台】n8n入门1:详细介绍n8n的多种安装方式(含docer图形化安装n8n)
  • sass 变量
  • spark-streaming(二)
  • Python 爬虫实战 | 企名科技
  • 基于Pytorch的深度学习-第二章
  • 《仙剑奇侠传二》游戏秘籍
  • 01.02、判定是否互为字符重排
  • SpringCloud——负载均衡
  • 自动化标注软件解析
  • 颠覆传统NAS体验:耘想WinNAS让远程存储如同本地般便捷
  • 【leetcode100】组合总和Ⅳ
  • 【踩坑记录】stm32 jlink程序烧录不进去
  • 《Learning Langchain》阅读笔记7-RAG(3)生成embeddings
  • react 子组件暴露,父组件接收
  • Qt 入门 6 之布局管理
  • TinyVue v3.22.0 正式发布:深色模式上线!集成 UnoCSS 图标库!TypeScript 类型支持全面升级!
  • 架构-项目管理
  • 半导体---检测和量测