Skip to main content
Glama
dannwaneri

MCP Knowledge Base Server

by dannwaneri

search_knowledge

Find specific facts or documentation by searching a knowledge base with semantic capabilities. Use keywords to retrieve relevant information efficiently.

Instructions

Search the knowledge base for relevant information. Use this when you need to find specific facts or documentation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query or keywords
limitNoMaximum number of results to return

Implementation Reference

  • Core handler function implementing simple keyword search over the knowledge base by filtering entries where content or category matches the query (case-insensitive), then slicing to the requested limit.
    function searchKnowledge(query: string, limit: number = 5): KnowledgeEntry[] { const lowerQuery = query.toLowerCase(); return knowledgeBase .filter((item) => item.content.toLowerCase().includes(lowerQuery) || item.category.toLowerCase().includes(lowerQuery) ) .slice(0, limit); }
  • Type definition for KnowledgeEntry, which structures the data returned by the search tool.
    interface KnowledgeEntry { id: string; content: string; category: string; metadata: { source: string; date: string; }; }
  • Input schema defining the parameters for the search_knowledge tool: required 'query' string and optional 'limit' number.
    inputSchema: { type: "object", properties: { query: { type: "string", description: "Search query or keywords", }, limit: { type: "number", description: "Maximum number of results to return", default: 5, }, }, required: ["query"], },
  • src/index.ts:136-155 (registration)
    Tool registration in the ListTools response, defining name, description, and inputSchema for search_knowledge.
    { name: "search_knowledge", description: "Search the knowledge base for relevant information. Use this when you need to find specific facts or documentation.", inputSchema: { type: "object", properties: { query: { type: "string", description: "Search query or keywords", }, limit: { type: "number", description: "Maximum number of results to return", default: 5, }, }, required: ["query"], }, },
  • MCP CallTool handler branch for search_knowledge: validates input, calls searchKnowledge, formats JSON response with results, caches it, and returns MCP content.
    if (name === "search_knowledge") { const query = args?.query as string; const limit = (args?.limit as number) || 5; if (!query) { throw new Error("Query parameter is required"); } const results = searchKnowledge(query, limit); const responseText = JSON.stringify( { query, resultsCount: results.length, results: results.map((r) => ({ id: r.id, content: r.content, category: r.category, })), }, null, 2 ); // Cache the response setCache(cacheKey, responseText); return { content: [ { type: "text", text: responseText, }, ], }; }

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/dannwaneri/mcp-knowledge-base-server'

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