乐于分享
好东西不私藏

MCP:让 AI Agent 告别「手搓工具」的标准化连接协议

MCP:让 AI Agent 告别「手搓工具」的标准化连接协议

MCP:让 AI Agent 告别「手搓工具」的标准化连接协议

如果说大模型是 Agent 的大脑,那么 MCP 就是它的神经系统——让大脑能够无缝指挥双手去操作真实世界。


摘要

Model Context Protocol(MCP)是 Anthropic 于 2024 年底推出的开放协议,旨在为 AI 模型与外部世界建立统一、安全、可扩展的连接标准。2026 年,MCP 生态已突破 13000+ 服务器,成为 Agent 基础设施的事实标准。本文从协议原理、架构设计到实战代码,带你全面理解 MCP 为什么被称为 AI 时代的「USB-C 接口」。


一、MCP 是什么?一个「USB-C」式的连接标准

Model Context Protocol(模型上下文协议),简称 MCP,是由 Anthropic 在 2024 年 11 月开源发布的一项通信协议。它的核心目标非常朴素:让任何 AI 模型都能以统一的方式连接任何外部工具、数据源或服务

在过去的一年里,你可能已经为不同的大模型写过无数遍类似的「胶水代码」:调用 OpenAI 的 Function Calling 时写一套 JSON Schema,对接 Claude 时又要适配另一套工具描述格式,连接本地数据库时再写一层 REST API 包装……每一套对接都是一次重复劳动,每一个新工具的加入都意味着新的维护负担。

MCP 的出现,本质上是在解决一个标准化问题。它定义了一套通用的通信契约:如何描述工具的能力(Capabilities)、如何发现可用的资源(Resources)、如何安全地执行操作(Tools)、以及如何双向传输结构化上下文(Prompts / Sampling)。只要工具提供方按照 MCP 规范实现一个 Server,任何支持 MCP 的 Client(无论是 Claude Desktop、Cursor、Windsurf,还是你自己写的 Agent)都可以零额外成本地调用它。

2026 年 4 月,北美 MCP 开发者峰会在纽约万豪侯爵酒店举行,吸引了约 1200 名开发者参与。峰会上传递出的一个明确信号是:MCP 正在从「实验性协议」快速进化为「生产级基础设施」。Uber 在会上披露其内部每周运行数万个 MCP Agent;Claude Code 通过优化 MCP 调用策略,将 Token 使用量降低了 85%。截至 2026 年中,公开可发现的 MCP Server 已超过 13000 个,官方注册表收录数量突破 800。


二、为什么 Agent 世界迫切需要 MCP?

要理解 MCP 的价值,我们需要先看清没有 MCP 之前的 Agent 生态是什么样子。

2.1 「工具碎片化」之痛

在 2024-2025 年,如果你想让 Agent 具备访问 GitHub、查询数据库、发送邮件这三项能力,典型的实现路径是这样的:

  • GitHub 能力:调用 GitHub REST API,封装成 github_search_repo(query) 函数,手写请求逻辑和错误处理;
  • 数据库查询:引入 SQLAlchemy 或 pymysql,写 execute_sql(sql) 函数,自己管理连接池和事务;
  • 发送邮件:调用 SMTP 库,写 send_email(to, subject, body) 函数,处理编码和附件。

三个能力,三套完全不同的对接方式。更要命的是,当你换一个大模型(比如从 GPT-4 切到 Claude 3.7),Function Calling 的格式可能变化,你需要重新调整工具描述和参数映射。这种「手搓工具」的模式,在 Demo 阶段还能应付,一旦进入生产环境,维护和扩展成本会指数级上升。

2.2 「Context Tax」的隐形成本

2026 年的 MCP 生态调研报告显示,Agent 开发者面临的最大痛点不是「缺乏工具」,而是 Context Tax(上下文税)——将外部数据注入模型上下文的过程中,冗余和浪费占了 40% 到 50%。

在没有标准协议的情况下,每个工具对接都需要自定义的数据序列化、错误格式化、结果裁剪逻辑。开发者往往为了「让模型看懂」,不得不把大量原始数据塞进 prompt,导致上下文窗口被迅速耗尽,推理成本飙升。MCP 通过标准化的资源描述和上下文管理能力,让 Server 可以精确控制「暴露什么、隐藏什么、如何摘要」,从而大幅降低 Context Tax。

2.3 安全与权限的「黑盒」困境

当 Agent 需要访问敏感数据(如内部数据库、企业文档、用户隐私信息)时,传统的函数调用方式往往缺乏细粒度的权限控制。谁有权调用这个工具?调用时是否需要用户确认?操作是否可以回滚?这些问题在没有统一标准的情况下,只能靠每个项目自己造轮子。

MCP 从协议层面内置了能力协商(Capability Negotiation)安全沙箱机制。Client 和 Server 在连接建立时就会交换各自支持的能力集合,Server 可以明确声明「我提供哪些工具、每个工具需要什么权限、哪些操作是只读的」,Client 则可以根据策略决定是否暴露给模型。


三、MCP 的核心架构与工作原理

MCP 的架构设计非常清晰,可以用「三层模型 + 两种传输 + 四大原语」来概括。

3.1 三层模型:Host → Client → Server

MCP Host 是 MCP 生态的入口,通常是运行 AI 模型的应用程序。常见的 Host 包括 Claude Desktop、Cursor IDE、Windsurf、以及各类自定义 Agent 框架。Host 负责加载和管理多个 MCP Client 实例,并将外部工具的调用结果整合到模型的上下文中。

MCP Client 是 Host 内部的一个轻量级中间件,负责与单个 MCP Server 建立和维护连接。每个 Client 对应一个 Server 实例,处理连接的生命周期管理、协议版本协商、请求路由和错误恢复。Client 不直接面向最终用户,而是作为 Host 与 Server 之间的「翻译官」。

MCP Server 是实际提供能力的后端服务。它按照 MCP 协议规范暴露一组工具(Tools)、资源(Resources)和提示模板(Prompts)。Server 可以用任何编程语言实现,只要能够 speak MCP 协议即可。目前社区中最活跃的实现语言是 Python(基于 FastMCP / mcp SDK)和 TypeScript(基于官方 @modelcontextprotocol/sdk)。

3.2 两种传输方式:Stdio vs SSE

MCP 协议在传输层非常灵活,目前定义了两种主要方式:

Stdio(标准输入输出):Server 作为一个本地子进程启动,Client 通过标准输入向其发送 JSON-RPC 消息,通过标准输出接收响应。这种方式最适合本地工具(如文件系统操作、本地数据库查询、Shell 命令执行),延迟极低,部署简单。

SSE(Server-Sent Events)over HTTP:Server 作为一个独立的 HTTP 服务运行,Client 通过 SSE 建立持久连接接收 Server 推送的消息,通过 HTTP POST 发送请求。这种方式适合远程服务或需要被多个 Client 共享的能力(如企业内部 API 网关、云数据库查询服务)。

2026 年的一个重要进展是 SEP-1442(Stateless Transport Proposal)。该提案为 MCP 引入了无状态传输模式,使得 MCP Server 可以像传统 REST API 一样运行在 serverless 环境中(如 Vercel Edge Functions、AWS Lambda),无需维持长连接即可响应 MCP 请求。这对于企业级落地意义重大——意味着 MCP Server 可以无缝接入现有的微服务架构和弹性伸缩体系。

3.3 四大核心原语

MCP 协议围绕四大原语展开,它们共同构成了 Agent 与外部世界交互的完整契约:

原语
英文
作用
典型场景
工具
Tools
让模型执行有副作用的操作
发送邮件、创建文件、更新数据库
资源
Resources
为模型提供只读的结构化上下文
读取文档、查询数据、获取配置
提示
Prompts
预定义的交互模板,引导模型行为
代码审查模板、数据分析模板
采样
Sampling
Server 请求 Host 上的模型进行推理
复杂数据预处理、多步推理代理

Tools 是 MCP 中最常被使用的原语。每个 Tool 都有一个名称、一段描述(用于让模型理解何时该调用它)、以及一套参数 Schema(遵循 JSON Schema 规范)。当模型判断需要调用某个 Tool 时,Client 会将调用请求发送给 Server,Server 执行后返回结果,结果再被注入到模型的上下文中。

Resources 则是只读的数据源。与 Tools 不同,Resources 没有副作用,主要用于为模型提供背景信息。例如,一个 GitHub MCP Server 可以暴露 repo://{owner}/{name}/README 这样的资源 URI,模型在需要了解项目背景时可以直接读取。

3.4 通信流程:一次完整的 Tool Call

