@mneme-ai/mcp 0.8.3
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/README.md +36 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +304 -0
- package/dist/index.js.map +1 -0
- package/package.json +34 -0
package/README.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# @mneme-ai/mcp
|
|
2
|
+
|
|
3
|
+
MCP server that exposes [Mneme](https://github.com/patsa2561-art/mneme-ai) to AI clients (Claude Code, Cursor, Continue, Copilot via MCP).
|
|
4
|
+
|
|
5
|
+
You normally don't import this directly — the `mneme-ai` CLI exposes it via:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
mneme mcp # start server on stdio
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Tools exposed to the AI client
|
|
12
|
+
|
|
13
|
+
| Tool | Purpose |
|
|
14
|
+
|---|---|
|
|
15
|
+
| `mneme_ask` | natural-language search over git history |
|
|
16
|
+
| `mneme_why` | blame + RAG explanation for any file/line range |
|
|
17
|
+
| `mneme_search_commits` | hybrid (BM25 + vector) commit search |
|
|
18
|
+
| `mneme_status` | what's indexed |
|
|
19
|
+
|
|
20
|
+
## Client config
|
|
21
|
+
|
|
22
|
+
```json
|
|
23
|
+
{
|
|
24
|
+
"mcpServers": {
|
|
25
|
+
"mneme": {
|
|
26
|
+
"command": "npx",
|
|
27
|
+
"args": ["-y", "mneme-ai", "mcp"],
|
|
28
|
+
"cwd": "/abs/path/to/your/repo"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## License
|
|
35
|
+
|
|
36
|
+
MIT.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AAyFD,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAsLpE"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import { existsSync, mkdirSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
4
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
5
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
6
|
+
import { git, retrieve, store } from "@mneme-ai/core";
|
|
7
|
+
import { resolveEmbedder } from "@mneme-ai/embeddings";
|
|
8
|
+
const TOOLS = [
|
|
9
|
+
{
|
|
10
|
+
name: "mneme_ask",
|
|
11
|
+
description: "Ask the codebase memory a question about WHY something exists. Returns the most relevant commits and PRs with citations.",
|
|
12
|
+
inputSchema: {
|
|
13
|
+
type: "object",
|
|
14
|
+
properties: {
|
|
15
|
+
question: { type: "string", description: "Natural language question" },
|
|
16
|
+
topK: { type: "number", description: "Max results (default 8)" },
|
|
17
|
+
},
|
|
18
|
+
required: ["question"],
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "mneme_why",
|
|
23
|
+
description: "Explain why a specific file (or line range) exists by combining git blame with related commits.",
|
|
24
|
+
inputSchema: {
|
|
25
|
+
type: "object",
|
|
26
|
+
properties: {
|
|
27
|
+
file: { type: "string", description: "Path relative to repo root" },
|
|
28
|
+
startLine: { type: "number" },
|
|
29
|
+
endLine: { type: "number" },
|
|
30
|
+
},
|
|
31
|
+
required: ["file"],
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: "mneme_search_commits",
|
|
36
|
+
description: "Hybrid (lexical + semantic) search over indexed commits and PRs.",
|
|
37
|
+
inputSchema: {
|
|
38
|
+
type: "object",
|
|
39
|
+
properties: {
|
|
40
|
+
query: { type: "string" },
|
|
41
|
+
topK: { type: "number" },
|
|
42
|
+
},
|
|
43
|
+
required: ["query"],
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: "mneme_status",
|
|
48
|
+
description: "Report what's indexed, the embedder, and DB stats.",
|
|
49
|
+
inputSchema: { type: "object", properties: {} },
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: "mneme_list_entities",
|
|
53
|
+
description: "List indexed source-code entities (functions, classes, types, exported variables) with optional filtering by language/kind/path-prefix.",
|
|
54
|
+
inputSchema: {
|
|
55
|
+
type: "object",
|
|
56
|
+
properties: {
|
|
57
|
+
kind: { type: "string", description: "function | class | type | variable | module" },
|
|
58
|
+
language: { type: "string", description: "typescript | tsx | javascript | jsx" },
|
|
59
|
+
pathPrefix: { type: "string", description: "Only entities under this path" },
|
|
60
|
+
limit: { type: "number", description: "Max rows (default 100)" },
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: "mneme_find_similar",
|
|
66
|
+
description: "Given an entity id (from mneme_list_entities) OR a code snippet, return the top-K most semantically similar entities in the repo.",
|
|
67
|
+
inputSchema: {
|
|
68
|
+
type: "object",
|
|
69
|
+
properties: {
|
|
70
|
+
entityId: { type: "string", description: "Existing entity id" },
|
|
71
|
+
snippet: { type: "string", description: "Or a code snippet to compare against" },
|
|
72
|
+
topK: { type: "number" },
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: "mneme_blast",
|
|
78
|
+
description: "Predict the blast radius of shipping a commit: which past incidents share its file footprint, plus a base-rate verdict (LOW/MED/HIGH).",
|
|
79
|
+
inputSchema: {
|
|
80
|
+
type: "object",
|
|
81
|
+
properties: {
|
|
82
|
+
commit: { type: "string", description: "Commit hash, short hash, or HEAD-relative ref" },
|
|
83
|
+
windowHours: { type: "number" },
|
|
84
|
+
},
|
|
85
|
+
required: ["commit"],
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
];
|
|
89
|
+
export async function startMcpServer(opts) {
|
|
90
|
+
if (!(await git.isGitRepo(opts.cwd))) {
|
|
91
|
+
throw new Error(`Mneme MCP: not in a git repo (${opts.cwd}).`);
|
|
92
|
+
}
|
|
93
|
+
const meta = await git.getRepoMeta(opts.cwd);
|
|
94
|
+
const dbDir = join(meta.rootPath, ".mneme");
|
|
95
|
+
if (!existsSync(dbDir))
|
|
96
|
+
mkdirSync(dbDir, { recursive: true });
|
|
97
|
+
const dbPath = join(dbDir, "mneme.db");
|
|
98
|
+
const s = new store.MnemeStore(dbPath);
|
|
99
|
+
const embedder = await resolveEmbedder({ provider: "auto" });
|
|
100
|
+
const server = new Server({ name: "mneme", version: "0.1.0" }, { capabilities: { tools: {} } });
|
|
101
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: TOOLS }));
|
|
102
|
+
server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
103
|
+
const args = (req.params.arguments ?? {});
|
|
104
|
+
try {
|
|
105
|
+
switch (req.params.name) {
|
|
106
|
+
case "mneme_ask": {
|
|
107
|
+
const result = await retrieve.ask(String(args["question"] ?? ""), {
|
|
108
|
+
store: s,
|
|
109
|
+
embedder,
|
|
110
|
+
repo: meta,
|
|
111
|
+
topK: typeof args["topK"] === "number" ? args["topK"] : 8,
|
|
112
|
+
});
|
|
113
|
+
return jsonResult(toAskPayload(result));
|
|
114
|
+
}
|
|
115
|
+
case "mneme_search_commits": {
|
|
116
|
+
const results = await retrieve.search(String(args["query"] ?? ""), {
|
|
117
|
+
store: s,
|
|
118
|
+
embedder,
|
|
119
|
+
repo: meta,
|
|
120
|
+
topK: typeof args["topK"] === "number" ? args["topK"] : 8,
|
|
121
|
+
});
|
|
122
|
+
return jsonResult(results.map(toSearchPayload));
|
|
123
|
+
}
|
|
124
|
+
case "mneme_why": {
|
|
125
|
+
const file = String(args["file"] ?? "");
|
|
126
|
+
const sl = typeof args["startLine"] === "number" ? args["startLine"] : undefined;
|
|
127
|
+
const el = typeof args["endLine"] === "number" ? args["endLine"] : undefined;
|
|
128
|
+
const blamed = await git.blame(meta.rootPath, file, sl, el);
|
|
129
|
+
const tally = new Map();
|
|
130
|
+
for (const b of blamed)
|
|
131
|
+
tally.set(b.commitHash, (tally.get(b.commitHash) ?? 0) + 1);
|
|
132
|
+
const top = Array.from(tally.entries())
|
|
133
|
+
.sort((a, b) => b[1] - a[1])
|
|
134
|
+
.slice(0, 8)
|
|
135
|
+
.map(([h, count]) => ({
|
|
136
|
+
commit: s.getCommit(h) ?? null,
|
|
137
|
+
hash: h,
|
|
138
|
+
lineCount: count,
|
|
139
|
+
}));
|
|
140
|
+
return jsonResult({ file, startLine: sl, endLine: el, originating: top });
|
|
141
|
+
}
|
|
142
|
+
case "mneme_status": {
|
|
143
|
+
return jsonResult({
|
|
144
|
+
commits: s.countCommits(),
|
|
145
|
+
chunks: s.countChunks(),
|
|
146
|
+
embedded: s.countChunksWithEmbedding(),
|
|
147
|
+
entities: s.countEntities(),
|
|
148
|
+
entitiesEmbedded: s.countEntitiesWithEmbedding(),
|
|
149
|
+
synthesizedNotes: s.countSynthesizedNotes(),
|
|
150
|
+
embedder: s.getMeta("embedder"),
|
|
151
|
+
repoRoot: meta.rootPath,
|
|
152
|
+
host: meta.host,
|
|
153
|
+
owner: meta.owner,
|
|
154
|
+
repo: meta.repo,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
case "mneme_list_entities": {
|
|
158
|
+
const where = [];
|
|
159
|
+
const params = [];
|
|
160
|
+
if (args["kind"]) {
|
|
161
|
+
where.push("kind = ?");
|
|
162
|
+
params.push(String(args["kind"]));
|
|
163
|
+
}
|
|
164
|
+
if (args["language"]) {
|
|
165
|
+
where.push("language = ?");
|
|
166
|
+
params.push(String(args["language"]));
|
|
167
|
+
}
|
|
168
|
+
if (args["pathPrefix"]) {
|
|
169
|
+
where.push("file_path LIKE ?");
|
|
170
|
+
params.push(`${String(args["pathPrefix"])}%`);
|
|
171
|
+
}
|
|
172
|
+
const limit = typeof args["limit"] === "number" ? Math.min(500, args["limit"]) : 100;
|
|
173
|
+
const sql = "SELECT id, kind, name, file_path, start_line, end_line, signature, language FROM entities" +
|
|
174
|
+
(where.length ? " WHERE " + where.join(" AND ") : "") +
|
|
175
|
+
" ORDER BY file_path, start_line LIMIT ?";
|
|
176
|
+
const rows = s.db.prepare(sql).all(...params, limit);
|
|
177
|
+
return jsonResult({ entities: rows, count: rows.length });
|
|
178
|
+
}
|
|
179
|
+
case "mneme_find_similar": {
|
|
180
|
+
const topK = typeof args["topK"] === "number" ? args["topK"] : 5;
|
|
181
|
+
const entityId = args["entityId"] ? String(args["entityId"]) : undefined;
|
|
182
|
+
const snippet = args["snippet"] ? String(args["snippet"]) : undefined;
|
|
183
|
+
let queryVec = null;
|
|
184
|
+
if (entityId) {
|
|
185
|
+
// Use the stored embedding directly.
|
|
186
|
+
const row = s.db
|
|
187
|
+
.prepare("SELECT embedding FROM entities WHERE id = ?")
|
|
188
|
+
.get(entityId);
|
|
189
|
+
if (!row?.embedding) {
|
|
190
|
+
return errorResult(`No embedding for entity ${entityId}. Run \`mneme entities\` first.`);
|
|
191
|
+
}
|
|
192
|
+
queryVec = new Float32Array(row.embedding.buffer, row.embedding.byteOffset, row.embedding.length / 4);
|
|
193
|
+
}
|
|
194
|
+
else if (snippet) {
|
|
195
|
+
const [v] = await embedder.embed([snippet]);
|
|
196
|
+
queryVec = v ?? null;
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
return errorResult("mneme_find_similar requires either entityId or snippet.");
|
|
200
|
+
}
|
|
201
|
+
if (!queryVec)
|
|
202
|
+
return jsonResult({ matches: [] });
|
|
203
|
+
const candidates = [];
|
|
204
|
+
for (const e of s.iterEmbeddedEntities()) {
|
|
205
|
+
if (!e.embedding)
|
|
206
|
+
continue;
|
|
207
|
+
if (entityId && e.id === entityId)
|
|
208
|
+
continue;
|
|
209
|
+
if (e.embedding.length !== queryVec.length)
|
|
210
|
+
continue;
|
|
211
|
+
let dot = 0;
|
|
212
|
+
let na = 0;
|
|
213
|
+
let nb = 0;
|
|
214
|
+
for (let i = 0; i < queryVec.length; i++) {
|
|
215
|
+
const av = queryVec[i];
|
|
216
|
+
const bv = e.embedding[i];
|
|
217
|
+
dot += av * bv;
|
|
218
|
+
na += av * av;
|
|
219
|
+
nb += bv * bv;
|
|
220
|
+
}
|
|
221
|
+
const denom = Math.sqrt(na) * Math.sqrt(nb);
|
|
222
|
+
const sim = denom === 0 ? 0 : dot / denom;
|
|
223
|
+
candidates.push({ entity: { ...e, embedding: undefined }, score: sim });
|
|
224
|
+
}
|
|
225
|
+
candidates.sort((a, b) => b.score - a.score);
|
|
226
|
+
return jsonResult({ matches: candidates.slice(0, topK) });
|
|
227
|
+
}
|
|
228
|
+
case "mneme_blast": {
|
|
229
|
+
const ref = String(args["commit"] ?? "");
|
|
230
|
+
if (!ref)
|
|
231
|
+
return errorResult("mneme_blast requires `commit`.");
|
|
232
|
+
const r = await git.execGit(["rev-parse", ref], { cwd: meta.rootPath });
|
|
233
|
+
if (r.code !== 0)
|
|
234
|
+
return errorResult(`Cannot resolve commit "${ref}".`);
|
|
235
|
+
const hash = r.stdout.trim();
|
|
236
|
+
const c = s.getCommit(hash);
|
|
237
|
+
if (!c)
|
|
238
|
+
return errorResult(`Commit ${hash.slice(0, 8)} not indexed.`);
|
|
239
|
+
const incidents = s.db
|
|
240
|
+
.prepare("SELECT * FROM incidents")
|
|
241
|
+
.all();
|
|
242
|
+
const cFiles = new Set(c.files.map((p) => p.replace(/\\/g, "/").toLowerCase()));
|
|
243
|
+
const matches = incidents
|
|
244
|
+
.map((i) => {
|
|
245
|
+
const inc = {
|
|
246
|
+
id: String(i.id),
|
|
247
|
+
title: String(i.title),
|
|
248
|
+
affected: i.affected_files
|
|
249
|
+
? JSON.parse(String(i.affected_files))
|
|
250
|
+
: [],
|
|
251
|
+
};
|
|
252
|
+
const overlap = inc.affected.filter((f) => cFiles.has(f.replace(/\\/g, "/").toLowerCase()));
|
|
253
|
+
return overlap.length > 0 ? { incident: inc, overlap } : null;
|
|
254
|
+
})
|
|
255
|
+
.filter((x) => x !== null);
|
|
256
|
+
return jsonResult({ commit: c.shortHash, fileCount: c.files.length, matches });
|
|
257
|
+
}
|
|
258
|
+
default:
|
|
259
|
+
return errorResult(`unknown tool: ${req.params.name}`);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
catch (err) {
|
|
263
|
+
return errorResult(err.message);
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
const transport = new StdioServerTransport();
|
|
267
|
+
await server.connect(transport);
|
|
268
|
+
}
|
|
269
|
+
function toAskPayload(r) {
|
|
270
|
+
return {
|
|
271
|
+
question: r.question,
|
|
272
|
+
summary: r.summary,
|
|
273
|
+
citations: r.citations,
|
|
274
|
+
results: r.searchResults.map(toSearchPayload),
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
function toSearchPayload(s) {
|
|
278
|
+
return {
|
|
279
|
+
score: s.score,
|
|
280
|
+
commit: {
|
|
281
|
+
hash: s.commit.hash,
|
|
282
|
+
shortHash: s.commit.shortHash,
|
|
283
|
+
author: s.commit.authorName,
|
|
284
|
+
date: s.commit.authorDate,
|
|
285
|
+
subject: s.commit.subject,
|
|
286
|
+
body: s.commit.body,
|
|
287
|
+
files: s.commit.files,
|
|
288
|
+
prNumber: s.commit.prNumber,
|
|
289
|
+
},
|
|
290
|
+
matchedKinds: Array.from(new Set(s.matchedChunks.map((c) => c.kind))),
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
function jsonResult(value) {
|
|
294
|
+
return {
|
|
295
|
+
content: [{ type: "text", text: JSON.stringify(value, null, 2) }],
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
function errorResult(message) {
|
|
299
|
+
return {
|
|
300
|
+
isError: true,
|
|
301
|
+
content: [{ type: "text", text: message }],
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mneme-ai/mcp",
|
|
3
|
+
"version": "0.8.3",
|
|
4
|
+
"description": "MCP server that exposes Mneme to Claude Code, Cursor, Continue, and other AI clients",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/patsa2561-art/mneme-ai.git",
|
|
17
|
+
"directory": "packages/mcp"
|
|
18
|
+
},
|
|
19
|
+
"homepage": "https://github.com/patsa2561-art/mneme-ai#readme",
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/patsa2561-art/mneme-ai/issues"
|
|
22
|
+
},
|
|
23
|
+
"license": "MIT",
|
|
24
|
+
"files": ["dist", "README.md"],
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsc -b",
|
|
27
|
+
"clean": "tsc -b --clean"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"@mneme-ai/core": "0.8.3",
|
|
31
|
+
"@mneme-ai/embeddings": "0.8.3",
|
|
32
|
+
"@modelcontextprotocol/sdk": "^1.0.4"
|
|
33
|
+
}
|
|
34
|
+
}
|