跳到主要内容

MCP (模型上下文协议) 服务器平台概览与比较

目录

MCP (模型上下文协议) 简介

模型上下文协议 (MCP) 是一种开放协议,用于标准化应用程序与语言模型 (LLM)(例如 Anthropic 的 Claude)之间的交互。MCP 于 2024 年底推出,允许 AI 助手通过标准化接口访问外部数据、工具和 API。

形象地说,MCP 可以比作 AI 应用程序的 USB 端口。它允许 AI 模型安全地与本地和远程资源交互,从文件系统和数据库到外部 API 和服务。

MCP 服务器是实现 MCP 协议并为 AI 客户端提供工具、资源和提示词的程序。它们可以提供对各种数据源(文件、文档、数据库)和 API 的访问,从而扩展 AI 系统的功能。

MCP 服务器平台分类

根据所做的研究,可以 выделены 与 MCP 相关的四个主要平台类别:

  1. 开发框架 - 用于创建 MCP 服务器的库和工具
  2. 注册表和目录 - 用于查找和安装现成 MCP 服务器的平台
  3. 托管平台 - 用于托管和管理 MCP 服务器的服务
  4. 管理工具 - 用于安装和管理 MCP 服务器的应用程序

MCP 服务器关键平台概览

1. MCP 服务器开发框架

EasyMCP (TypeScript)

GitHub 评分:~94⭐

EasyMCP 提供了一种尽可能简单的方法来创建 MCP 服务器,只需最少的代码。开发人员无需关心协议实现的细节。

主要特点:

  • 类似 Express 的 API,用于定义工具和资源
  • 使用装饰器自动定义参数
  • 用于日志记录的上下文对象

优点:

  • 启动服务器所需的代码量最少
  • 对于 TypeScript 开发人员来说简单易懂
  • 良好的类型定义,可及早发现错误

缺点:

  • 截至 2025 年初,仍处于 Beta 版
  • 缺少对某些高级 MCP 功能的支持
  • 缺少显式的插件或中间件系统

非常适合: 快速原型设计、黑客马拉松、演示或将快速工具集成到 AI 助手中。

FastAPI-MCP (Python/FastAPI)

GitHub 评分:~395⭐

FastAPI-MCP 是流行的 Web 框架 FastAPI 的扩展,可自动将现有的 REST API 端点导出为 MCP 工具。

主要特点:

  • 与 FastAPI 集成时“零配置”
  • 自动发现所有现有的 API 端点
  • 重用 Pydantic 模式来验证输入数据

优点:

  • 对于 FastAPI 用户来说非常简单
  • 重用 FastAPI 的身份验证、中间件和错误处理
  • 由于 FastAPI/Uvicorn 的异步性,性能良好

缺点:

  • 仅当您已在使用 FastAPI 时才有用
  • 受 FastAPI 范例的限制
  • 自动提供所有端点可能过于宽松

非常适合: 希望快速将现有 API 与 AI 代理集成而无需重写代码的 Python 开发人员。

FastMCP (TypeScript)

GitHub 评分:~706⭐

FastMCP 是一个功能齐全的 TypeScript 框架,具有丰富的一组现成功能和简单的 API。

主要特点:

  • 支持身份验证、用户会话、结构化日志记录
  • SSE 流式传输、进度通知、采样支持
  • 用于开发和测试的 CLI 工具

优点:

  • 在简单性和功能之间取得良好的平衡
  • 用于快速创建服务器的声明式 API
  • 支持高级 MCP 功能

缺点:

  • 由于功能众多,学习曲线较陡峭
  • 继承了 Node.js 在性能方面的限制
  • 需要了解多种传输协议

非常适合: 创建可能需要数据流式传输、多步骤交互或用户会话的 TypeScript 生产环境服务器。

MCP-Framework (TypeScript)

GitHub 评分:~456⭐

MCP-Framework 专注于使用 CLI 创建项目和自动发现组件进行快速开发。

