Token导航 LogoToken导航TokenDH.com
MCP Php Boilerplate logo
AI代理未说明官方级别未说明来源级核验

MCP Php Boilerplate

MCP Server

MCP PHP Boilerplate是一个基于MCP PHP SDK的模板,用于开发AI代理平台,提供工具、资源和提示的定义,适用于构建可扩展的PHP应用。

工具数

1

提示词数

0

GitHub Stars

0

资源数

0
PHPAI代理工作流自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

AnvilM

提供方

AnvilM

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP PHP Boilerplate

PHP Boilerplate Powered by MCP PHP SDK

](https://github.com/AnvilM/mcp-php-boilerplate/) ![phpstan-shield](https://github.com/AnvilM/mcp-php-boilerplate/) ![](https://github.com/anvilm/mcp-php-boilerplate/releases)

![status-shield](https://github.com/AnvilM/mcp-php-boilerplate/) ![last-commit-shield](https://github.com/AnvilM/mcp-php-boilerplate/commits) ![](https://github.com/anvilm/mcp-php-boilerplate/releases) ](https://github.com/anvilm/mcp-php-boilerplate/blob/master/LICENSE)

项目概述

该模板旨在利用 MCP(模型上下文 协议) 标准 和那个 MCP-PHP-SDK. 该项目整合了用于构建可扩展PHP应用程序的工具,这些应用程序能够公开工具、资源和提示 基于LLM的代理。

核心组件

入门指南

安装

通过作曲家

使用Composer创建新项目:

composer create-project anvilm/mcp-php-boilerplate my-project

通过GitHub

克隆存储库并安装依赖项:

git clone https://github.com/anvilm/mcp-php-boilerplate.git my-project
cd my-project
composer install

运行应用程序

HTTP模式(例如,内置php服务器)

php -S 127.0.0.1:8080 entrypoint/http.php

标准模式(通过标准输入/标准输出直接通信)

php entrypoint/stdio.php

目录结构

.
├── app/                          # Core application logic and infrastructure
│   ├── Bootloaders/            # Classes for initializing application components
│   ├── Config/                   # Configuration files
│   ├── Tools/                    # MCP Tools definitions
│   ├── Resources/                # MCP resources definitions
│   ├── Prompts/                  # MCP prompts definitions
│   ├── Providers/                # Dependency injection container providers
│   │   ├── ApplicationProviders/ # Providers for application functionality
│   │   └── Providers/            # Custom providers
│   └── Kernel.php                # Application entry point and bootstrap management
├── entrypoint/
│   ├── http.php                  # HTTP entry point
│   └── stdio.php                 # Stdio (stdin/stdout) entry point
├── src/                          # Source code for custom logic
└── tests/                        # Pest tests

目录组织

样板的结构是将基础架构逻辑与用户定义的代码分开:

  • 目录 app/:包含应用程序的核心基础设施,

包括 配置, 提供商, 工具, 资源, 提示引导装载机。此目录用于基础应用程序设置和操作。

  • 目录 src/:指定用于用户定义的源代码,开发人员可以在其中实现主要业务

应用程序的逻辑。

配置

应用程序配置组织在 app/Config/ 目录,并通过以下方式提供对设置的类型安全访问 带有静态方法的类。有关更多详细信息,请参阅 配置 部分。

环境变量

环境变量从 .env 引导过程中项目根目录中的文件(特别是 InfrastructureBootloader).

加载后,所有变量都可以通过全局 $_ENV 超全局阵列。

预定义环境变量:

  • 应用程序环境:定义应用环境(例如。, production, development),影响测井水平。
  • APP_DEBUG:启用或禁用调试模式,影响详细错误信息的显示。
  • APP_NAME:应用程序的名称。
  • APP_DESCRIPTION:应用程序的简短描述。

可以根据需要添加其他自定义变量。

应用配置

ApplicationConfig 类提供以下参数:

  • 基础目录:项目的根目录。
  • appEnv:应用程序环境,由 APP_ENV 变量。可用环境列在

ApplicationEnvironmentEnum 枚举。要添加新环境,请更新此枚举和 ApplicationConfig 类。

  • app调试:调试模式,由 APP_DEBUG 变量。
  • 应用名称:应用程序名称,由 APP_NAME 变量。
  • 应用程序描述:应用程序描述,由 APP_DESCRIPTION 变量。

日志记录配置

LoggerConfig 类使用Monolog配置日志参数。它包括日志文件的路径(在 logs/ 目录)和日志记录级别,这取决于 appEnv 价值。

建筑概念

配置

配置存储在 app/Config/ 目录。每个配置都作为一个类实现,该类具有静态 方法,确保对设置的类型安全访问。

例子:

namespace Application\Config\ApplicationConfig;

use function Env\env;

final readonly class ApplicationConfig
{
    public static function baseDir(): string
    {
        return dirname(__DIR__, 3);
    }
}

工具

工具定义见 app/Tools/ 目录。

创建工具的示例:

namespace Application\Tools;

use Mcp\Capability\Attribute\McpTool;

class ExampleTool
{
    #[McpTool("example_tool", "Example tool description")]
    public function handle(string $name): string
    {
        return "Hello $name";
    }
}

资源

资源定义见 app/Resources/ 目录。

创建资源的示例:

namespace Application\Resources;

use Mcp\Capability\Attribute\McpResource;

final class ExampleResource
{
    #[McpResource("example://example", "example_resource", "Example resource description", "text/plain")]
    public function handle(): string
    {
        return "example resource";
    }

}

提示

提示定义见 app/Prompts/ 目录。

创建提示的示例:

namespace Application\Prompts;

use ...

final class ExamplePrompt
{
    #[McpPrompt("example_prompt")]
    public function handle(): PromptMessage
    {
        return new PromptMessage(
            Role::User,
            new TextContent("example prompt message"),
        );
    }
}

提供商

服务提供商,位于 app/Providers/ 目录,负责在PHP-DI中注册依赖关系 容器,使应用程序可以访问它们。供应商分类如下:

  • ApplicationProviders/:对应用程序功能至关重要的提供商。 它们首先被装载。
  • Providers/:特定逻辑的自定义提供程序。

每个提供者都必须实现 ProviderInterface 并在 app/Providers/Registry.php 文件。

应用程序提供商必须在 $appProviders 数组中的其他提供者 $providers 阵列。

创建提供者的示例:

namespace App\Providers;

final readonly class DBALProvider implements ProviderInterface
{
    public static function register(): array
    {
        return [DatabaseManager::class => new DatabaseManager(
            new CycleDatabaseConfig(
                DatabaseConfig::config()
            )
        )];
    }
}

注册示例 app/Providers/Registry.php 文件:

private static array $appProviders = [
    \App\Providers\LoggerProvider::class,
    \App\Providers\DBALProvider::class,
];

private static array $providers = [
    // Other providers
];

Bootloader

应用程序引导过程分为不同的阶段,以确保组件的可扩展、有序和可预测的初始化。每个阶段都由一个专用的引导加载程序管理,允许按顺序加载组件,而不是在单个单片位置加载。

所有引导加载程序都位于 app/Bootloaders/ 目录,并且必须实现 BootloaderInterfaceThe Kernel 类通过以严格定义的顺序执行引导加载程序来编排整个引导过程。

目录结构

app/Bootloaders/
├── Application/
│   ├── ApplicationBootloader.php
│   └── Server.php
├── Infrastructure/
│   ├── Container.php
│   ├── Providers.php
│   └── InfrastructureBootloader.php
├── Environment/
│   └── EnvironmentBootloader.php
├── BootloaderInterface.php
└── Context.php

引导顺序

引导加载程序按以下顺序执行:

  1. 环境引导加载程序\

从加载环境变量 .env 项目根目录中的文件。

  1. 基础设施下载器\

配置核心基础架构组件,包括PHP-DI容器和服务提供商。

  1. 应用程序引导加载程序\

初始化MCP服务器和其他应用程序级组件。

随着应用程序的发展,可以在序列中的适当位置插入额外的引导加载程序。

扩展启动过程

要添加新的引导加载程序,请执行以下操作:

  1. 在下创建新目录和类 app/Bootloaders/例如:\

app/Bootloaders/OneMoreBootloader/OneMoreBootloader.php

  1. 实施 BootloaderInterface 在新班级。引导程序应该是静态的,收到 Context 对象,执行配置,并返回a(可能已更新) Context:

 */
class OneMoreBootloader implements BootloaderInterface
{
    /**
     * @param Context $context
     * @return Context
     */
    public static function boot(Context $context): Context
    {
        $context->get('container')->get(LoggerInterface::class)->debug("OneMoreBootloader: booted");

        return new Context(['container' => $context->get('container')]);
    }
}
  1. 在中注册新的引导加载程序 Kernel::createServer() 方法是将其链接到正确的位置:
namespace App;

use App\Bootloaders\Context;

final readonly class Kernel
{
    public static function createServer(): McpServer
    {
        /** @var Context $environmentContext */
        $environmentContext = EnvironmentBootloader::boot(new Context());

        /** @var Context $infrastructureContext */
        $infrastructureContext = InfrastructureBootloader::boot($environmentContext);

        /** @var Context $oneMoreContext */
        $oneMoreContext = OneMoreBootloader::boot($infrastructureContext);

        /** @var Context $applicationContext */
        $applicationContext = ApplicationBootloader::boot($oneMoreContext);

        return $applicationContext->get('server');
    }
}

这种链式的显式方法确保了对初始化顺序的完全控制,并使阶段之间的依赖关系透明。

许可证

该项目在MIT许可证下分发。有关详细信息,请参阅 许可证 文件。

目录标签

目录标签

PHPAI代理工作流自动化本地部署PHP开发MCP协议SDK模板

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP