承接 wpboilerplate/wpb-mcp-servers-list 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

wpboilerplate/wpb-mcp-servers-list

Composer 安装命令:

composer require wpboilerplate/wpb-mcp-servers-list

包简介

Composer library to retrieve all MCP servers registered in WordPress via the MCP Adapter plugin. Provides typed data objects and an optional REST endpoint. Styling and display are intentionally left to the consuming plugin.

README 文档

README

A Composer library that retrieves all MCP servers registered in WordPress via the MCP Adapter plugin.

This package is intentionally display-free. It provides typed PHP data objects and an optional REST endpoint. How the data is styled and rendered is entirely up to the consuming plugin.

Requirements

Dependency Version
PHP >= 7.4
WordPress >= 6.8
Jetpack Autoloader ^5.0 (≥ v5.0.18, Composer dependency)
MCP Adapter plugin >= 0.5.0 (soft dependency)

The package works gracefully when MCP Adapter is not active — get_servers() simply returns an empty array and is_adapter_available() returns false.

Installation

composer require wpboilerplate/wpb-mcp-servers-list

Make sure your plugin loads the Jetpack Autoloader (installed alongside this package):

require_once __DIR__ . '/vendor/autoload_packages.php';

This package uses Jetpack Autoloader instead of the standard Composer autoloader to prevent class-version conflicts when multiple plugins require the same package. Always load vendor/autoload_packages.php, not vendor/autoload.php.

Usage

1. Collect server data

MCP Adapter registers servers during rest_api_init at priority 15. You must collect after that:

use WPBoilerplate\McpServersList\McpServersList;

// Option A – one-liner bootstrap (registers the hook automatically)
add_action( 'plugins_loaded', [ McpServersList::class, 'bootstrap' ] );

// Option B – manual hook (more control)
add_action( 'rest_api_init', function () {
    McpServersList::instance()->collect();
}, 20 );

2. Read the data

use WPBoilerplate\McpServersList\McpServersList;

$servers = McpServersList::instance()->get_servers();
// $servers → ServerData[]

foreach ( $servers as $server ) {
    echo $server->get_name();         // "WordPress MCP Server"
    echo $server->get_id();           // "default"
    echo $server->get_version();      // "0.5.0"
    echo $server->get_endpoint_url(); // "https://example.com/wp-json/wp/mcp/v1/mcp"

    foreach ( $server->get_tools() as $tool ) {
        echo $tool->get_name();        // "discover_abilities"
        echo $tool->get_description(); // "..."
    }

    foreach ( $server->get_resources() as $resource ) {
        echo $resource->get_name();
        echo $resource->get_uri();
        echo $resource->get_description();
    }

    foreach ( $server->get_prompts() as $prompt ) {
        echo $prompt->get_name();
        echo $prompt->get_description();
    }
}

3. Optional REST endpoint

Register the built-in endpoint so your admin JS can fetch server data:

use WPBoilerplate\McpServersList\RestEndpoint;

add_action( 'rest_api_init', function () {
    // Default: GET /wp-json/wpb-mcp-servers-list/v1/servers  (requires manage_options)
    RestEndpoint::register();

    // Custom namespace / capability at registration time:
    // RestEndpoint::register( 'read', 'my-plugin/v1', '/mcp-servers' );
}, 20 );

The endpoint is admin-only by default (manage_options). Use the wpb_mcp_servers_list_rest_capability filter to change the required capability at runtime:

// Allow editors to access the endpoint:
add_filter( 'wpb_mcp_servers_list_rest_capability', function ( string $cap ): string {
    return 'edit_posts';
} );

// Allow any logged-in user:
add_filter( 'wpb_mcp_servers_list_rest_capability', function ( string $cap ): string {
    return 'read';
} );

Note: The filter takes precedence over the $capability argument passed to RestEndpoint::register(). Non-admin users always receive a 401 Unauthorized response if neither the argument nor the filter grants them access.

Response shape:

{
    "adapter_available": true,
    "servers": [
        {
            "id": "default",
            "name": "WordPress MCP Server",
            "description": "...",
            "version": "0.5.0",
            "endpoint_url": "https://example.com/wp-json/wp/mcp/v1/mcp",
            "route_namespace": "wp/mcp/v1",
            "route": "/mcp",
            "tools": [
                { "name": "discover_abilities", "description": "..." }
            ],
            "resources": [],
            "prompts": []
        }
    ]
}

4. Check adapter availability

if ( McpServersList::is_adapter_available() ) {
    // MCP Adapter plugin is active
}

API Reference

McpServersList

Method Returns Description
::instance() McpServersList Get singleton instance
::bootstrap() void Register collect() on rest_api_init at priority 20
::is_adapter_available() bool Check if MCP Adapter is active
->collect() void Collect all registered servers (idempotent)
->get_servers() ServerData[] All collected servers
->get_server( $id ) ServerData|null Single server by ID
->has_servers() bool Whether any servers were collected
->is_collected() bool Whether collect() has run

RestEndpoint

Method Description
::register( $capability, $namespace, $route ) Register the REST endpoint (admin-only by default)
::get_schema() Get the JSON schema for the response

Constants: RestEndpoint::NAMESPACE, RestEndpoint::ROUTE

Filter: wpb_mcp_servers_list_rest_capability — override the required WordPress capability at runtime.

// Default behaviour (administrators only):
// apply_filters( 'wpb_mcp_servers_list_rest_capability', 'manage_options' )

ServerData

Method Returns
get_id() string
get_name() string
get_description() string
get_version() string
get_endpoint_url() string
get_route_namespace() string
get_route() string
get_tools() ToolData[]
get_resources() ResourceData[]
get_prompts() PromptData[]
to_array() array

ToolData / PromptData

get_name(), get_description(), to_array()

ResourceData

get_name(), get_uri(), get_description(), to_array()

Changelog

See CHANGELOG.md.

License

GPL-2.0-or-later — see LICENSE.

wpboilerplate/wpb-mcp-servers-list 适用场景与选型建议

wpboilerplate/wpb-mcp-servers-list 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 323 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 05 月 14 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「wordpress」 「mcp」 「model-context-protocol」 「mcp-adapter」 「mcp-servers」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 wpboilerplate/wpb-mcp-servers-list 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 wpboilerplate/wpb-mcp-servers-list 我们能提供哪些服务?
定制开发 / 二次开发

基于 wpboilerplate/wpb-mcp-servers-list 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 323
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 44
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-2.0-or-later
  • 更新时间: 2026-05-14