dependency-context
Version:
MCP server for providing dependency documentation context to AI assistants
52 lines • 2.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SearchParamsSchema = void 0;
exports.searchDependencyDocs = searchDependencyDocs;
const vectorstore_1 = require("../vectorstore");
const config_1 = require("../config");
const zod_1 = require("zod");
// Define the schema for the tool parameters
const SearchParamsSchema = zod_1.z.object({
project_path: zod_1.z.string().describe("The absolute path to the project directory"),
query: zod_1.z.string().describe("The search query"),
repository_context: zod_1.z.string().optional().describe("Optional repository name to limit the search to"),
env_vars: zod_1.z.record(zod_1.z.string()).optional().describe("Environment variables to set during search")
});
exports.SearchParamsSchema = SearchParamsSchema;
/**
* Performs semantic search over indexed dependency documentation
*/
async function searchDependencyDocs(params, context) {
const log = context?.log || console;
try {
const { project_path, query, repository_context, env_vars } = params;
log.info(`Searching for "${query}" in project at ${project_path}`);
// Set environment variables if provided via MCP
if (env_vars) {
for (const [key, value] of Object.entries(env_vars)) {
process.env[key] = value;
}
}
// Get configuration (includes project-specific .env)
const config = (0, config_1.getConfig)(project_path);
if (config.debugMode) {
log.debug(`Search details:`, {
query,
repository_context: repository_context || 'all repositories'
});
}
// Perform vector search
const results = await (0, vectorstore_1.searchVectorStore)(project_path, query, repository_context, config);
log.info(`Found ${results.length} results for search query`);
return JSON.stringify({ results });
}
catch (error) {
const errorMessage = error instanceof Error ? error.message : String(error);
log.error('Error performing search:', { error: errorMessage });
return JSON.stringify({
results: [],
error: errorMessage
});
}
}
//# sourceMappingURL=search.js.map