Skip to main content
Glama

get-revision

Retrieve specific revisions of wiki pages to access historical content, view changes, or analyze edit history with optional metadata and content formats.

Instructions

Returns a revision of a wiki page.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
revisionIdYesRevision ID
contentNoType of content to returnsource
metadataNoWhether to include metadata (revision ID, page ID, page title, user ID, user name, timestamp, comment, size, delta, minor, HTML URL) in the response

Implementation Reference

  • Primary handler function that validates parameters, fetches revision data from the REST API, and returns formatted content or error response.
    async function handleGetRevisionTool( revisionId: number, content: ContentFormat, metadata: boolean ): Promise<CallToolResult> { if ( content === ContentFormat.none && !metadata ) { return { content: [ { type: 'text', text: 'When content is set to "none", metadata must be true' } ], isError: true }; } try { const data = await makeRestGetRequest<MwRestApiRevisionObject>( `/v1/revision/${ revisionId }${ getSubEndpoint( content ) }` ); return { content: getRevisionToolResult( data, content, metadata ) }; } catch ( error ) { return { content: [ { type: 'text', text: `Failed to retrieve revision data: ${ ( error as Error ).message }` } as TextContent ], isError: true }; } }
  • Input schema definition for the tool using Zod, including revisionId, optional content format, and optional metadata flag.
    revisionId: z.number().int().positive().describe( 'Revision ID' ), content: z.nativeEnum( ContentFormat ).describe( 'Type of content to return' ).optional().default( ContentFormat.source ), metadata: z.boolean().describe( 'Whether to include metadata (revision ID, page ID, page title, user ID, user name, timestamp, comment, size, delta, minor, HTML URL) in the response' ).optional().default( false ) },
  • Registers the 'get-revision' tool on the MCP server with name, description, schema, annotations, and handler lambda.
    export function getRevisionTool( server: McpServer ): RegisteredTool { return server.tool( 'get-revision', 'Returns a revision of a wiki page.', { revisionId: z.number().int().positive().describe( 'Revision ID' ), content: z.nativeEnum( ContentFormat ).describe( 'Type of content to return' ).optional().default( ContentFormat.source ), metadata: z.boolean().describe( 'Whether to include metadata (revision ID, page ID, page title, user ID, user name, timestamp, comment, size, delta, minor, HTML URL) in the response' ).optional().default( false ) }, { title: 'Get revision', readOnlyHint: true, destructiveHint: false } as ToolAnnotations, async ( { revisionId, content, metadata } ) => handleGetRevisionTool( revisionId, content, metadata ) ); }
  • Helper function that formats the API response into an array of TextContent based on content type and metadata requirements.
    function getRevisionToolResult( result: MwRestApiRevisionObject, content: ContentFormat, metadata: boolean ): TextContent[] { if ( content === ContentFormat.source && !metadata ) { return [ { type: 'text', text: result.source ?? 'Not available' } ]; } if ( content === ContentFormat.html && !metadata ) { return [ { type: 'text', text: result.html ?? 'Not available' } ]; } const results: TextContent[] = [ getRevisionMetadataTextContent( result ) ]; if ( result.source !== undefined ) { results.push( { type: 'text', text: `Source:\n${ result.source }` } ); } if ( result.html !== undefined ) { results.push( { type: 'text', text: `HTML:\n${ result.html }` } ); } return results; }
  • Top-level registration function that invokes all tool registrars, including getRevisionTool, on the MCP server.
    export function registerAllTools( server: McpServer ): RegisteredTool[] { const registeredTools: RegisteredTool[] = []; for ( const registrar of toolRegistrars ) { try { registeredTools.push( registrar( server ) ); } catch ( error ) { console.error( `Error registering tool: ${ ( error as Error ).message }` ); } } return registeredTools; }

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