Token导航 LogoToken导航TokenDH.com
Mwstake Mediawiki Component MCP logo
文档知识未说明官方级别未说明来源级核验

Mwstake Mediawiki Component MCP

MCP Server

为MCP服务器提供工具定义和执行能力,允许在MediaWiki扩展中定义工具并由MCP服务器使用。

工具数

1

提示词数

0

GitHub Stars

1

资源数

0
PHPToken认证文档处理

安装说明

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

作者 / 组织

hallowelt

提供方

hallowelt

最后核验

2026/5/17 20:21

快速接入

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

详细介绍

MCP服务器配套

此组件为MCP服务器提供工具定义和执行能力。 MCP服务器使用它来检索工具定义并执行它们,从而允许定义工具 在MediaWiki扩展中,由MCP服务器使用 (这在MCP服务器本身非常困难和不便,因为它是一个Node.js应用程序)。

在wiki端设置

要设置组件,请将以下内容添加到您的 LocalSettings.php 文件:

$GLOBALS['mwsgTokenAuthenticatorServiceAllowedRestPaths'] = $GLOBALS['mwsgTokenAuthenticatorServiceAllowedRestPaths'] ?? [];

$GLOBALS['mwsgTokenAuthenticatorServiceAllowedRestPaths'][] = '/mws/v1/mcp/get_wiki_map';
$GLOBALS['mwsgTokenAuthenticatorServiceAllowedRestPaths'][] = '/mws/v1/app-token/generate';
$GLOBALS['mwsgTokenAuthenticatorServiceAllowedRestPaths'][] = '/mws/v1/app-token/verify';
$GLOBALS['mwsgTokenAuthenticatorServiceAllowedRestPaths'][] = '/mws/v1/mcp/list_tools';
$GLOBALS['mwsgTokenAuthenticatorServiceAllowedRestPaths'][] = '/mws/v1/mcp/get_wiki_map';

添加工具

创建一个定义工具的类


use MWStake\MediaWiki\Component\MCP\ExecutionHandler\RestApiHandler;
use MWStake\MediaWiki\Component\MCP\FieldSchema;
use MWStake\MediaWiki\Component\MCP\IMcpTool;
use MWStake\MediaWiki\Component\MCP\IMcpToolExecutionHandler;
use MWStake\MediaWiki\Component\MCP\ToolDefinition;

class CreatePage implements IMcpTool {

	public function getKey(): string {
		return 'createPage';
	}

	/**
	 * @return ToolDefinition
	 */
	public function getDefinition(): ToolDefinition {
		$inputSchema = ( new FieldSchema() )
			->addString( 'source', 'Text, content of the page' )
			->addString( 'title', 'Title of the page' )
			->addString( 'comment', 'Summary of the edit. Can be null' )
			->setNullable( 'comment' )
			->setRequired( [ 'source', 'title', 'comment' ] );

		$outputSchema = ( new FieldSchema() )
			->addInteger( 'id', 'ID of the page that was just created' )
			->addString( 'title', 'Title of the page that was just created' )
			->addString( 'key', 'DB-key of the page that was just created' );

		return new ToolDefinition(
			'Create a wiki page',
			'Create aage with given content',
			$inputSchema,
			$outputSchema
		);
	}

	/**
	 * @return IMcpToolExecutionHandler
	 */
	public function getExecutionMethod(): IMcpToolExecutionHandler {
		return new RestApiHandler( '/v1/page/', 'POST' );
	}
}

或者,指定为通用工具(没有自定义类)

$inputSchema = ( new FieldSchema() )
    ->addString( 'source', 'Text, content of the page' )
    ->addString( 'title', 'Title of the page' )
    ->addString( 'comment', 'Summary of the edit. Can be null' )
    ->setNullable( 'comment' )
    ->setRequired( [ 'source', 'title', 'comment' ] );

$outputSchema = ( new FieldSchema() )
    ->addInteger( 'id', 'ID of the page that was just created' )
    ->addString( 'title', 'Title of the page that was just created' )
    ->addString( 'key', 'DB-key of the page that was just created' );

$definition = new ToolDefinition(
    'Create a wiki page',
    'Create aage with given content',
    $inputSchema,
    $outputSchema
);

$tool = new MWStake\MediaWiki\Component\MCP\Tool\GenericTool(
    'createPage',
    $definition,
    new RestApiHandler( '/v1/page/', 'POST' )
);

然后,在DI容器中注册该工具:


function onMediaWikiServices( $services ) {
    $registry = $services->getService( 'MWStake.MCP.ToolRegistry' );
    $registry->registerTool( $tool );
}

执行方法

如上所示,工具返回 IMcpToolExecutionHandler这定义了应该如何执行此工具。 工具可以执行常规的、已经存在的API

return new RestApiHandler( '/v1/page/', 'POST' );
return new ActionApiHandler( 'edit' )

或者他们可以为工具定义一个自定义处理程序


class MyCustomToolExecutor implement IMcpToolExecutor {
    public function execute( IMcpTool $tool, array $input ): array {
        // Process $input (which will be in format as specified by tool's input schema) and execute the tool's action
        // Return output in format specified by tool's output schema
    }
}

在这种情况下,请在 getExecutionMethod 工具的方法

return new DirectExecution( [
    'class' => MyCustomToolExecutor::class,
    'args' => ...
] );

examples/Examples.MD 了解更多工具和执行方法的示例。

备注

  • 避免实施运行的工具 POST 针对ActionAPI的请求。它需要检索CSRF令牌,

增加了流量和延迟。尽可能使用REST对应项

  • 工具列表始终从以下位置检索 w。因此,对于所有实例,它总是相同的,并且检索到的所有工具都需要

可用于所有入口(无论如何都是这样,但只需提及:)

目录标签

目录标签

PHPToken认证文档处理本地部署工具执行MediaWiki扩展服务器工具管理

接入字段

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

未说明

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

token

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明token部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP