Skip to main content
Glama
Parado-xy

Seroost Search MCP Server

by Parado-xy

seroost_search

Search indexed codebases using semantic or fuzzy matching to find functions, classes, variables, or code patterns with ranked results including line numbers and file paths.

Instructions

Search through indexed codebase using semantic/fuzzy matching. Returns ranked results with line numbers, file paths, and relevance scores. Ideal for finding functions, classes, variable usage, or code patterns across the entire project including dependencies.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesSearch term or phrase to find in the codebase. Can be function names, variable names, code snippets, or natural language descriptions of functionality.

Implementation Reference

  • src/index.ts:19-52 (registration)
    Registration of the seroost_search MCP tool, including tool name, description, input schema with zod validation for 'query' parameter, and the handler function that executes runSearch and formats the response as MCP content blocks.
    server.tool( "seroost_search", "Search through indexed codebase using semantic/fuzzy matching. Returns ranked results with line numbers, file paths, and relevance scores. Ideal for finding functions, classes, variable usage, or code patterns across the entire project including dependencies.", { query: z .string() .describe( "Search term or phrase to find in the codebase. Can be function names, variable names, code snippets, or natural language descriptions of functionality." ), }, async ({ query }) => { try { let content = await runSearch(query); return { content: [ { type: "text", text: JSON.stringify(content), }, ], }; } catch (error) { return { content: [ { type: "text", text: "failure", }, ], }; } } );
  • Core handler function for executing the search: prepares CLI arguments for seroost ('-m code search <query>') and invokes the runSeroost utility.
    export function runSearch(query: string, mode = "code") { const args = ["-m", mode, "search", query]; return runSeroost(args); }
  • Helper utility that spawns the external 'seroost' binary with given arguments, captures stdout as the result (expected to be JSON), handles stderr on error, and resolves/rejects the promise accordingly.
    function runSeroost(args: string[]) { return new Promise((resolve, reject) => { const proc = spawn("seroost", args); let out = ""; let err = ""; proc.stdout.on("data", (d) => (out += d.toString())); proc.stderr.on("data", (d) => (err += d.toString())); proc.on("close", (code) => { if (code === 0) { try { resolve(out); } catch { reject(new Error("Invalid JSON from Seroost: " + out)); } } else { reject(new Error(err || "Seroost failed")); } }); }); }

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/Parado-xy/semantic-search-mcp'

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