本系列前三篇文章:

本文我们来看一个 Hello World 级别的 MCP Server 的具体例子。

我们如果在 ChatGPT 里询问「现在几点了」的问题,ChatGPT 会在一个沙箱环境(Sandbox)中执行一段 Python 代码,从而得到精确的时间。

在本系列之前的文章笔者提到,ChatGPT 这种 Function Cal 的方式实现需求,没办法被其他大模型直接重用。

比如同样的问题我问 Kimi,它就在胡说八道:

那如果有一个现成的 Time MCP Server,能够被大模型实时调用,不就可以避免 Kimi 这种胡说八道的问题了吗?

我们打开 mcp.so 网站进行搜索。

如果说 Github 是全世界存放源代码的仓库,那 MCP.so 就是存放 MCP Servers 注册信息的仓库(之一)。

根据关键字 time 进行搜索,随便点开一个搜索结果。

搜索结果显示,这个 MCP Server 提供了两个 Tools,即两个暴露给大语言模型使用的功能:

  • get_current_time

  • convert_time

Server Config 是一段 JSON 代码,直接导入到 MCP Hosts 里就可以使用了,比如 Trae,Cursor 这种 AI IDE.

{  "mcpServers": {    "time": {      "command": "uvx",      "args": [        "mcp-server-time",        "--local-timezone=America/New_York"      ]    }  }}

简单解释下这段 JSON 代码。

  • command: uvx

    使用 MCP 打破大语言模型和 SAP 系统集成的屏障之四:一个 Hello World 级别的 MCP Server 介绍

uvx 是一个 MCP Server 分发工具,需要安装在 MCP Hosts 所在的电脑上。

想要快速分发 MCP Server,最普遍的痛点是依赖安装。来自 Astral 的 uv 工具通过内置超高速解析与二进制缓存,提供了 uvx(uv tool run 的别名)命令:能够一次性创建隔离环境、解析依赖、执行工具,同时 MCP 进程退出后自动清理目录。 

  • args:参数数组,指定 uvx 启动的命令行。

数组第一个元素为 mcp-server-time,即 MCP Server 的名称。

根据这个名称在 Github 上能够找到对应的实现,原来是用 Python 写的。

https://github.com/modelcontextprotocol/servers/blob/main/src/time/src/mcp_server_time/server.py

Python 代码里能很清楚的看到 MCP.so 搜索结果页面里 Tools 面板显示的两个功能:

如何使用这个 MCP Server 呢?

笔者是 Trae 的重度使用者,购买了 Trae Pro plan,每月享受 600 次不排队的 Fast 请求。六月份一阵操作猛如虎,也只造了一半的额度。

有了 Trae,我儿子也能用它来 Vibe Coding,做一些简单的 Web 开发了:

不会编程也能开发 Web 应用,小学生都能学会的 AI IDE

打开 Trae,选择 MCP 然后点击 Add:

把上面的 JSON 配置代码粘贴进去就行了。当然,args 数组的第二个元素,指定本地时区,我选择的是上海。

接下来给 Trae 对话,我选择的大模型是 Claude-4-Sonnet,问它「现在几点了」?

可以看到,Claude 会自动调用 mcp-server-time, 执行 Python 代码,获得准确的本地时间。

使用 Windows 的任务管理器,能看到 Trae 在处理这个请求时,起了一个新的「进程」,执行了命令行 uvx mcp-serve-time –local-timezone=Asia/Shanghai.

回到本系列的文章标题:使用 MCP 打破大语言模型和 SAP 系统集成的屏障

我们只需要模仿 mcp-server-time 的实现,让 MCP Server 调用 SAP ABAP 系统暴露出来的业务数据查询的 API,就能让大模型感知到 SAP ABAP 的业务数据和流程了。

具体的实现步骤,笔者后续会继续介绍。