主要特点:

  • 用于创建项目的 CLI (mcp create)
  • 从代码自动发现工具/资源
  • 支持多种传输方式(stdio、SSE、HTTP 流)

优点:

  • 由于 CLI,启动速度非常快
  • 最少的手动配置
  • 活跃的社区,提供 Discord 支持

缺点:

  • 需要学习框架约定
  • MCP SDK 之上的额外抽象层
  • 平均性能(基于 Node.js)

非常适合: 希望快速入门并从头开始创建结构良好的项目的开发人员。

Foxy Contexts (Golang)

GitHub 评分:~70⭐

Foxy Contexts 是一个 Go 库,专注于性能和声明式方法来创建 MCP 服务器。

主要特点:

  • 使用 Uber Fx 进行依赖注入
  • 支持 STDIO 和 SSE 传输
  • 用于测试的包 (foxytest)

优点:

  • Go 的高性能和效率
  • 由于 DI,组件的清晰分离
  • 出色的可扩展性

缺点:

  • 与脚本语言相比,复杂性更高
  • 社区较小,可用材料较少
  • 需要 Go 和 DI 模式的经验

非常适合: 需要高性能的应用程序、具有 Go 经验的团队、预期高负载的服务器。

2. MCP 服务器注册表和目录

Portkey.ai

https://portkey.ai/mcp-servers

Portkey.ai 提供所有可用 MCP 服务器的综合地图,从参考实现到社区贡献。

主要特点:

  • 按类别对 MCP 服务器进行分类
  • 详细说明和指向存储库的链接
  • 定期更新以包含新服务器

优点:

  • 结构良好且易于导航的界面
  • MCP 生态系统的全面概述
  • 包括官方和第三方服务器

缺点:

  • 无法直接安装服务器
  • 关于兼容性和要求的有限信息

非常适合: 了解可用的 MCP 服务器选项并选择最适合特定需求的选项。

mcp-get.com

https://mcp-get.com/

mcp-get 是一个 MCP 服务器注册表,具有搜索功能和用于安装和管理的命令行工具。

主要特点:

  • 使用过滤器搜索服务器
  • 用于安装服务器的命令行工具
  • 来自社区的评分和评论

优点:

  • 与安装工具直接集成
  • 使用情况分析和统计
  • 活跃的用户社区

缺点:

  • 目录不如某些竞争对手广泛
  • 对某些操作系统的支持有限

非常适合: 希望通过命令行快速查找和安装 MCP 服务器的开发人员。

mcp.so

https://mcp.so/

mcp.so 是一个广泛的 MCP 服务器目录,其中包含详细的文档和安装说明。

主要特点:

  • 大量的服务器集合(数千个选项)
  • 用于方便搜索的分类和标签
  • 带有使用示例的详细服务器页面

优点:

  • 最完整的 MCP 服务器目录之一
  • 活跃的社区和定期更新
  • 每个服务器的详细文档

缺点:

  • 缺少用于管理服务器的集成工具
  • 由于选项过多,可能难以找到所需内容

非常适合: 发现用于特定任务的专用 MCP 服务器,了解 MCP 协议的功能。

mcpm.sh

https://mcpm.sh/

mcpm.sh (MCP Manager) 是一种开源服务和命令行工具,用于以 Homebrew 风格管理 MCP 服务器。

主要特点:

  • 通过多个客户端管理服务器配置
  • 自动更新服务器
  • 用于连接到多个服务器的路由器

优点:

  • 易于安装和使用
  • 依赖项和版本管理
  • 支持本地和远程服务器

缺点:

  • 与某些替代方案相比,目录较小
  • 主要面向经验丰富的命令行用户

非常适合: 希望以包管理器风格统一管理多个 MCP 服务器的开发人员。

3. MCP 服务器托管平台

mcp.run

https://mcp.run/