让我们拆解一次完整的 MCP Tool 调用流程,以便理解数据是如何在三方之间流动的:

  1. 初始化阶段:Host 启动时,加载配置中定义的 MCP Server 列表。对每个 Server,Client 建立传输连接(stdio 或 SSE),发送 initialize 请求进行协议版本协商和能力交换。Server 返回自己支持的 Tools、Resources 和 Prompts 列表。

  2. 工具发现:Client 将 Server 返回的工具描述转换为模型可用的格式(如 OpenAI 的 Function Definition),注入到系统提示中。

  3. 模型决策:用户发送请求后,模型根据上下文和工具描述,判断是否需要调用外部工具。如果需要,模型输出一个 Tool Call 请求(包含工具名称和参数)。

  4. 请求路由:Host 捕获到 Tool Call 后,根据工具名称找到对应的 Client,Client 通过已建立的连接向 Server 发送 tools/call JSON-RPC 请求。

  5. Server 执行:Server 收到请求后,执行实际的业务逻辑(如查询数据库、调用第三方 API、读写文件),然后将执行结果封装为 Content 对象返回。

  6. 结果注入:Client 将 Server 返回的结果传递给 Host,Host 将结果格式化为模型可理解的文本,追加到对话上下文中。

  7. 模型总结:模型基于执行结果生成最终回复,完成一轮交互。

整个流程的核心设计哲学是**「模型只负责决策,Server 只负责执行,Client 只负责连接」**——三者的职责边界非常清晰,这也是 MCP 能够支撑复杂多 Server 协作场景的基础。


四、实战:用 Python 手写一个文件系统 MCP Server

理论归理论,让我们通过一个可运行的代码示例,感受 MCP Server 的开发体验。以下是一个基于 Python mcp SDK 的「文件系统 MCP Server」,它暴露了两个工具:read_file 和 list_directory

首先安装依赖:

pip install mcp

然后创建 filesystem_server.py

import osimport jsonfrom mcp.server import Serverfrom mcp.server.stdio import stdio_serverfrom mcp.types import TextContent, Tool# 初始化 MCP Serverapp = Server("filesystem-server")# 定义可用的工具列表@app.list_tools()async def list_tools() -> list[Tool]:    return [        Tool(            name="read_file",            description="读取指定路径的文本文件内容",            inputSchema={                "type""object",                "properties": {                    "path": {                        "type""string",                        "description""文件的绝对路径或相对路径"                    }                },                "required": ["path"]            }        ),        Tool(            name="list_directory",            description="列出指定目录下的文件和子目录",            inputSchema={                "type""object",                "properties": {                    "path": {                        "type""string",                        "description""目录的绝对路径或相对路径",                        "default""."                    }                }            }        )    ]# 实现 read_file 工具@app.call_tool()async def call_tool(name: str, arguments: dict) -> list[TextContent]:    if name == "read_file":        file_path = arguments["path"]        if not os.path.exists(file_path):            return [TextContent(type="text", text=f"错误:文件 '{file_path}' 不存在")]        if not os.path.isfile(file_path):            return [TextContent(type="text", text=f"错误:'{file_path}' 不是文件")]        with open(file_path, "r", encoding="utf-8"as f:            content = f.read()        return [TextContent(type="text", text=content)]    elif name == "list_directory":        dir_path = arguments.get("path"".")        if not os.path.exists(dir_path):            return [TextContent(type="text", text=f"错误:目录 '{dir_path}' 不存在")]        if not os.path.isdir(dir_path):            return [TextContent(type="text", text=f"错误:'{dir_path}' 不是目录")]        entries = os.listdir(dir_path)        result = []        for entry in entries:            full = os.path.join(dir_path, entry)            entry_type = "📁" if os.path.isdir(full) else "📄"            result.append(f"{entry_type}{entry}")        return [TextContent(type="text", text="\n".join(result))]    else:        return [TextContent(type="text", text=f"未知工具:{name}")]# 主入口:通过 stdio 传输启动async def main():    async with stdio_server() as (read_stream, write_stream):        await app.run(            read_stream,            write_stream,            app.create_initialization_options()        )if __name__ == "__main__":    import asyncio    asyncio.run(main())

将上述 Server 接入 Claude Desktop 非常简单。在 Claude Desktop 的配置文件(~/Library/Application Support/Claude/claude_desktop_config.json on macOS)中添加:

{  "mcpServers": {    "filesystem": {      "command": "python",      "args": ["/absolute/path/to/filesystem_server.py"]    }  }}

重启 Claude Desktop 后,在对话中你就可以直接说:「请帮我查看 ~/projects 目录下有哪些文件」,Claude 会自动调用 list_directory 工具;如果说「请读取 ~/projects/README.md 的内容」,它会调用 read_file。整个过程不需要你写任何调用逻辑,MCP Client 在底层完成了所有协议交互。


五、快速上手指南:从 0 到 1 构建你的第一个 MCP Server

如果你想把团队内部的某个能力封装成 MCP Server,以下是一份最小化的行动清单:

5.1 环境准备

