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

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

使用 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 技术 框架 服务

推荐文章

git使用笔记
2024-11-18 18:17:44 +0800 CST
#免密码登录服务器
2024-11-19 04:29:52 +0800 CST
Vue中的样式绑定是如何实现的?
2024-11-18 10:52:14 +0800 CST
go发送邮件代码
2024-11-18 18:30:31 +0800 CST
支付宝批量转账
2024-11-18 20:26:17 +0800 CST
Golang Select 的使用及基本实现
2024-11-18 13:48:21 +0800 CST
Go语言中的mysql数据库操作指南
2024-11-19 03:00:22 +0800 CST
任务管理工具的HTML
2025-01-20 22:36:11 +0800 CST
Golang中国地址生成扩展包
2024-11-19 06:01:16 +0800 CST
Vue3中如何进行性能优化?
2024-11-17 22:52:59 +0800 CST
前端如何给页面添加水印
2024-11-19 07:12:56 +0800 CST
WebSocket在消息推送中的应用代码
2024-11-18 21:46:05 +0800 CST
设置mysql支持emoji表情
2024-11-17 04:59:45 +0800 CST
Vue3中的JSX有什么不同?
2024-11-18 16:18:49 +0800 CST
Python 微软邮箱 OAuth2 认证 Demo
2024-11-20 15:42:09 +0800 CST
JavaScript设计模式:组合模式
2024-11-18 11:14:46 +0800 CST
Vue3中如何处理路由和导航?
2024-11-18 16:56:14 +0800 CST
16.6k+ 开源精准 IP 地址库
2024-11-17 23:14:40 +0800 CST
软件定制开发流程
2024-11-19 05:52:28 +0800 CST
程序员茄子在线接单