Token导航 LogoToken导航TokenDH.com
Evolution Demo logo
AI代理未说明官方级别未说明来源级核验

Evolution Demo

MCP Server

MCP(模型上下文协议)为AI工具提供统一规则,实现工具标准化调用和性能评估。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
AI代理Python工作流自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

GenesisBlock3301

提供方

GenesisBlock3301

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP服务器评估:初学者指南

*了解AI代理如何使用工具以及为什么模型上下文协议(MCP)改变了一切的简单指南。*

______________________________________________________________________

目录

  1. 问题是什么?(在MCP之前)
  2. 什么是MCP?(MCP之后)
  3. 人工智能代理是如何分级的?
  4. 常见故障模式
  5. 为什么AI会猜错或卡住?
  6. MCP与HTTP
  7. 服务器、工具和客户端如何连接
  8. 代码示例
  9. 快速检查表
  10. 接下来要学习什么

______________________________________________________________________

1.问题是什么?(在MCP之前)

AI代理需要工具来做真正的工作:

  • 从计算机读取文件
  • 搜索网页
  • 查询数据库

但在MCP之前,每个工具都有 不同的规则没有共同的语言。这导致了四个严重的问题:

问题这意味着什么
没有共享规则每个工具都使用不同的API格式。人工智能必须为每种工具学习新规则。
假支票测试人员只阅读AI的文本答案。他们没有检查工作是否真的完成了。
没有公平的比较你无法公平地比较两个AI代理,因为每个测试都使用不同的工具和规则。
无成本跟踪没有人仔细追踪人工智能浪费了多少钱或时间。
简言之: 在MCP之前,没有通用的插头。每个工具都有自己的插座。

______________________________________________________________________

2.什么是MCP?(MCP之后)

MCP=模型上下文协议

将MCP视为 USB-C线缆 AI工具。

  • 之前:每部手机都有不同的充电器。
  • 之后:一根电缆可以装很多手机。

MCP创建 一本规则手册 所有工具都可以遵循。

发生了什么变化?

问题MCP之前MCP之后
所有工具都使用相同的规则吗?没有
测试人员是否检查真实结果?通常没有
AI可以同时使用多种工具吗?很少测试是的,标准做法
他们追踪金钱和时间吗?不是真的
故障是否解释清楚?只有“通过”或“失败”详细的错误类型
简言之: 在MCP之后,我们使用一个规则手册来检查实际结果。

______________________________________________________________________

3.人工智能代理是如何分级的?

测试人员询问 三个基本问题 当他们评估MCP试剂时:

1.它完成工作了吗?

  • AI是否完成了全部任务?
  • 最终结果真的正确吗?

2.它选对工具了吗?

  • 它选择了正确的工具吗?
  • 它是否按照正确的顺序使用它们?
  • 它是否传递了正确的参数和设置?

3.它便宜又快吗?

  • 代币成本: 它在对话中使用了太多的单词(标记)吗?
  • 时间成本: 完成的时间太长了吗?
  • 资金成本: 它是否浪费了API调用预算?

所有其他指标都只是这三个问题的细节。

______________________________________________________________________

4.常见故障模式

当MCP代理失败时,它们通常会以三种方式之一失败:

故障类型发生了什么示例
内容错误人工智能创造了一些东西,但里面的数据被破坏了。它写了一个CSV文件,但有些电子邮件丢失或拼写错误。
中途卡住人工智能开始了这项任务,但无法完成一个艰难的步骤。它登录了一个网站,但被“机器人检查”卡住了
忘了最后一部分AI完成了90%的工作,但错过了最后一步。它创建了一个数据库表和列,但忘记插入所需的行。

______________________________________________________________________

5.为什么人工智能会猜错或卡住?

在我们的代码演示中,您看到OpenAI有时会猜错数据库表或列。以下是发生这种情况的原因:

AI看不到你的电脑

AI生活在云端。它无法看到您的真实文件、表格或网站。它只读 文本说明 如果你的描述含糊不清,人工智能会 猜测.

例子: 在我们的演示中,OpenAI猜测了一个名为 smartphones,但真正的桌子是 products它还猜测了一个 category 不存在的列。

修复: 写出非常清晰的工具描述。提及确切的表名、列名和数据格式。

人工智能一步一个脚印地思考

在每一轮中,AI只决定 下一步行动它一开始没有计划整个旅程。这意味着它可以:

  • 忘记最初的目标
  • 早点停下来,以为已经完成了
  • 尝试错误的SQL查询,需要多次尝试才能自行修复

AI有点随机

即使是同一个问题,人工智能每次的答案也可能不同。这是由控制的 温度更高的温度=更多的创造力和随机性。较低的温度=更多的重复性和可预测性。

AI无法分辨错误与空结果

看看这两个输出:

输出含义AI会重试吗?
DB error: no such column: ratingSQL错误
DB result: []SQL正常工作,但没有匹配项

当AI看到 错误,它知道自己犯了错误,并再次尝试。当它看到 [] (空列表),它认为“找到零结果”并停止。在我们的演示中,OpenAI搜索 WHERE name LIKE '%smartphone%',得到 [],并放弃了——尽管 iPhone 15 是一部智能手机。

______________________________________________________________________

6.MCP与HTTP

MCP和HTTP不是一回事。

超文本传输协议

HTTP=超文本传输协议。它是网络的通用语言。您的浏览器使用它来加载网站。API使用它来发送数据。它携带任何东西:网页、图像、视频、JSON数据。

主控程序