mcp.run 是一个托管平台,提供注册表和控制平面,用于安装和运行安全且可移植的 MCP 服务器。

主要特点:

  • MCP 服务器的集中式托管
  • 访问和安全管理
  • 扩展和监控

优点:

  • 简化的服务器部署
  • 集中管理
  • 确保安全性和隔离

缺点:

  • 可能依赖于第三方服务
  • 可能限制服务器配置

非常适合: 需要集中且安全地部署 MCP 服务器而无需自己的基础架构的组织。

Composio

https://mcp.composio.dev/

Composio 提供 100 多个托管 MCP 服务器,具有内置身份验证和简单的连接。

主要特点:

  • 随时可用的托管 MCP 服务器
  • 内置身份验证和安全性
  • 无缝扩展

优点:

  • 无需配置服务器
  • 高可用性和性能
  • 专业支持

缺点:

  • 可能比自托管更昂贵
  • 对基础架构的控制有限

非常适合: 需要快速访问可靠的 MCP 基础架构而无需技术复杂性的企业和团队。

Cloudflare for MCP

https://blog.cloudflare.com/remote-model-context-protocol-servers-mcp/

Cloudflare 提供使用其基础架构创建和部署远程 MCP 服务器的功能。

主要特点:

  • 与 Cloudflare Workers 集成
  • 低延迟的全球网络
  • 安全性和可扩展性

优点:

  • 使用 Cloudflare 全球网络
  • 与其他 Cloudflare 服务集成
  • 高性能和可用性

缺点:

  • 绑定到 Cloudflare 生态系统
  • 对于初学者来说,配置可能很复杂

非常适合: 已经在使用 Cloudflare 的开发人员和需要具有高性能的全球分布式 MCP 服务器的团队。

MCPServer.cloud

https://mcpserver.cloud/

MCPServer.cloud 是一个托管平台,专门用于在云中托管和管理 MCP 服务器。

主要特点:

  • 在云中快速部署 MCP 服务器
  • 用于监控和控制的控制面板
  • 高可用性基础架构

优点:

  • 易于扩展
  • 无需配置自己的基础架构
  • 自动更新

缺点:

  • 自定义选项的限制
  • 可能依赖于提供商

非常适合: 需要快速部署 MCP 服务器而无需深入了解基础架构细节的团队。

4. MCP 服务器管理工具

mcp-cli

https://github.com/wong2/mcp-cli

mcp-cli 是一个用于 MCP 协议的命令行检查器,允许您探索和调试服务器。

主要特点:

  • 用于测试服务器的交互模式
  • 支持各种传输协议
  • 有关可用工具和资源的详细信息

优点:

  • 方便开发和调试
  • 易于使用的命令行界面
  • 支持高级 MCP 功能

缺点:

  • 用于批量管理的有限功能
  • 主要面向开发人员

非常适合: 需要用于测试和调试的工具的 MCP 服务器开发人员。

MCPHub

https://github.com/Jeamee/MCPHub-Desktop

MCPHub 是一个适用于 macOS 和 Windows 的开源应用程序,用于发现、安装和管理 MCP 服务器。

主要特点:

  • 用于管理服务器的图形界面
  • 服务器发现和安装
  • 状态和日志监控

优点:

  • 友好的用户界面
  • 简化的多个服务器管理
  • 开源代码

缺点:

  • 对某些专用服务器的支持有限
  • 与 CLI 工具相比,自定义选项更少

非常适合: 喜欢使用图形界面来管理 MCP 服务器的用户以及 MCP 生态系统的新手。

mcp-guardian

https://github.com/eqtylab/mcp-guardian

mcp-guardian 是一个 GUI 应用程序和工具,用于代理和管理 MCP 服务器。

主要特点:

  • 集中式访问管理
  • 代理对服务器的请求
  • 监控和日志记录

优点:

  • 增强的安全性和控制
  • 易于添加和管理服务器
  • 灵活的配置

