Skip to main content
Glama
ProfessionalWiki

mediawiki-mcp-server

search-page-by-prefix

Find MediaWiki pages by title prefix to locate specific content or explore related articles efficiently.

Instructions

Performs a prefix search for page titles.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
prefixYesSearch prefix
limitNoMaximum number of results to return
namespaceNoNamespace to search

Implementation Reference

  • Main handler function `handleSearchPageByPrefixTool` that performs the prefix search using `mwn.getPagesByPrefix`, handles errors, empty results, and formats output using helper.
    async function handleSearchPageByPrefixTool(
    	prefix: string, limit?: number, namespace?: number
    ): Promise< CallToolResult > {
    	let data: string[];
    	try {
    		const mwn = await getMwn();
    		const options: ApiQueryAllPagesParams = {};
    
    		if ( limit ) {
    			options.aplimit = limit;
    		}
    		if ( namespace ) {
    			options.apnamespace = namespace;
    		}
    
    		data = await mwn.getPagesByPrefix( prefix, options );
    	} catch ( error ) {
    		return {
    			content: [
    				{ type: 'text', text: `Failed to retrieve search data: ${ ( error as Error ).message }` } as TextContent
    			],
    			isError: true
    		};
    	}
    
    	if ( data.length === 0 ) {
    		return {
    			content: [
    				{ type: 'text', text: `No pages found with the prefix "${ prefix }"` } as TextContent
    			]
    		};
    	}
    
    	return {
    		content: data.map( getSearchPageByPrefixToolResult )
    	};
    }
  • Zod input schema for tool parameters: `prefix` (string), `limit` (optional number 1-500), `namespace` (optional nonnegative integer).
    prefix: z.string().describe( 'Search prefix' ),
    limit: z.number().int().min( 1 ).max( 500 ).optional().describe( 'Maximum number of results to return' ),
    namespace: z.number().int().nonnegative().optional().describe( 'Namespace to search' )
  • Tool registrar function `searchPageByPrefixTool` calling `server.tool('search-page-by-prefix', ...)` with description, schema, annotations, and handler reference.
    export function searchPageByPrefixTool( server: McpServer ): RegisteredTool {
    	return server.tool(
    		'search-page-by-prefix',
    		'Performs a prefix search for page titles.',
    		{
    			prefix: z.string().describe( 'Search prefix' ),
    			limit: z.number().int().min( 1 ).max( 500 ).optional().describe( 'Maximum number of results to return' ),
    			namespace: z.number().int().nonnegative().optional().describe( 'Namespace to search' )
    		},
    		{
    			title: 'Search page by prefix',
    			readOnlyHint: true,
    			destructiveHint: false
    		} as ToolAnnotations,
    		async (
    			{ prefix, limit, namespace }
    		) => handleSearchPageByPrefixTool( prefix, limit, namespace )
    	);
    }
  • Helper `getSearchPageByPrefixToolResult` to format page title as `TextContent`.
    function getSearchPageByPrefixToolResult( title: string ): TextContent {
    	return {
    		type: 'text',
    		text: title
    	};
    }
  • Import of registrar and addition to `toolRegistrars` array for bulk registration via `registerAllTools`.
    import { searchPageByPrefixTool } from './search-page-by-prefix.js';
    
    const toolRegistrars = [
    	getPageTool,
    	getPageHistoryTool,
    	searchPageTool,
    	setWikiTool,
    	addWikiTool,
    	removeWikiTool,
    	updatePageTool,
    	getFileTool,
    	createPageTool,
    	uploadFileTool,
    	uploadFileFromUrlTool,
    	deletePageTool,
    	getRevisionTool,
    	undeletePageTool,
    	getCategoryMembersTool,
    	searchPageByPrefixTool
    ];

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ProfessionalWiki/MediaWiki-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server