MCP服务器与PHP客户端交互工具

该项目展示了如何使用Node.js构建一个最小化的MCP服务器,并通过PHP客户端与OpenAI API进行交互,实现动态工具调用。

  • by YusufBesim
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 yusufbesim/mcp-server-nodejs-and-php-client-example

使用说明

基于OpenAI的PHP MCP服务器及其使用

这个项目演示了如何构建一个最小 MCP(模型定制协议) 服务器使用 Node.js 以及如何通过 PHP客户端 使用 openai php/客户端PHP客户端动态地从MCP服务器获取可用的工具,并在具有OpenAI的API的函数调用上下文中使用它们。

📁 文件夹结构

mcp-server-and-usage-on-php-with-openai/
├── server/
│   ├── server.js
│   └── package.json
└── client/
    ├── client.php
    └── composer.json (installed via Composer)

🚀 服务器(Node.js MCP服务器)

该服务器支持OpenAI、Claude.ai、Cursor、Windsurf等。

📦 需求

  • 建议使用Node.js v16+
  • npm(节点包管理器)

📥 安装

cd server
npm install

▶️ 跑

node server.js

默认情况下,服务器侦听端口 3000 在终点 POST /mcp.

🧠 客户端(PHP+OpenAI)

📦 需求

  • PHP 8.0+
  • 作曲家

📥 安装

cd client
composer install

这将安装 openai-php/client 及其依赖关系。

⚙️ 配置

编辑 client.php 并设置您的OpenAI API密钥:

$this->openaiClient = OpenAI::client("your-openai-api-key");

还要确保 $mcpServerUrl 变量正确指向您的MCP服务器(默认值: http://localhost:3000/mcp 或您的公共服务器IP)。

▶️ 跑

php client.php

PHP脚本将:

  1. 通过从MCP服务器获取工具 tools/list 电话。
  2. 将它们映射到OpenAI预期的函数格式。
  3. 使用这些工具调用OpenAI聊天完成端点。

🧪 示例响应

MCP服务器返回以下工具:

{
  "jsonrpc": "2.0",
  "result": {
    "tools": [
      {
        "name": "increment",
        "description": "Increments the counter by one.",
        "inputSchema": {
          "type": "object",
          "properties": {},
          "required": []
        }
      }
    ]
  },
  "id": "test"
}

客户端会自动将其转换为OpenAI兼容格式。

🛠️ 堆栈

📄 许可证

MIT-自由使用,并根据需要进行定制。

问你是否需要帮助!