编程 使用 PHP-MCP 框架打造专属 MCP 服务:接入腾讯地图并联动 Cursor 客户端

2025-05-07 10:31:53 +0800 CST views 190

使用 PHP-MCP 框架打造专属 MCP 服务:接入腾讯地图并联动 Cursor 客户端

前言

在 AI 开发快速演进的今天,模型与工具之间的互联能力逐渐成为构建智能体应用的核心。Model Context Protocol(MCP)应运而生,成为连接大模型与外部工具的新一代标准协议。本文将以 PHP-MCP 为基础,带你从零开发一个 MCP Server,并将其接入 Cursor 客户端,实现与腾讯地图 API 的联动。

什么是 MCP?

MCP(Model Context Protocol)是由 Anthropic 提出的模型上下文协议,目标是通过统一的数据交互规范,实现大模型与各种工具的无缝集成。MCP 的架构由两部分组成:

  • MCP 客户端:如 Cursor、Langchain 等,负责发起调用请求
  • MCP 服务端:如 PHP-MCP,负责提供工具、资源等能力

其通信方式支持标准输入输出(Stdio)、HTTP、SSE(Server-Sent Events)等协议,具备高度扩展性。

使用 Cursor 快速接入 MCP 服务

Cursor 是一个深度集成 AI 能力的开发工具,支持通过配置 mcp.json 文件接入任意 MCP 服务。

以腾讯地图为例

腾讯位置服务提供标准化的 WebService API,可以通过 HTTPS 请求获取地理位置、路线规划、地点搜索等功能。

步骤一:创建 API Key

  1. 访问 腾讯位置服务控制台
  2. 创建新应用,启用 WebService API
  3. 获取 Key,后续接入会使用到

步骤二:配置 Cursor 客户端

创建文件 mcp.json

{
  "mcpServers": {
    "TencentAISearch": {
      "url": "https://mcp.map.qq.com/sse?key=<你的Key>"
    }
  }
}

加载成功后,在 Cursor 中点击输入框下方的 @Add context 按钮,即可绑定该 MCP 服务。

基于 PHP-MCP 搭建 MCP Server

PHP-MCP 提供了一整套 MCP 服务端开发框架,支持 SSE 模式,适用于远程客户端高频调用。

安装依赖

composer require php-mcp/server

实现工具类

创建 SampleMcpElements.php 文件:

use PhpMcp\Server\Attributes\McpTool;

class SampleMcpElements
{
    #[McpTool(name: 'greet_user', description: '生成用户问候语')]
    public function simpleTool(string $name, int $count = 1): string
    {
        return implode(' ', array_fill(0, $count, "Hello, {$name}!"));
    }
}

你还可以通过 #[McpPrompt]#[McpResource] 等注解扩展能力。

启动 MCP 服务端

创建 reactphp_http.server.php

use React\Http\HttpServer;
use React\Socket\SocketServer;
use PhpMcp\Server\Server;
use PhpMcp\Server\Transports\ReactPhpHttpTransportHandler;

$server = Server::make()
    ->withBasePath(__DIR__)
    ->discover();

$transportHandler = new ReactPhpHttpTransportHandler($server);

$http = new HttpServer(function ($request) use ($transportHandler) {
    // 判断路径并处理 SSE 或 POST
});

$socket = new SocketServer('0.0.0.0:8201');
$http->listen($socket);

运行服务

php reactphp_http.server.php

服务启动后,可以在浏览器中通过:

http://127.0.0.1:8201/mcp/sse

连接 MCP 客户端。

在 Cursor 中验证服务

修改 mcp.json

{
  "mcpServers": {
    "mcp-php-server-http": {
      "url": "http://127.0.0.1:8201/mcp/sse"
    }
  }
}

在对话框中输入 @greet_user(name: "Alice", count: 2),Cursor 即可通过 MCP 与 PHP 服务联动,返回:“Hello, Alice! Hello, Alice!”

小结

借助 PHP-MCP 框架,PHP 开发者无需依赖 Node.js、Python 等生态,就可以轻松搭建自己的 MCP 服务。配合 Cursor 等 AI 工具,即可快速打造智能化、交互式的开发辅助系统。

未来,MCP 生态将纳入越来越多的数据源与工具链,为 AI 普惠化提供坚实的底座。赶紧动手,把你的业务逻辑发布成一个 MCP 服务,让 AI 为你所用吧!

复制全文 生成海报 开发 AI 技术 框架 服务

推荐文章

Nginx 防止IP伪造,绕过IP限制
2025-01-15 09:44:42 +0800 CST
如何使用go-redis库与Redis数据库
2024-11-17 04:52:02 +0800 CST
Vue3中如何处理异步操作?
2024-11-19 04:06:07 +0800 CST
mysql int bigint 自增索引范围
2024-11-18 07:29:12 +0800 CST
Mysql允许外网访问详细流程
2024-11-17 05:03:26 +0800 CST
禁止调试前端页面代码
2024-11-19 02:17:33 +0800 CST
`Blob` 与 `File` 的关系
2025-05-11 23:45:58 +0800 CST
Vue3中如何处理权限控制?
2024-11-18 05:36:30 +0800 CST
js函数常见的写法以及调用方法
2024-11-19 08:55:17 +0800 CST
一个有趣的进度条
2024-11-19 09:56:04 +0800 CST
html一个全屏背景视频
2024-11-18 00:48:20 +0800 CST
liunx宝塔php7.3安装mongodb扩展
2024-11-17 11:56:14 +0800 CST
向满屏的 Import 语句说再见!
2024-11-18 12:20:51 +0800 CST
PostgreSQL日常运维命令总结分享
2024-11-18 06:58:22 +0800 CST
jQuery `$.extend()` 用法总结
2024-11-19 02:12:45 +0800 CST
程序员茄子在线接单