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

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

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

推荐文章

curl错误代码表
2024-11-17 09:34:46 +0800 CST
底部导航栏
2024-11-19 01:12:32 +0800 CST
设置mysql支持emoji表情
2024-11-17 04:59:45 +0800 CST
git使用笔记
2024-11-18 18:17:44 +0800 CST
淘宝npm镜像使用方法
2024-11-18 23:50:48 +0800 CST
XSS攻击是什么?
2024-11-19 02:10:07 +0800 CST
支付页面html收银台
2025-03-06 14:59:20 +0800 CST
PHP 代码功能与使用说明
2024-11-18 23:08:44 +0800 CST
Mysql允许外网访问详细流程
2024-11-17 05:03:26 +0800 CST
黑客帝国代码雨效果
2024-11-19 01:49:31 +0800 CST
JavaScript设计模式:桥接模式
2024-11-18 19:03:40 +0800 CST
在 Rust 中使用 OpenCV 进行绘图
2024-11-19 06:58:07 +0800 CST
Go 如何做好缓存
2024-11-18 13:33:37 +0800 CST
地图标注管理系统
2024-11-19 09:14:52 +0800 CST
JavaScript 流程控制
2024-11-19 05:14:38 +0800 CST
开源AI反混淆JS代码:HumanifyJS
2024-11-19 02:30:40 +0800 CST
Nginx 防止IP伪造,绕过IP限制
2025-01-15 09:44:42 +0800 CST
Vue中的`key`属性有什么作用?
2024-11-17 11:49:45 +0800 CST
Linux 常用进程命令介绍
2024-11-19 05:06:44 +0800 CST
10个几乎无人使用的罕见HTML标签
2024-11-18 21:44:46 +0800 CST
Java环境中使用Elasticsearch
2024-11-18 22:46:32 +0800 CST
程序员茄子在线接单