Skip to main content
Glama
kongyo2

EVE University Wiki MCP Server

get_eve_wiki_summary

Retrieve concise summaries of EVE University Wiki articles, with automatic fallback to Wayback Machine for uninterrupted access to EVE Online knowledge.

Instructions

Get a summary of an EVE University Wiki article (with Wayback Machine fallback)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the EVE University Wiki article

Implementation Reference

  • The tool handler function that executes the tool logic by calling eveWikiClient.getSummary and formatting the JSON response with source detection.
    execute: async (args) => {
      try {
        const summary = await eveWikiClient.getSummary(args.title);
        const isArchived = summary.includes("(Retrieved from archived version)");
        
        return JSON.stringify(
          {
            summary: summary,
            title: args.title,
            source: isArchived ? "wayback_machine" : "live_wiki",
          },
          null,
          2,
        );
      } catch (error) {
        return `Error getting summary: ${error}`;
      }
    },
  • Zod input schema defining the 'title' parameter for the tool.
    parameters: z.object({
      title: z.string().describe("Title of the EVE University Wiki article"),
    }),
  • src/server.ts:88-117 (registration)
    Registration of the 'get_eve_wiki_summary' tool using FastMCP server.addTool, including annotations, description, name, handler, and parameters.
    server.addTool({
      annotations: {
        openWorldHint: true,
        readOnlyHint: true,
        title: "Get EVE University Wiki Summary",
      },
      description: "Get a summary of an EVE University Wiki article (with Wayback Machine fallback)",
      execute: async (args) => {
        try {
          const summary = await eveWikiClient.getSummary(args.title);
          const isArchived = summary.includes("(Retrieved from archived version)");
          
          return JSON.stringify(
            {
              summary: summary,
              title: args.title,
              source: isArchived ? "wayback_machine" : "live_wiki",
            },
            null,
            2,
          );
        } catch (error) {
          return `Error getting summary: ${error}`;
        }
      },
      name: "get_eve_wiki_summary",
      parameters: z.object({
        title: z.string().describe("Title of the EVE University Wiki article"),
      }),
    });
  • Core implementation of summary retrieval using MediaWiki extracts API with retry logic and Wayback Machine fallback for archived content.
    async getSummary(title: string): Promise<string> {
      return this.retryableRequest(async () => {
        try {
          const response = await this.client.get("", {
            params: {
              action: "query",
              exintro: true,
              explaintext: true,
              exsectionformat: "plain",
              format: "json",
              prop: "extracts",
              titles: title,
            },
          });
    
          const pages = response.data?.query?.pages;
          if (!pages) {
            throw new Error("No pages found");
          }
    
          const pageId = Object.keys(pages)[0];
          const page = pages[pageId];
    
          if (page.missing) {
            throw new Error(`Article "${title}" not found`);
          }
    
          return page.extract || "No summary available";
        } catch (error) {
          console.error("Primary EVE Wiki summary request failed, trying Wayback Machine fallback:", error);
          
          // Try Wayback Machine fallback
          try {
            const articleUrl = `https://wiki.eveuniversity.org/wiki/${encodeURIComponent(title.replace(/ /g, '_'))}`;
            const waybackContent = await this.getWaybackContent(articleUrl);
            const textContent = this.extractTextFromHtml(waybackContent);
            
            // Extract first paragraph as summary
            const paragraphs = textContent.split('\n\n').filter(p => p.trim().length > 0);
            const summary = paragraphs[0] || textContent.substring(0, 500);
            
            return `${summary} (Retrieved from archived version)`;
          } catch (waybackError) {
            console.error("Wayback Machine fallback also failed:", waybackError);
            throw new Error(`Failed to get summary for "${title}" from both primary source and Wayback Machine`);
          }
        }
      });
    }
Install Server

Other Tools

Related Tools

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/kongyo2/EVE-University-Wiki-MCP-Server'

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