MCP=模型上下文协议。它是 专门用于AI代理它定义了:

  • 如何描述工具
  • 人工智能如何问:“你有什么工具?”
  • AI如何说:“用参数Y调用工具X”
  • 如何以标准格式发回结果

关系

MCP可以在HTTP之上运行,但它也可以在其他运输工具上运行。这样想:

协议类比
超文本传输协议 A. 公共道路任何车辆都可以使用它
主控程序 A. 供货合同。它定义了包裹必须如何标记、跟踪和交付。卡车可以在路上行驶(HTTP)或穿过私人走廊(stdio).

在我们的 real_example/ 代码,我们使用 stdio (标准输入/输出)而不是HTTP。MCP服务器作为一个小程序在同一台计算机上运行,客户端通过文本管道与之通信。我们选择了 stdio 因为它更简单——没有端口,没有网络设置,没有防火墙问题。

摘要: HTTP是一条路。MCP是一组用于AI代理的流量规则。

______________________________________________________________________

7.服务器、工具和客户端如何连接

这是初学者最困惑的部分。以下是我们的确切流程 real_example/after_mcp_real.py 代码。

步骤1:创建服务器对象

mcp = FastMCP("SmartphoneHelper")

这将构建一个服务器容器。起初它是空的。

第二步:注册工具

@mcp.tool()
def google_search(query: str) -> str:
    ...

这将向服务器的内部注册表添加一个工具。这 mcp 对象现在会记住 google_search.

步骤3:启动服务器

mcp.run(transport='stdio')

这将服务器作为实时进程启动。它在标准输入上监听JSON消息,并在标准输出上回复。

步骤4:客户端连接

async with stdio_client(server) as (read, write):
    async with ClientSession(read, write) as session:
        tools_response = await session.list_tools()

客户端打开连接并询问服务器: “你有什么工具?”

步骤5:服务器回复

服务器读取其内部注册表(所有函数都用 @mcp.tool())并返回列表。然后,客户端可以通过标准协议调用任何工具。

可视化图表

┌─────────────────────────────────────────────────────────────┐
│                    YOUR PYTHON SCRIPT                       │
│  ┌──────────────────┐          ┌──────────────────┐         │
│  │   OpenAI Client  │          │   MCP Client     │         │
│  │  ( decides what  │◄────────►│  ( talks to the  │         │
│  │   to do next )   │          │    server )      │         │
│  └──────────────────┘          └────────┬─────────┘         │
└─────────────────────────────────────────┼───────────────────┘
                                          │
                                          │ stdio pipe
                                          │ (text messages)
                                          │
                                          ▼
┌─────────────────────────────────────────────────────────────┐
│                    MCP SERVER PROCESS                       │
│  ┌──────────────────────────────────────────────────────┐   │
│  │              mcp = FastMCP("...")                    │   │
│  │  ┌──────────────┐  ┌──────────────┐  ┌───────────┐   │   │
│  │  │ @mcp.tool()  │  │ @mcp.tool()  │  │   ...     │   │   │
│  │  │ google_search│  │   query_db   │  │  (more)   │   │   │
│  │  └──────────────┘  └──────────────┘  └───────────┘   │   │
│  └──────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘

消息流示例

Step 1: Client asks for the menu
         ┌────────┐                 ┌────────┐
         │ Client │ ── list_tools() ─►│ Server │
         └────────┘                 └────────┘
                                          │
                                          ▼
                                    Reads @mcp.tool() registry

Step 2: Server replies with tools
         ┌────────┐                 ┌────────┐
         │ Client │ ◄── {google_search, query_db} ─│ Server │
         └────────┘                 └────────┘

Step 3: Client asks to run a tool
         ┌────────┐                 ┌────────┐
         │ Client │ ── call_tool("query_db") ─►│ Server │
         └────────┘                 └────────┘
                                          │
                                          ▼
                                    Runs Python function

Step 4: Server sends back result
         ┌────────┐                 ┌────────┐
         │ Client │ ◄── "DB result: [...]" ─│ Server │
         └────────┘                 └────────┘

重点: @mcp.tool() 仅在内部注册该工具 mcp 对象。什么都不会发生,直到 mcp.run() 启动服务器,以及 stdio_client 装饰器、服务器和客户端是一个链中的三个环节。

______________________________________________________________________

8.代码示例

您可以在 real_example/ 文件夹:

文件显示内容
before_mcp_real.py旧方法:手动工具定义、手动路由、硬编码JSON模式。
after_mcp_real.py新方法:FastMCP服务器、自动工具发现、标准协议调用。
demo_db_setup.py创建一个简单的SQLite数据库进行测试。

before_mcp_real.pyafter_mcp_real.py 并肩而立,感受差异。

______________________________________________________________________

9.快速检查表

当您测试或构建MCP代理时,请问以下六个问题:

  1. 它是否遵循MCP规则?
  2. 它真的完成了任务,还是只是说说而已?
  3. 它可以同时使用2个或3个工具吗?
  4. 如果它失败了,你确切地知道原因吗?
  5. 它又快又便宜吗?
  6. 这项任务感觉像是真正的人类工作吗?

______________________________________________________________________

10.接下来要学习什么

  • 如何在演示中添加第三个工具
  • GitHub和Notion MCP现实世界示例
  • 如何阅读MCP基准测试论文
  • 如何通过HTTP部署MCP服务器以供远程使用

注:

  1. 字体变化
  2. 没有训练数据,没有人会谈论它。

1.

目录标签

目录标签

AI代理Python工作流自动化本地部署协议标准化工具互操作性性能评估错误诊断

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP