SEARCH_WIKI
Search IQ.wiki by query to find relevant wiki pages. Access the information you need directly.
Instructions
Search for a wiki from IQ.wiki by query
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The query to search for |
Implementation Reference
- src/tools/search-wiki.ts:14-28 (handler)The execute function that runs the SEARCH_WIKI tool logic — instantiates SearchWikiService, calls execute then format.
execute: async (params: SearchWikiParams) => { try { const service = new SearchWikiService(); const search = await service.execute(params.query); return service.format(search); } catch (error) { if (error instanceof Error) { console.log(`Error in SEARCH_WIKI tool: ${error.message}`); return `Error searching for wiki: ${error.message}`; } return "An unknown error occurred while searching for wiki data"; } }, } as const; - src/services/search-wiki.ts:1-27 (helper)SearchWikiService class with execute (makes GraphQL query) and format (formats search results into a string).
import dedent from "dedent"; import { client } from "../lib/graphql.js"; import { SEARCH_WIKIS_QUERY } from "../lib/queries.js"; export class SearchWikiService { async execute(query: string) { const response = await client.request(SEARCH_WIKIS_QUERY, { query }); return response.search; } format(search: Awaited<ReturnType<typeof this.execute>>) { const formattedSearch = dedent` 📜 Search Results - Answer: ${search.answer} - Wiki Suggestions: ${(search.suggestions ?? []) .map( (suggestion: { id: string; title: string; }) => `${suggestion.title} (${suggestion.id})`, ) .join(", ")} `; return formattedSearch; } } - src/tools/search-wiki.ts:4-6 (schema)Zod schema for the SEARCH_WIKI parameters: requires a 'query' string (min length 1).
const searchWikiParams = z.object({ query: z.string().min(1).describe("The query to search for"), }); - src/index.ts:7-21 (registration)Imports searchWikiTool and registers it via server.addTool(searchWikiTool) on line 21.
import { searchWikiTool } from "./tools/search-wiki.js"; async function main() { console.log("Initializing IQ Wiki MCP Server..."); const server = new FastMCP({ name: "IQ Wiki MCP Server", version: "0.0.1", }); server.addTool(getWikiTool); server.addTool(getUserCreatedWikisTool); server.addTool(getUserEditedWikisTool); server.addTool(getWikiActivitiesTool); server.addTool(searchWikiTool); - src/lib/queries.ts:152-162 (schema)GraphQL query definition (SEARCH_WIKIS_QUERY) that searches wikis with a query string and returns answer + suggestions.
export const SEARCH_WIKIS_QUERY = graphql(` query searchWikis($query: String!) { search(query: $query) { answer suggestions { id title } } } `);