缺点:

  • 额外的复杂性
  • 需要单独配置

非常适合: 对安全性有很高要求且需要集中控制 MCP 服务器的组织。

MCP 服务器市场和注册表

GitHub (modelcontextprotocol/servers)

https://github.com/modelcontextprotocol/servers

官方 MCP 服务器存储库 包含参考实现和指向社区创建的服务器的链接。

主要特点:

  • 适用于各种用例的服务器的参考实现
  • 实现文档和建议
  • 来自 MCP 协议主要开发人员的支持

优点:

  • 具有高质量代码的官方来源
  • 最新的且符合规范的服务器
  • 详细的文档和示例

缺点:

  • 面向熟悉 GitHub 的开发人员
  • 缺少用于管理的集中式 GUI

非常适合: 希望学习参考实现并遵循最佳实践的开发人员。

Glama.ai

https://glama.ai/mcp/servers

Glama.ai 提供一个随时可用和实验性的 MCP 服务器目录,重点是扩展 AI 的功能。

主要特点:

  • 用于各种任务的大量服务器集合
  • 强调 MCP 的创新应用
  • 与其他 Glama 服务集成

优点:

  • 简单、组织良好的界面
  • 每个服务器功能的详细说明
  • 活跃的开发人员社区

缺点:

  • 某些服务器可能是实验性的
  • 并非所有服务器都具有同样详细的文档

非常适合: 探索 AI 与外部数据和工具交互的新可能性的创新者。

Smithery.ai

https://smithery.ai/

Smithery.ai — 一个 MCP 服务器注册表,可帮助您找到适合 AI 代理的工具。

主要特点:

  • 智能搜索和推荐
  • 强调用户体验和搜索便利性
  • 与各种 LLM 代理集成

优点:

  • 用于搜索和过滤的直观界面
  • 每个服务器的详细配置文件,其中包含使用示例
  • 用户评分和评论

缺点:

  • 与某些其他目录相比,集合较小
  • 更多地面向最终用户,而不是开发人员

非常适合: 寻找特定工具来扩展其 AI 助手功能的 AI 用户。

支持身份验证的 MCP 服务器

Pipedream MCP

https://mcp.pipedream.com/

Pipedream MCP 提供具有内置身份验证的 MCP 服务器,这些服务器与 Pipedream 自动化平台集成。

主要特点:

  • 用于访问 MCP 服务器的安全身份验证
  • 与 Pipedream 生态系统集成
  • 通过 MCP 自动化工作流程

优点:

  • 企业级安全性
  • 通过 Pipedream 轻松与其他服务集成
  • 增强的日志记录和审核功能

缺点:

  • 需要熟悉 Pipedream 平台
  • 免费计划的潜在限制

非常适合: 需要将 AI 安全地集成到现有工作流程中的企业用户。

Composio MCP 与身份验证

https://mcp.composio.dev/

Composio MCP 提供 100 多个具有内置身份验证和安全性的托管 MCP 服务器。

主要特点:

  • 各种身份验证方法(API 密钥、OAuth)
  • 在服务器和工具级别管理访问权限
  • 适用于企业客户的专用 MCP 服务器

优点:

  • 随时可用的服务器,无需复杂的配置
  • 符合企业安全标准
  • 集中式访问管理

缺点:

  • 扩展功能的付费计划
  • 绑定到 Composio 基础架构

非常适合: 需要安全且受控地访问 MCP 服务器且配置工作量最少的组织。

MCP 服务器平台对比表

开发框架

框架语言易用性功能可扩展性性能社区特点
EasyMCPTypeScript⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐最大程度的简单性,装饰器
FastAPI-MCPPython⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐与 FastAPI 集成,自动检测端点
FastMCPTypeScript⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐功能齐全,CLI,会话
MCP-FrameworkTypeScript⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐CLI 创建项目,自动发现
Foxy ContextsGo⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐DI,高性能

注册表、市场和平台