# 创建独立环境python -m venv mcp-devsource mcp-dev/bin/activate  # Windows: mcp-dev\Scripts\activate# 安装官方 SDKpip install mcp# 安装开发辅助工具pip install mcp[cli]  # 提供 mcp 命令行工具,用于测试和调试

5.2 创建 Server 的七步清单

  1. 定义能力边界:明确你的 Server 要解决什么问题。是提供数据查询(Resource 为主)、执行操作(Tool 为主)、还是引导交互(Prompt 为主)?

  2. 设计工具签名:为每个 Tool 编写清晰的名称、描述和 JSON Schema。描述的质量直接决定了模型能否在正确的时机调用它。一个好的描述应该包含「什么场景下使用、参数含义、返回值格式、可能的错误」。

  3. 实现业务逻辑:用你最熟悉的语言编写实际的执行代码。MCP SDK 目前对 Python 和 TypeScript 支持最好,但社区也有 Go、Rust、Java 的实现。

  4. 选择传输方式:本地工具用 stdio,远程共享服务用 SSE。如果目标是无状态 serverless 部署,关注 SEP-1442 的进展。

  5. 本地调试:使用 mcp CLI 工具测试 Server。例如:

    mcp run filesystem_server.py  # 直接启动并进入交互式测试
  6. 接入 Host:将 Server 配置到你常用的 Host 中(Claude Desktop、Cursor、或自建 Agent)。

  7. 迭代优化:观察模型调用工具的成功率,根据实际对话日志优化工具描述和错误提示。


六、MCP 与相关技术的横向对比

在学习和落地 MCP 的过程中,一个常见的困惑是:MCP 和 Function Calling、传统 REST API、以及插件系统之间到底是什么关系?它们会互相替代吗?

维度
MCP
Function Calling
传统 REST API
插件系统(如 ChatGPT Plugin)
定位
协议标准
模型能力
接口规范
应用生态
发起方
双向(Client/Server 均可主动)
模型主动
客户端主动
平台主动
描述方式
JSON Schema(标准化)
JSON Schema(各厂商略有差异)
OpenAPI/Swagger
平台自定义格式
传输层
stdio / SSE / 无状态 HTTP
厂商 API 内部实现
HTTP
HTTP
上下文管理
内置 Resource / Prompt 原语
无,需自行拼接
有限
跨模型兼容
是(任何支持 MCP 的 Host)
否(OpenAI 专用)
是(HTTP 通用)
否(平台锁定)
部署方式
本地进程 / 远程服务
云服务内置
任意服务端
需平台审核上架
生态开放性
完全开源,社区驱动
封闭,厂商控制
开放,但无统一发现机制
半封闭,平台控制

选型原则

  • 如果你在构建一个需要连接多种外部工具的 Agent 应用,MCP 是首选。它让你摆脱「为每个模型写一套适配层」的困境。
  • 如果你只是在调用 OpenAI API 做一个简单的单轮工具调用,原生 Function Calling 足够轻量,引入 MCP 反而增加复杂度。
  • 如果你在设计一个面向公众的 SaaS 产品,希望用户能够扩展能力,传统 REST API + Webhook 仍然是更成熟的选择;MCP 更适合「模型驱动」的场景。
  • 如果你在做一个被封闭平台(如微信、钉钉)集成的应用,需要遵循平台自己的插件规范,MCP 目前无法直接替代。

七、常见误区与避坑指南

误区一:MCP 会替代 Function Calling

这是一个流传甚广的误解。MCP 和 Function Calling 不在同一个抽象层次。Function Calling 是大模型「输出结构化调用指令」的能力;MCP 是「这些调用指令如何被路由到实际执行端」的协议。MCP Client 在内部仍然可能使用 Function Calling 来让模型决定调用哪个工具——两者是互补关系,而非替代关系。

误区二:MCP Server 必须远程部署

恰恰相反,MCP 最常见的使用模式是本地 stdio。你的文件系统 Server、数据库查询 Server、甚至 Shell 命令 Server,都可以是运行在本机的 Python 脚本。远程 SSE 只是其中一种选项。

误区三:工具描述写得越详细越好

工具描述(description)的质量确实关键,但「详细」不等于「冗长」。模型在决定调用哪个工具时,需要在有限的上下文窗口内快速理解工具用途。一个好的描述应该控制在 100-200 字以内,突出「何时用、参数含义、返回什么」。

误区四:所有操作都适合封装成 Tool

MCP 的四大原语各有适用场景。对于只读查询,优先考虑 Resource 而非 Tool;对于需要引导模型按特定流程思考的场景,使用 Prompt;只有当操作会产生副作用(创建、更新、删除)时,才应该定义为 Tool。

