@sensegrep/mcp 0.1.8 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/server.js CHANGED
@@ -2,11 +2,29 @@
2
2
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
4
  import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
5
+ import path from "node:path";
6
+ import { fileURLToPath, pathToFileURL } from "node:url";
5
7
  let corePromise = null;
6
8
  let toolPromise = null;
9
+ const WATCH_INTERVAL_MS = 60_000;
10
+ let watchHandle = null;
11
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
7
12
  async function loadCore() {
8
13
  if (!corePromise) {
9
- corePromise = import("@sensegrep/core");
14
+ corePromise = import("@sensegrep/core").catch(async (error) => {
15
+ const fallbackUrl = pathToFileURL(path.join(__dirname, "..", "..", "core", "dist", "index.js")).href;
16
+ try {
17
+ return await import(fallbackUrl);
18
+ }
19
+ catch (fallbackError) {
20
+ const message = fallbackError instanceof Error
21
+ ? fallbackError.message
22
+ : String(fallbackError);
23
+ const err = new Error(`Failed to load @sensegrep/core. Fallback also failed: ${message}`);
24
+ err.cause = error;
25
+ throw err;
26
+ }
27
+ });
10
28
  }
11
29
  return corePromise;
12
30
  }
@@ -20,10 +38,59 @@ async function loadTool() {
20
38
  function isIncremental(result) {
21
39
  return result.mode === "incremental";
22
40
  }
41
+ function formatIndexResult(result) {
42
+ const duration = ((result.duration ?? 0) / 1000).toFixed(1);
43
+ if (isIncremental(result)) {
44
+ return `Indexed ${result.files ?? 0} files (${result.chunks ?? 0} chunks), skipped ${result.skipped ?? 0}, removed ${result.removed ?? 0} in ${duration}s`;
45
+ }
46
+ return `Indexed ${result.files ?? 0} files (${result.chunks ?? 0} chunks) in ${duration}s`;
47
+ }
48
+ function watchEnabled() {
49
+ const raw = process.env.SENSEGREP_WATCH;
50
+ if (!raw)
51
+ return true;
52
+ return !["0", "false", "off", "no"].includes(raw.toLowerCase());
53
+ }
54
+ async function startWatch() {
55
+ if (!watchEnabled())
56
+ return;
57
+ if (watchHandle)
58
+ return;
59
+ const { IndexWatcher } = await loadCore();
60
+ // Use SENSEGREP_ROOT if set, otherwise let watcher auto-detect from most recent index
61
+ const rootDir = process.env.SENSEGREP_ROOT;
62
+ try {
63
+ watchHandle = await IndexWatcher.start({
64
+ rootDir: rootDir, // Will auto-detect if undefined
65
+ intervalMs: WATCH_INTERVAL_MS,
66
+ onIndex: (result) => {
67
+ const message = formatIndexResult(result);
68
+ if (message)
69
+ console.error(`[sensegrep] ${message}`);
70
+ },
71
+ onError: (error) => {
72
+ const message = error instanceof Error ? error.message : String(error);
73
+ console.error(`[sensegrep] watch error: ${message}`);
74
+ },
75
+ });
76
+ console.error(`[sensegrep] watching (reindex at most once per minute)`);
77
+ }
78
+ catch (error) {
79
+ const message = error instanceof Error ? error.message : String(error);
80
+ console.error(`[sensegrep] failed to start watcher: ${message}`);
81
+ // Don't throw - allow MCP to continue without watcher
82
+ }
83
+ }
84
+ async function stopWatch() {
85
+ if (watchHandle) {
86
+ await watchHandle.stop();
87
+ watchHandle = null;
88
+ }
89
+ }
23
90
  const tools = [
24
91
  {
25
92
  name: "sensegrep.search",
26
- description: "Semantic + structural code search with optional regex filters.",
93
+ description: "Semantic + structural code search with optional regex filters. Automatically uses the embedding model from the index.",
27
94
  inputSchema: {
28
95
  type: "object",
29
96
  properties: {
@@ -31,6 +98,8 @@ const tools = [
31
98
  pattern: { type: "string", description: "Regex pattern filter" },
32
99
  limit: { type: "number", description: "Max results (default: 20)" },
33
100
  include: { type: "string", description: "File glob filter (e.g., 'src/**/*.ts')" },
101
+ symbol: { type: "string", description: "Filter by symbol name" },
102
+ name: { type: "string", description: "Alias for symbol name" },
34
103
  symbolType: {
35
104
  type: "string",
36
105
  enum: ["function", "class", "method", "interface", "type", "variable", "namespace", "enum"],
@@ -39,6 +108,9 @@ const tools = [
39
108
  isExported: { type: "boolean", description: "Only exported symbols" },
40
109
  minComplexity: { type: "number", description: "Minimum cyclomatic complexity" },
41
110
  maxComplexity: { type: "number", description: "Maximum cyclomatic complexity" },
111
+ minScore: { type: "number", description: "Minimum relevance score 0-1" },
112
+ maxPerFile: { type: "number", description: "Max results per file (default: 1)" },
113
+ maxPerSymbol: { type: "number", description: "Max results per symbol (default: 1)" },
42
114
  hasDocumentation: { type: "boolean", description: "Require documentation" },
43
115
  language: {
44
116
  type: "string",
@@ -46,17 +118,36 @@ const tools = [
46
118
  description: "Filter by language",
47
119
  },
48
120
  parentScope: { type: "string", description: "Parent scope/class name" },
121
+ imports: { type: "string", description: "Filter by imported module name (e.g., 'react')" },
49
122
  rerank: { type: "boolean", description: "Enable cross-encoder reranking" },
50
- embedModel: { type: "string", description: "Override embedding model" },
51
- embedDim: { type: "number", description: "Override embedding dimension" },
52
- rerankModel: { type: "string", description: "Override reranker model" },
53
- device: { type: "string", description: "cpu|cuda|webgpu|wasm" },
54
- provider: { type: "string", description: "local|gemini" },
55
123
  rootDir: { type: "string", description: "Root directory (default: cwd)" },
56
124
  },
57
125
  required: ["query"],
58
126
  },
59
127
  },
128
+ {
129
+ name: "sensegrep.detect_duplicates",
130
+ description: "Detect logical duplicates using the existing semantic index (vector store).",
131
+ inputSchema: {
132
+ type: "object",
133
+ properties: {
134
+ rootDir: { type: "string", description: "Root directory (default: cwd)" },
135
+ threshold: { type: "number", description: "Minimum similarity 0.0-1.0 (default: 0.85)" },
136
+ scope: { type: "string", description: "Scope: function, method, all (or comma-separated)" },
137
+ ignoreTests: { type: "boolean", description: "Ignore test files" },
138
+ crossFileOnly: { type: "boolean", description: "Only report cross-file duplicates" },
139
+ onlyExported: { type: "boolean", description: "Only exported symbols" },
140
+ excludePattern: { type: "string", description: "Exclude symbols matching regex" },
141
+ minLines: { type: "number", description: "Minimum lines (default: 10)" },
142
+ minComplexity: { type: "number", description: "Minimum complexity (default: 0)" },
143
+ limit: { type: "number", description: "Max duplicates to show (default: 10)" },
144
+ showCode: { type: "boolean", description: "Show code snippets" },
145
+ verbose: { type: "boolean", description: "Show detailed output" },
146
+ quiet: { type: "boolean", description: "Only show summary" },
147
+ json: { type: "boolean", description: "Return raw JSON result" },
148
+ },
149
+ },
150
+ },
60
151
  {
61
152
  name: "sensegrep.index",
62
153
  description: "Create or update a semantic index for the given root directory.",
@@ -64,12 +155,11 @@ const tools = [
64
155
  type: "object",
65
156
  properties: {
66
157
  rootDir: { type: "string", description: "Root directory to index" },
67
- full: { type: "boolean", description: "Full reindex (default: incremental)" },
68
- embedModel: { type: "string", description: "Override embedding model" },
69
- embedDim: { type: "number", description: "Override embedding dimension" },
70
- rerankModel: { type: "string", description: "Override reranker model" },
71
- device: { type: "string", description: "cpu|cuda|webgpu|wasm" },
72
- provider: { type: "string", description: "local|gemini" },
158
+ mode: {
159
+ type: "string",
160
+ enum: ["incremental", "full"],
161
+ description: "Index mode (default: incremental)",
162
+ },
73
163
  },
74
164
  },
75
165
  },
@@ -86,7 +176,7 @@ const tools = [
86
176
  ];
87
177
  const server = new Server({
88
178
  name: "sensegrep",
89
- version: "0.1.6",
179
+ version: "0.1.11",
90
180
  }, {
91
181
  capabilities: {
92
182
  tools: {},
@@ -98,23 +188,13 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
98
188
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
99
189
  const { name, arguments: args } = request.params;
100
190
  const rootDir = args.rootDir || process.env.SENSEGREP_ROOT || process.cwd();
101
- const provider = args.provider === "local" || args.provider === "gemini" ? args.provider : undefined;
102
- const embedOverrides = {
103
- ...(args.embedModel ? { embedModel: String(args.embedModel) } : {}),
104
- ...(args.embedDim ? { embedDim: Number(args.embedDim) } : {}),
105
- ...(args.rerankModel ? { rerankModel: String(args.rerankModel) } : {}),
106
- ...(args.device ? { device: String(args.device) } : {}),
107
- ...(provider ? { provider } : {}),
108
- };
109
191
  try {
110
192
  if (name === "sensegrep.search") {
111
193
  const { core, tool } = await loadTool();
112
194
  const { rootDir: _root, ...toolArgs } = args;
113
- const { Instance, Embeddings } = core;
114
- const withOverrides = Object.keys(embedOverrides).length
115
- ? (fn) => Embeddings.withConfig(embedOverrides, fn)
116
- : (fn) => fn();
117
- const res = await withOverrides(() => Instance.provide({
195
+ const { Instance } = core;
196
+ // Search tool now reads embeddings config from index automatically
197
+ const res = await Instance.provide({
118
198
  directory: rootDir,
119
199
  fn: () => tool.execute(toolArgs, {
120
200
  sessionID: "mcp",
@@ -123,22 +203,20 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
123
203
  abort: new AbortController().signal,
124
204
  metadata(_input) { },
125
205
  }),
126
- }));
206
+ });
127
207
  return {
128
208
  content: [{ type: "text", text: res.output }],
129
209
  };
130
210
  }
131
211
  if (name === "sensegrep.index") {
132
- const full = args.full === true;
133
212
  const { core } = await loadTool();
134
- const { Indexer, Instance, Embeddings } = core;
135
- const withOverrides = Object.keys(embedOverrides).length
136
- ? (fn) => Embeddings.withConfig(embedOverrides, fn)
137
- : (fn) => fn();
138
- const result = (await withOverrides(() => Instance.provide({
213
+ const { Indexer, Instance } = core;
214
+ const mode = String(args.mode ?? "incremental").toLowerCase();
215
+ const full = mode === "full";
216
+ const result = (await Instance.provide({
139
217
  directory: rootDir,
140
218
  fn: () => (full ? Indexer.indexProject() : Indexer.indexProjectIncremental()),
141
- })));
219
+ }));
142
220
  const files = result.files ?? 0;
143
221
  const chunks = result.chunks ?? 0;
144
222
  const skipped = result.skipped ?? 0;
@@ -152,6 +230,161 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
152
230
  content: [{ type: "text", text }],
153
231
  };
154
232
  }
233
+ if (name === "sensegrep.detect_duplicates" || name === "sensegrep.detect-duplicates") {
234
+ const { core } = await loadTool();
235
+ const { DuplicateDetector, Instance } = core;
236
+ const minThreshold = typeof args?.threshold === "number" ? Number(args.threshold) : 0.85;
237
+ let scopeFilter;
238
+ const scopeRaw = args?.scope;
239
+ if (scopeRaw) {
240
+ const scopeStr = String(scopeRaw).toLowerCase();
241
+ if (scopeStr === "all") {
242
+ scopeFilter = undefined;
243
+ }
244
+ else if (scopeStr === "function") {
245
+ scopeFilter = ["function"];
246
+ }
247
+ else if (scopeStr === "method") {
248
+ scopeFilter = ["method"];
249
+ }
250
+ else {
251
+ scopeFilter = scopeStr.split(",").map((s) => s.trim());
252
+ }
253
+ }
254
+ else {
255
+ scopeFilter = ["function", "method"];
256
+ }
257
+ const options = {
258
+ path: rootDir,
259
+ thresholds: {
260
+ exact: 0.98,
261
+ high: 0.9,
262
+ medium: 0.85,
263
+ low: minThreshold,
264
+ },
265
+ scopeFilter,
266
+ ignoreTests: Boolean(args?.ignoreTests),
267
+ crossFileOnly: Boolean(args?.crossFileOnly),
268
+ onlyExported: Boolean(args?.onlyExported),
269
+ excludePattern: args?.excludePattern ? String(args.excludePattern) : undefined,
270
+ minLines: typeof args?.minLines === "number" ? Number(args.minLines) : 10,
271
+ minComplexity: typeof args?.minComplexity === "number" ? Number(args.minComplexity) : 0,
272
+ normalizeIdentifiers: true,
273
+ rankByImpact: true,
274
+ };
275
+ const showCode = Boolean(args?.showCode);
276
+ const verbose = Boolean(args?.verbose);
277
+ const quiet = Boolean(args?.quiet);
278
+ const limit = typeof args?.limit === "number" ? Number(args.limit) : 10;
279
+ const result = await Instance.provide({
280
+ directory: rootDir,
281
+ fn: () => DuplicateDetector.detect(options),
282
+ });
283
+ if (args?.json) {
284
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
285
+ }
286
+ const lines = [];
287
+ if (!quiet) {
288
+ lines.push("Detecting logical duplicates...");
289
+ lines.push(`Path: ${rootDir}`);
290
+ lines.push(`Threshold: ${minThreshold}`);
291
+ lines.push(`Scope: ${scopeFilter?.join(", ") || "all"}`);
292
+ if (options.crossFileOnly)
293
+ lines.push("Filter: cross-file only");
294
+ if (options.onlyExported)
295
+ lines.push("Filter: exported only");
296
+ if (options.excludePattern)
297
+ lines.push(`Filter: exclude pattern /${options.excludePattern}/`);
298
+ lines.push("");
299
+ lines.push("━".repeat(80));
300
+ lines.push("DUPLICATE DETECTION RESULTS");
301
+ lines.push("━".repeat(80));
302
+ lines.push(`Total duplicates: ${result.summary.totalDuplicates}`);
303
+ const critical = result.duplicates.filter((d) => d.similarity >= 0.95).length;
304
+ const high = result.duplicates.filter((d) => d.similarity >= 0.9 && d.similarity < 0.95).length;
305
+ const medium = result.duplicates.filter((d) => d.similarity >= 0.85 && d.similarity < 0.9).length;
306
+ const low = result.duplicates.filter((d) => d.similarity < 0.85).length;
307
+ if (critical > 0)
308
+ lines.push(` 🔥 Critical (≥95%): ${critical} ← Exact duplicates, refactor NOW`);
309
+ if (high > 0)
310
+ lines.push(` ⚠️ High (90-94%): ${high} ← Very similar, should review`);
311
+ if (medium > 0)
312
+ lines.push(` ℹ️ Medium (85-89%): ${medium} ← Similar, investigate`);
313
+ if (low > 0)
314
+ lines.push(` 💡 Low (75-84%): ${low} ← Somewhat similar`);
315
+ lines.push("");
316
+ lines.push(`Files affected: ${result.summary.filesAffected}`);
317
+ lines.push(`Potential savings: ${result.summary.totalSavings} lines`);
318
+ lines.push("");
319
+ }
320
+ if (result.duplicates.length === 0) {
321
+ lines.push("✅ No significant duplicates found!");
322
+ return { content: [{ type: "text", text: lines.join("\n") }] };
323
+ }
324
+ if (quiet) {
325
+ return { content: [{ type: "text", text: lines.join("\n") }] };
326
+ }
327
+ const topDuplicates = result.duplicates.slice(0, limit);
328
+ lines.push(`Top ${topDuplicates.length} duplicates (ranked by impact):`);
329
+ lines.push("");
330
+ for (let i = 0; i < topDuplicates.length; i++) {
331
+ const dup = topDuplicates[i];
332
+ const similarity = dup.similarity ?? 0;
333
+ const level = dup.level ?? "";
334
+ let emoji = "💡";
335
+ let label = "LOW";
336
+ if (similarity >= 0.95) {
337
+ emoji = "🔥";
338
+ label = "CRITICAL";
339
+ }
340
+ else if (level === "exact" || level === "high") {
341
+ emoji = "⚠️ ";
342
+ label = "HIGH";
343
+ }
344
+ else if (level === "medium") {
345
+ emoji = "ℹ️ ";
346
+ label = "MEDIUM";
347
+ }
348
+ lines.push(`${emoji} #${i + 1} - ${label} (${(similarity * 100).toFixed(1)}% similar)`);
349
+ if (verbose) {
350
+ lines.push(` Impact: ${dup.impact.totalLines} lines × ${dup.impact.complexity.toFixed(1)} complexity × ${dup.impact.fileCount} files = ${dup.impact.score.toFixed(0)} score`);
351
+ lines.push(` Potential savings: ${dup.impact.estimatedSavings} lines`);
352
+ }
353
+ for (const inst of dup.instances) {
354
+ const relPath = inst.file.replace(rootDir, "").replace(/^[/\\]/, "");
355
+ const linesCount = inst.endLine - inst.startLine + 1;
356
+ lines.push(` ${relPath}:${inst.startLine}-${inst.endLine} (${inst.symbol}, ${linesCount} lines)`);
357
+ }
358
+ if (showCode || verbose) {
359
+ lines.push("");
360
+ for (let j = 0; j < dup.instances.length; j++) {
361
+ const inst = dup.instances[j];
362
+ const relPath = inst.file.replace(rootDir, "").replace(/^[/\\]/, "");
363
+ lines.push(` ┌─ ${String.fromCharCode(65 + j)}: ${relPath}:${inst.startLine}`);
364
+ const codeLines = String(inst.content ?? "").split("\n");
365
+ const maxLines = showCode && !verbose ? 15 : 30;
366
+ const displayLines = codeLines.slice(0, maxLines);
367
+ for (const line of displayLines) {
368
+ lines.push(` │ ${line}`);
369
+ }
370
+ if (codeLines.length > maxLines) {
371
+ lines.push(` │ ... (${codeLines.length - maxLines} more lines)`);
372
+ }
373
+ lines.push(" └─");
374
+ }
375
+ }
376
+ lines.push("");
377
+ }
378
+ if (result.duplicates.length > limit) {
379
+ lines.push(`... and ${result.duplicates.length - limit} more duplicates`);
380
+ lines.push(`Use --limit ${result.duplicates.length} to see all`);
381
+ lines.push("");
382
+ }
383
+ if (result.acceptableDuplicates && result.acceptableDuplicates.length > 0) {
384
+ lines.push(`💡 ${result.acceptableDuplicates.length} acceptable duplicates ignored (simple validations, guards, etc.)`);
385
+ }
386
+ return { content: [{ type: "text", text: lines.join("\n") }] };
387
+ }
155
388
  if (name === "sensegrep.stats") {
156
389
  const { core } = await loadTool();
157
390
  const { Indexer, Instance } = core;
@@ -175,6 +408,14 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
175
408
  async function main() {
176
409
  const transport = new StdioServerTransport();
177
410
  await server.connect(transport);
411
+ void startWatch();
412
+ // Setup cleanup handlers
413
+ const cleanup = async () => {
414
+ await stopWatch();
415
+ process.exit(0);
416
+ };
417
+ process.on("SIGINT", cleanup);
418
+ process.on("SIGTERM", cleanup);
178
419
  }
179
420
  main().catch((error) => {
180
421
  console.error("Server error:", error);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,oCAAoC,CAAC;AAE5C,IAAI,WAAW,GAAwB,IAAI,CAAC;AAC5C,IAAI,WAAW,GAAwB,IAAI,CAAC;AAE5C,KAAK,UAAU,QAAQ;IACrB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,QAAQ;IACrB,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC9B,IAAI,CAAC,WAAW;QAAE,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC1D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;IAC/B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC;AAWD,SAAS,aAAa,CAAC,MAAmB;IACxC,OAAQ,MAAc,CAAC,IAAI,KAAK,aAAa,CAAC;AAChD,CAAC;AAED,MAAM,KAAK,GAAW;IACpB;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,gEAAgE;QAC7E,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;gBACtD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;gBAChE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;gBACnE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;gBAClF,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC;oBAC3F,WAAW,EAAE,uBAAuB;iBACrC;gBACD,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uBAAuB,EAAE;gBACrE,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;gBAC/E,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;gBAC/E,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uBAAuB,EAAE;gBAC3E,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC;oBAChD,WAAW,EAAE,oBAAoB;iBAClC;gBACD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;gBACvE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gCAAgC,EAAE;gBAC1E,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACvE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;gBACzE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;gBACvE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;gBAC/D,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;gBACzD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;aAC1E;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,iEAAiE;QAC9E,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;gBACnE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qCAAqC,EAAE;gBAC7E,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACvE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;gBACzE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;gBACvE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;gBAC/D,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;aAC1D;SACF;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;aAC3D;SACF;KACF;CACF,CAAC;AAEF,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CACF,CAAC;AAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IACjD,MAAM,OAAO,GAAI,IAAY,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACrF,MAAM,QAAQ,GAAI,IAAY,CAAC,QAAQ,KAAK,OAAO,IAAK,IAAY,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAChI,MAAM,cAAc,GAA4B;QAC9C,GAAG,CAAE,IAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAE,IAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,GAAG,CAAE,IAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAE,IAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAE,IAAY,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAE,IAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,GAAG,CAAE,IAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAE,IAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClC,CAAC;IAEF,IAAI,CAAC;QACH,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAChC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC;YACxC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAW,CAAC;YACpD,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;YACtC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM;gBACtD,CAAC,CAAC,CAAC,EAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,cAAqB,EAAE,EAAE,CAAC;gBAC9E,CAAC,CAAC,CAAC,EAAsB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CACnC,QAAQ,CAAC,OAAO,CAAC;gBACf,SAAS,EAAE,OAAO;gBAClB,EAAE,EAAE,GAAG,EAAE,CACP,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;oBACrB,SAAS,EAAE,KAAK;oBAChB,SAAS,EAAE,KAAK;oBAChB,KAAK,EAAE,eAAe;oBACtB,KAAK,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM;oBACnC,QAAQ,CAAC,MAA8C,IAAG,CAAC;iBAC5D,CAAC;aACL,CAAC,CACH,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;aAC9C,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAI,IAAY,CAAC,IAAI,KAAK,IAAI,CAAC;YACzC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC;YAClC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;YAC/C,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM;gBACtD,CAAC,CAAC,CAAC,EAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,cAAqB,EAAE,EAAE,CAAC;gBAC9E,CAAC,CAAC,CAAC,EAAsB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,CAAC,MAAM,aAAa,CAAC,GAAG,EAAE,CACvC,QAAQ,CAAC,OAAO,CAAC;gBACf,SAAS,EAAE,OAAO;gBAClB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;aAC9E,CAAC,CACH,CAAQ,CAAC;YACV,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;YACpC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;YACpC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC;gBAChC,CAAC,CAAC,WAAW,KAAK,WAAW,MAAM,qBAAqB,OAAO,aAAa,OAAO,OAAO,QAAQ,GAAG;gBACrG,CAAC,CAAC,WAAW,KAAK,WAAW,MAAM,eAAe,QAAQ,GAAG,CAAC;YAChE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;aAClC,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAC/B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC;YAClC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YACnC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;gBACnC,SAAS,EAAE,OAAO;gBAClB,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE;aAC7B,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAClE,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,EAAE,CAAC;YACjF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,26 +1,30 @@
1
1
  {
2
2
  "name": "@sensegrep/mcp",
3
- "version": "0.1.8",
3
+ "version": "0.1.11",
4
4
  "type": "module",
5
- "main": "./dist/server.js",
6
- "bin": {
7
- "sensegrep-mcp": "./dist/server.js"
8
- },
5
+ "main": "./dist/server.js",
6
+ "bin": {
7
+ "sensegrep-mcp": "dist/server.js"
8
+ },
9
9
  "types": "./dist/server.d.ts",
10
10
  "files": [
11
11
  "dist"
12
12
  ],
13
- "scripts": {
14
- "build": "tsc -p tsconfig.json"
15
- },
13
+ "scripts": {
14
+ "build": "tsc -p tsconfig.json",
15
+ "prepublishOnly": "node ../../build.js"
16
+ },
16
17
  "engines": {
17
18
  "node": ">=18"
18
19
  },
19
- "dependencies": {
20
- "@modelcontextprotocol/sdk": "^1.25.1",
21
- "@sensegrep/core": "^0.1.6",
22
- "zod": "^4.2.1"
23
- },
20
+ "dependencies": {
21
+ "@modelcontextprotocol/sdk": "^1.25.1",
22
+ "@sensegrep/core": "^0.1.11",
23
+ "zod": "^4.2.1"
24
+ },
25
+ "publishConfig": {
26
+ "access": "public"
27
+ },
24
28
  "license": "Apache-2.0",
25
29
  "repository": {
26
30
  "type": "git",