平台类型服务器数量易用性管理文档集成身份验证
Portkey.ai目录⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
mcp-get.com注册表+CLI⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
mcp.so目录⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
mcpm.sh包管理器⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
mcp.run托管⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Composio托管⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Cloudflare托管⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
MCPServer.cloud托管⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Glama.ai目录⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Smithery.ai注册表⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Pipedream MCP托管⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

流行的 MCP 服务器及其比较

根据研究的材料,以下是 10 个最流行的 MCP 服务器的比较:

服务器用途特点易用性流行度
File System MCP文件操作访问本地文件系统⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
GitHub MCP代码管理管理存储库、PR、问题⭐⭐⭐⭐⭐⭐⭐⭐⭐
Slack MCP通信自动化消息和频道⭐⭐⭐⭐⭐⭐⭐⭐
Google Maps MCP地理数据搜索地点、路线、地理编码⭐⭐⭐⭐⭐⭐⭐⭐
Brave Search MCP搜索通过 Brave API 在 Internet 上搜索⭐⭐⭐⭐⭐⭐⭐⭐
PostgreSQL MCP数据库查询 PostgreSQL 数据库⭐⭐⭐⭐⭐⭐⭐
Cloudflare MCP云基础架构管理 Cloudflare 服务⭐⭐⭐⭐⭐⭐
Raygun MCP错误监控跟踪错误和性能⭐⭐⭐⭐⭐⭐
Vector Search MCP语义搜索按向量嵌入搜索⭐⭐⭐⭐⭐⭐
Docker MCP容器化管理 Docker 容器⭐⭐⭐⭐⭐⭐⭐

平台选择建议

适用于开发人员和技术专家

  1. 开发自己的 MCP 服务器:

    • 如果您使用 TypeScript/JavaScript 进行开发:选择 FastMCP 以获得完整的功能集,或选择 EasyMCP 以获得最大的简单性
    • 对于 Python 开发人员:FastAPI-MCP 是与现有 API 集成的理想选择
    • 对于高负载应用程序:Go 上的 Foxy Contexts 将提供最大的性能
  2. 查找和安装现有服务器:

    • 要全面了解生态系统:Portkey.aimcp.soGlama.ai
    • 要通过命令行安装:mcp-get.commcpm.sh
    • 对于喜欢图形界面的开发人员:MCPHub
    • 用于智能搜索工具:Smithery.ai
  3. 托管和管理:

    • 对于简单的托管管理:ComposioMCPServer.cloud
    • 要与现有 Cloudflare 基础架构集成:Cloudflare for MCP
    • 用于集中管理多个服务器:mcp.run
    • 要与自动化和工作流程集成:Pipedream MCP
  4. 具有增强安全性的服务器:

    • 对于企业场景:具有身份验证的 Composio
    • 用于通过安全访问自动化工作流程:Pipedream MCP
    • 用于本地安全控制:mcp-guardian

适用于企业和组织

  1. 小型团队和初创公司:

    • 使用目录中的现成 MCP 服务器和框架进行快速开发
    • FastMCPMCP-Framework 将在简单性和功能之间取得平衡
    • MCPHub 将允许您快速开始使用现有服务器
  2. 中型和大型组织:

    • 考虑使用托管平台进行集中管理:Composiomcp.run
    • 对于具有高安全要求的企业场景:mcp-guardianPipedream MCP
    • Java 上的框架 (Quarkus MCP) 或 Go (Foxy Contexts) 用于高负载系统
  3. 企业要求:

    • 要与现有基础架构集成:选择与您的堆栈兼容的框架
    • 用于控制安全性和访问:具有身份验证的托管平台
    • 用于扩展:支持容器化的 Go 或 Java 解决方案

MCP 平台发展趋势