误区五:忽视错误处理

生产环境中的 MCP Server 必须具备健壮的错误处理能力。Server 返回的错误信息会被直接注入模型上下文,如果错误信息过于技术化(如堆栈跟踪),模型可能会困惑甚至产生幻觉。建议为每类业务错误设计清晰的人类可读描述。


八、延伸阅读与生态工具

官方资源

  • MCP 官方规范与文档
    :https://modelcontextprotocol.io — 协议的权威来源,包含完整的规范、SDK 文档和最佳实践。
  • Anthropic MCP 介绍博文
    :https://www.anthropic.com/news/model-context-protocol — 协议的初心和设计哲学。
  • 官方 Python SDK
    :https://github.com/modelcontextprotocol/python-sdk
  • 官方 TypeScript SDK
    :https://github.com/modelcontextprotocol/typescript-sdk

社区生态

  • MCP Servers 官方注册表
    :https://github.com/modelcontextprotocol/servers — Anthropic 维护的精选 Server 集合,涵盖文件系统、GitHub、Slack、PostgreSQL 等高频场景。
  • MCP Servers 社区全景
    :https://qcode.cc/mcp-servers-ecosystem-2026 — 13000+ Server 的选型指南和分类索引。
  • MCP Inspector
    (调试工具):npx @modelcontextprotocol/inspector — 图形化调试工具,可以直观地查看 Server 暴露的工具列表、测试调用、检查请求响应。

框架集成

  • Claude Desktop
    :原生支持,配置最简单,适合个人日常使用和快速验证。
  • Cursor / Windsurf
    :作为 IDE 内置能力,特别适合代码相关的工作流。
  • LangChain / LangGraph
    :通过 langchain-mcp-adapters 包可以将 MCP Server 作为 Tool 接入 LangChain 生态。
  • OpenAI Agents SDK
    :虽然 OpenAI 有自己的工具体系,但社区已有将 MCP Server 桥接到 OpenAI 的适配器项目。

企业级落地参考

  • MCP 网关模式
    :对于需要集中管理大量 MCP Server 的企业,可以参考 2026 年 MCP 峰会上讨论的企业网关架构——通过一个中心化的 MCP Gateway 统一处理认证、限流、审计和 Server 注册发现,后端 Server 可以独立开发、独立部署。
  • 无状态传输(SEP-1442)
    :如果你的 Server 需要部署在 serverless 环境,关注该提案的落地进展,它将使 MCP Server 的运维模型与传统微服务完全对齐。

结语

MCP 的价值,不在于它引入了多么革命性的技术,而在于它用一套简单的协议,解开了 AI Agent 生态中最棘手的耦合问题。它让工具开发者只需写一次对接代码,让模型使用者无需关心底层实现细节,让 Agent 应用终于可以从「手搓工具」的重复劳动中解放出来。

2026 年,MCP 生态已经跨越了「早期采用者」阶段,进入了大规模落地的拐点。无论你是正在构建个人效率工具的独立开发者,还是负责企业 AI 平台建设的架构师,理解并掌握 MCP,都是在为未来的 Agent 原生应用铺设基础设施。

下一期,我们将深入探讨 Multi-Agent 协作——当多个 MCP-enabled Agent 需要协同完成复杂任务时,Handoff、Subagent 和新兴的 A2A 协议将如何塑造下一代智能体编排范式。敬请期待。


本文基于 MCP 2026 年 6 月最新协议版本撰写,代码示例使用 Python mcp SDK 1.6.0 测试通过。如有更新,请以 modelcontextprotocol.io 官方文档为准。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-23 07:49:27 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/760672.html
  2. 运行时间 : 0.099424s [ 吞吐率:10.06req/s ] 内存消耗:4,786.97kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=29d79743c60872ea66914a270095be3d
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000502s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000904s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000315s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000353s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000597s ]
  6. SELECT * FROM `set` [ RunTime:0.000268s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000630s ]
  8. SELECT * FROM `article` WHERE `id` = 760672 LIMIT 1 [ RunTime:0.001483s ]
  9. UPDATE `article` SET `lasttime` = 1784764167 WHERE `id` = 760672 [ RunTime:0.003176s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000307s ]
  11. SELECT * FROM `article` WHERE `id` < 760672 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000455s ]
  12. SELECT * FROM `article` WHERE `id` > 760672 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000426s ]
  13. SELECT * FROM `article` WHERE `id` < 760672 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.007479s ]
  14. SELECT * FROM `article` WHERE `id` < 760672 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001909s ]
  15. SELECT * FROM `article` WHERE `id` < 760672 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001846s ]
0.101079s