通过分析当前的 MCP 生态系统,可以 выделены 几个关键趋势:

  1. 服务器专业化 - 出现越来越专业的 MCP 服务器,用于金融、医疗、法律等特定领域。

  2. 提高安全性 - 更加关注安全性,出现用于 MCP 服务器的额外身份验证和授权机制。

  3. 与云平台集成 - 大型云提供商将 MCP 集成到其平台中,从而简化了部署和管理。

  4. 面向非技术用户的工具 - 出现允许业务用户创建和管理 MCP 服务器而无需深入技术知识的解决方案。

  5. 针对移动设备进行优化 - 开发 MCP 服务器时考虑到移动设备的限制,并针对在低性能设备上运行进行优化。

关于 MCP 平台的常见问题

什么是 MCP,它有什么用?

MCP(模型上下文协议)是一种开放协议,用于标准化 AI 模型与外部工具/数据之间的交互。它允许 AI 助手(例如 Claude)安全地连接到外部数据源和工具,从而扩展其功能。

哪个 MCP 平台最适合初学者?

建议初学者使用 EasyMCP (TypeScript) 或 FastAPI-MCP (Python),如果您熟悉相应的语言。您还可以使用图形工具(例如 MCPHub)来管理现有服务器,而无需编程。

MCP 可以与 Claude 以外的模型一起使用吗?

是的,虽然 MCP 协议最初由 Anthropic 为 Claude 推出,但它是开放的,可以与其他 LLM 一起使用。许多客户端(例如 Cline 和 Cursor)已经支持 MCP,并且兼容模型的列表还在不断增长。

使用 MCP 服务器安全吗?

MCP 服务器可能具有不同的安全级别。官方服务器通常遵循推荐的安全实践,但在使用第三方服务器时应谨慎。建议检查源代码、使用受信任的来源,并将服务器的访问权限限制为仅必要的资源。

MCP 有哪些替代方案?

MCP 的替代方案是用于创建 AI 工具的其他框架,例如 LangChain、LlamaIndex、没有标准化协议的 API 集成以及不同 LLM 提供商的专有解决方案。但是,MCP 的特点是标准化和易于集成。

如何确保在使用 MCP 服务器时的安全性?

为了确保在使用 MCP 服务器时的安全性,建议:

  • 使用支持身份验证的服务器(Composio、Pipedream MCP)
  • 将服务器的访问权限限制为仅必要的资源
  • 应用控制工具,例如 mcp-guardian
  • 定期将服务器更新到最新版本
  • 对关键服务器进行安全审核

MCP 学习资源

为了深入学习 MCP 和使用平台,我们推荐以下资源:

  1. 官方文档:

  2. GitHub 上的存储库:

  3. 社区:

  4. 培训材料:

  5. 工具:

    • mcp-cli - 用于 MCP 的命令行检查器
    • mcpm - 用于 MCP 服务器的包管理器
    • MCPHub - 用于管理 MCP 服务器的图形界面

总结建议

在选择和使用 MCP 平台时,建议:

  1. 从小处着手 - 选择几个符合您需求的基本 MCP 服务器,然后逐渐添加新的服务器。

  2. 学习示例 - 查看平台的开放使用示例,以了解最佳实践和可能的陷阱。

  3. 参与社区 - 加入讨论,提出问题并与其他 MCP 开发人员分享经验。

  4. 关注更新 - MCP 协议正在积极开发中,因此务必了解最新的更改和改进。

  5. 测试安全性 - 定期检查 MCP 集成的安全性,尤其是在处理敏感数据时。

  6. 记录您的实现 - 创建有关您的 MCP 服务器和集成的文档,以方便团队内部的支持和知识共享。

MCP 为将 AI 集成到各种系统和工作流程中开辟了新的视野。通过正确选择的平台和工具,您可以最大限度地利用这项技术的潜力来解决您的任务。

用于比较 MCP 平台的雷达图

各种 MCP 平台特性比较的热图

https://claude.site/artifacts/9506227e-7e75-48b2-8620-4999fe9282be

MCP 生态系统图