@nacho-labs/mcp-semantic-search 0.3.1 → 0.3.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/LICENSE +21 -21
- package/README.md +198 -174
- package/dist/index.js +165 -102
- package/dist/index.js.map +1 -1
- package/package.json +90 -74
- package/server.json +86 -44
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Nacho Labs LLC
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Nacho Labs LLC
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,174 +1,198 @@
|
|
|
1
|
-
# @nacho-labs/mcp-semantic-search
|
|
2
|
-
|
|
3
|
-
MCP server that gives AI coding tools persistent semantic memory. Index
|
|
4
|
-
decisions, patterns, and project context — recall them by meaning, not keywords.
|
|
5
|
-
|
|
6
|
-
Powered by [@nacho-labs/nachos-embeddings](https://github.com/nacho-labs-llc/nachos-embeddings).
|
|
7
|
-
Runs entirely locally with [Transformers.js](https://huggingface.co/docs/transformers.js) —
|
|
8
|
-
no API keys, no cloud, no costs.
|
|
9
|
-
|
|
10
|
-
## Prerequisites
|
|
11
|
-
|
|
12
|
-
- **Node.js
|
|
13
|
-
- **Internet on first run** to download the embedding model (~25MB, cached permanently)
|
|
14
|
-
|
|
15
|
-
## Quick start
|
|
16
|
-
|
|
17
|
-
### Claude Code
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
claude mcp add --transport stdio semantic-search -- npx @nacho-labs/mcp-semantic-search
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
### Cursor / VS Code / any MCP client
|
|
24
|
-
|
|
25
|
-
Add to your MCP config (`.mcp.json`, `mcp.json`, or client-specific config):
|
|
26
|
-
|
|
27
|
-
```json
|
|
28
|
-
{
|
|
29
|
-
"mcpServers": {
|
|
30
|
-
"semantic-search": {
|
|
31
|
-
"type": "stdio",
|
|
32
|
-
"command": "npx",
|
|
33
|
-
"args": ["@nacho-labs/mcp-semantic-search"]
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
That's it. Your AI tool now has
|
|
40
|
-
|
|
41
|
-
## Tools
|
|
42
|
-
|
|
43
|
-
| Tool
|
|
44
|
-
|
|
|
45
|
-
| `
|
|
46
|
-
| `
|
|
47
|
-
| `
|
|
48
|
-
| `
|
|
49
|
-
| `
|
|
50
|
-
| `
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
|
71
|
-
|
|
|
72
|
-
| "
|
|
73
|
-
| "
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
--
|
|
99
|
-
--
|
|
100
|
-
--
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
|
107
|
-
|
|
|
108
|
-
| `
|
|
109
|
-
| `
|
|
110
|
-
| `
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
"
|
|
122
|
-
|
|
123
|
-
"
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
|
134
|
-
|
|
|
135
|
-
| Server startup (
|
|
136
|
-
|
|
|
137
|
-
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
- **[@
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
npm
|
|
169
|
-
npm
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
1
|
+
# @nacho-labs/mcp-semantic-search
|
|
2
|
+
|
|
3
|
+
MCP server that gives AI coding tools persistent semantic memory. Index
|
|
4
|
+
decisions, patterns, and project context — recall them by meaning, not keywords.
|
|
5
|
+
|
|
6
|
+
Powered by [@nacho-labs/nachos-embeddings](https://github.com/nacho-labs-llc/nachos-embeddings).
|
|
7
|
+
Runs entirely locally with [Transformers.js](https://huggingface.co/docs/transformers.js) —
|
|
8
|
+
no API keys, no cloud, no costs.
|
|
9
|
+
|
|
10
|
+
## Prerequisites
|
|
11
|
+
|
|
12
|
+
- **Node.js 20.9+**
|
|
13
|
+
- **Internet on first run** to download the embedding model (~25MB, cached permanently)
|
|
14
|
+
|
|
15
|
+
## Quick start
|
|
16
|
+
|
|
17
|
+
### Claude Code
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
claude mcp add --transport stdio semantic-search -- npx @nacho-labs/mcp-semantic-search
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Cursor / VS Code / any MCP client
|
|
24
|
+
|
|
25
|
+
Add to your MCP config (`.mcp.json`, `mcp.json`, or client-specific config):
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"mcpServers": {
|
|
30
|
+
"semantic-search": {
|
|
31
|
+
"type": "stdio",
|
|
32
|
+
"command": "npx",
|
|
33
|
+
"args": ["@nacho-labs/mcp-semantic-search"]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
That's it. Your AI tool now has seven semantic memory tools.
|
|
40
|
+
|
|
41
|
+
## Tools
|
|
42
|
+
|
|
43
|
+
| Tool | Description |
|
|
44
|
+
| ---------------------- | ------------------------------------------------------ |
|
|
45
|
+
| `semantic_health` | Check server health, metrics, and active configuration |
|
|
46
|
+
| `semantic_search` | Search indexed documents by meaning |
|
|
47
|
+
| `semantic_index` | Add a document to the index |
|
|
48
|
+
| `semantic_index_batch` | Add multiple documents at once |
|
|
49
|
+
| `semantic_remove` | Remove a document by ID |
|
|
50
|
+
| `semantic_stats` | Get index size, store location, and config |
|
|
51
|
+
| `semantic_clear` | Remove all documents (requires confirmation) |
|
|
52
|
+
|
|
53
|
+
## What it does
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
You ask Claude: "How do we handle rate limiting?"
|
|
57
|
+
|
|
|
58
|
+
Claude calls: semantic_search("rate limiting")
|
|
59
|
+
|
|
|
60
|
+
Server embeds: query -> 384-dimension vector
|
|
61
|
+
|
|
|
62
|
+
Cosine search: against all indexed vectors
|
|
63
|
+
|
|
|
64
|
+
Returns: "We throttle API requests using sliding windows..."
|
|
65
|
+
(matched by meaning, not keywords)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
The embedding model understands meaning:
|
|
69
|
+
|
|
70
|
+
| Query | Finds |
|
|
71
|
+
| ---------------- | ------------------------------------------------- |
|
|
72
|
+
| "rate limiting" | "We throttle API requests using sliding windows" |
|
|
73
|
+
| "how to deploy" | "Production runs via docker compose up with..." |
|
|
74
|
+
| "error handling" | "We use Result types instead of try/catch for..." |
|
|
75
|
+
|
|
76
|
+
## What to index
|
|
77
|
+
|
|
78
|
+
High-value content for project memory:
|
|
79
|
+
|
|
80
|
+
**Architecture decisions** — "We chose PostgreSQL over DynamoDB because we need
|
|
81
|
+
complex joins for the reporting module."
|
|
82
|
+
|
|
83
|
+
**Code patterns** — "Authentication middleware is in src/middleware/auth.ts.
|
|
84
|
+
Uses JWT with RS256, tokens expire after 1 hour, refresh tokens after 30 days."
|
|
85
|
+
|
|
86
|
+
**Conventions** — "All API endpoints return { data, error, meta } shape.
|
|
87
|
+
Errors use RFC 7807 problem details format."
|
|
88
|
+
|
|
89
|
+
**Debugging insights** — "If the worker queue backs up, check Redis memory.
|
|
90
|
+
The default maxmemory-policy is noeviction which causes write failures."
|
|
91
|
+
|
|
92
|
+
## Configuration
|
|
93
|
+
|
|
94
|
+
### CLI arguments
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
npx @nacho-labs/mcp-semantic-search \
|
|
98
|
+
--store /path/to/store.json \
|
|
99
|
+
--similarity 0.5 \
|
|
100
|
+
--model Xenova/all-mpnet-base-v2 \
|
|
101
|
+
--cache-dir /tmp/models
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Environment variables
|
|
105
|
+
|
|
106
|
+
| Variable | Description | Default |
|
|
107
|
+
| ------------------------- | ------------------------------ | ------------------------- |
|
|
108
|
+
| `MCP_SEMANTIC_STORE` | Path to persistence file | `.semantic-store.json` |
|
|
109
|
+
| `MCP_SEMANTIC_SIMILARITY` | Min similarity threshold (0-1) | `0.4` |
|
|
110
|
+
| `MCP_SEMANTIC_MODEL` | Embedding model | `Xenova/all-MiniLM-L6-v2` |
|
|
111
|
+
| `MCP_SEMANTIC_CACHE_DIR` | Model cache directory | `.cache/transformers` |
|
|
112
|
+
|
|
113
|
+
### With environment variables in MCP config
|
|
114
|
+
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"mcpServers": {
|
|
118
|
+
"semantic-search": {
|
|
119
|
+
"type": "stdio",
|
|
120
|
+
"command": "npx",
|
|
121
|
+
"args": ["@nacho-labs/mcp-semantic-search"],
|
|
122
|
+
"env": {
|
|
123
|
+
"MCP_SEMANTIC_STORE": "/home/user/.semantic-memory/project.json",
|
|
124
|
+
"MCP_SEMANTIC_SIMILARITY": "0.5"
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Performance
|
|
132
|
+
|
|
133
|
+
| Operation | Time |
|
|
134
|
+
| ----------------------------- | -------- |
|
|
135
|
+
| Server startup (model cached) | ~500ms |
|
|
136
|
+
| Server startup (first run) | ~2-5s |
|
|
137
|
+
| Index a document | ~10-50ms |
|
|
138
|
+
| Search 1000 documents | ~5-10ms |
|
|
139
|
+
|
|
140
|
+
**Memory:** ~100MB for model + ~1.5KB per document.
|
|
141
|
+
|
|
142
|
+
The in-memory store works well up to ~10K documents. Beyond that, consider a
|
|
143
|
+
dedicated vector database.
|
|
144
|
+
|
|
145
|
+
## Persistence
|
|
146
|
+
|
|
147
|
+
The index is saved to disk automatically after every write operation (index,
|
|
148
|
+
remove, clear). On startup, the server loads the existing store if present.
|
|
149
|
+
|
|
150
|
+
Default location: `.semantic-store.json` in the working directory.
|
|
151
|
+
|
|
152
|
+
## How it's built
|
|
153
|
+
|
|
154
|
+
This MCP server is a thin wrapper around two packages:
|
|
155
|
+
|
|
156
|
+
- **[@nacho-labs/nachos-embeddings](https://www.npmjs.com/package/@nacho-labs/nachos-embeddings)** — Local vector embeddings and semantic search
|
|
157
|
+
- **[@modelcontextprotocol/sdk](https://www.npmjs.com/package/@modelcontextprotocol/sdk)** — Official MCP TypeScript SDK
|
|
158
|
+
|
|
159
|
+
The embeddings package can also be used directly in your own code. See its
|
|
160
|
+
[README](https://github.com/nacho-labs-llc/nachos-embeddings) for the
|
|
161
|
+
standalone API.
|
|
162
|
+
|
|
163
|
+
## Development
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
git clone https://github.com/nacho-labs-llc/mcp-semantic-search.git
|
|
167
|
+
cd mcp-semantic-search
|
|
168
|
+
npm install
|
|
169
|
+
npm run build
|
|
170
|
+
npm start
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Quality checks
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
npm run format:check
|
|
177
|
+
npm run lint
|
|
178
|
+
npm run typecheck
|
|
179
|
+
npm test
|
|
180
|
+
npm run test:integration
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
`npm test` runs deterministic unit/contract tests only; it does not build the
|
|
184
|
+
server or download a model.
|
|
185
|
+
|
|
186
|
+
`npm run test:integration` runs the network/model-backed compiled MCP stdio
|
|
187
|
+
smoke. It builds `dist/`, starts the server with `StdioClientTransport`, lists
|
|
188
|
+
tools, calls `semantic_health`, then indexes and searches a real document.
|
|
189
|
+
|
|
190
|
+
The integration smoke uses the real default Transformers.js provider. On its
|
|
191
|
+
first run, it needs internet access to download the model (about 25 MB); later
|
|
192
|
+
runs can reuse the configured model cache. The release CI workflow caches that
|
|
193
|
+
directory between runs and passes the same explicit cache path to the smoke, but
|
|
194
|
+
network availability is still required when a cache miss occurs.
|
|
195
|
+
|
|
196
|
+
## License
|
|
197
|
+
|
|
198
|
+
MIT
|
package/dist/index.js
CHANGED
|
@@ -4,32 +4,45 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { EnhancedSemanticSearch } from '@nacho-labs/nachos-embeddings';
|
|
6
6
|
import { resolve } from 'node:path';
|
|
7
|
+
const VERSION = '0.3.2';
|
|
8
|
+
const MAX_LENGTH = 1_000_000;
|
|
9
|
+
const MAX_ITEMS = 100;
|
|
10
|
+
const metadataValueSchema = z.union([
|
|
11
|
+
z.string().max(MAX_LENGTH),
|
|
12
|
+
z.number(),
|
|
13
|
+
z.boolean(),
|
|
14
|
+
z.array(z.string().max(MAX_LENGTH)).max(MAX_ITEMS),
|
|
15
|
+
]);
|
|
7
16
|
function getConfig() {
|
|
8
17
|
const args = process.argv.slice(2);
|
|
9
18
|
function getArg(name, fallback) {
|
|
10
19
|
const idx = args.indexOf(`--${name}`);
|
|
11
20
|
return idx !== -1 && idx + 1 < args.length ? args[idx + 1] : fallback;
|
|
12
21
|
}
|
|
22
|
+
function getString(name, fallback) {
|
|
23
|
+
const envName = `MCP_SEMANTIC_${name.toUpperCase().replace(/-/g, '_')}`;
|
|
24
|
+
return process.env[envName] ?? getArg(name, fallback);
|
|
25
|
+
}
|
|
13
26
|
function getBool(name, fallback) {
|
|
14
|
-
const value =
|
|
27
|
+
const value = getString(name, fallback.toString());
|
|
15
28
|
return value === 'true' || value === '1';
|
|
16
29
|
}
|
|
17
30
|
return {
|
|
18
|
-
storePath: resolve(
|
|
19
|
-
minSimilarity: parseFloat(
|
|
20
|
-
model:
|
|
21
|
-
cacheDir:
|
|
31
|
+
storePath: resolve(getString('store', '.semantic-store.json')),
|
|
32
|
+
minSimilarity: parseFloat(getString('similarity', '0.4')),
|
|
33
|
+
model: getString('model', 'Xenova/all-MiniLM-L6-v2'),
|
|
34
|
+
cacheDir: getString('cache-dir', '.cache/transformers'),
|
|
22
35
|
autoChunk: getBool('auto-chunk', true),
|
|
23
36
|
deduplicateExact: getBool('deduplicate-exact', true),
|
|
24
|
-
deduplicateSimilarity: parseFloat(
|
|
37
|
+
deduplicateSimilarity: parseFloat(getString('deduplicate-similarity', '0.95')),
|
|
25
38
|
temporalBoost: getBool('temporal-boost', true),
|
|
26
39
|
verbose: getBool('verbose', false),
|
|
27
40
|
// Bedrock provider settings
|
|
28
|
-
provider: (
|
|
29
|
-
bedrockRegion:
|
|
30
|
-
bedrockModel:
|
|
31
|
-
bedrockProfile:
|
|
32
|
-
bedrockDimensions: parseInt(
|
|
41
|
+
provider: getString('provider', 'transformers'),
|
|
42
|
+
bedrockRegion: getString('bedrock-region', 'us-east-1'),
|
|
43
|
+
bedrockModel: getString('bedrock-model', 'amazon.titan-embed-text-v2:0'),
|
|
44
|
+
bedrockProfile: getString('bedrock-profile', ''),
|
|
45
|
+
bedrockDimensions: parseInt(getString('bedrock-dimensions', '1024'), 10),
|
|
33
46
|
};
|
|
34
47
|
}
|
|
35
48
|
async function createProvider(config) {
|
|
@@ -67,25 +80,31 @@ const search = new EnhancedSemanticSearch({
|
|
|
67
80
|
temporalBoost: config.temporalBoost,
|
|
68
81
|
verbose: config.verbose,
|
|
69
82
|
});
|
|
83
|
+
async function initializeSearch(attempt, maxRetries) {
|
|
84
|
+
if (config.verbose) {
|
|
85
|
+
console.error(`[Init] Attempt ${attempt}/${maxRetries}`);
|
|
86
|
+
}
|
|
87
|
+
await search.init();
|
|
88
|
+
if (config.verbose) {
|
|
89
|
+
console.error(`[Init] Loaded ${search.size()} documents`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async function handleInitializationFailure(attempt, maxRetries, err) {
|
|
93
|
+
if (attempt === maxRetries) {
|
|
94
|
+
console.error('[Init] Failed after', maxRetries, 'attempts. Internet required on first run (~25MB download).', err);
|
|
95
|
+
throw err;
|
|
96
|
+
}
|
|
97
|
+
console.error(`[Init] Retry in 2s...`, err);
|
|
98
|
+
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
99
|
+
}
|
|
70
100
|
async function initWithRetry(maxRetries = 3) {
|
|
71
101
|
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
72
102
|
try {
|
|
73
|
-
|
|
74
|
-
console.error(`[Init] Attempt ${attempt}/${maxRetries}`);
|
|
75
|
-
}
|
|
76
|
-
await search.init();
|
|
77
|
-
if (config.verbose) {
|
|
78
|
-
console.error(`[Init] Loaded ${search.size()} documents`);
|
|
79
|
-
}
|
|
103
|
+
await initializeSearch(attempt, maxRetries);
|
|
80
104
|
return;
|
|
81
105
|
}
|
|
82
106
|
catch (err) {
|
|
83
|
-
|
|
84
|
-
console.error('[Init] Failed after', maxRetries, 'attempts. Internet required on first run (~25MB download).', err);
|
|
85
|
-
throw err;
|
|
86
|
-
}
|
|
87
|
-
console.error(`[Init] Retry in 2s...`, err);
|
|
88
|
-
await new Promise((r) => setTimeout(r, 2000));
|
|
107
|
+
await handleInitializationFailure(attempt, maxRetries, err);
|
|
89
108
|
}
|
|
90
109
|
}
|
|
91
110
|
}
|
|
@@ -95,76 +114,111 @@ try {
|
|
|
95
114
|
catch {
|
|
96
115
|
process.exit(1);
|
|
97
116
|
}
|
|
117
|
+
function formatUptime(seconds) {
|
|
118
|
+
if (seconds < 60) {
|
|
119
|
+
return `${seconds}s`;
|
|
120
|
+
}
|
|
121
|
+
if (seconds < 3600) {
|
|
122
|
+
return `${Math.floor(seconds / 60)}m`;
|
|
123
|
+
}
|
|
124
|
+
return `${Math.floor(seconds / 3600)}h ${Math.floor((seconds % 3600) / 60)}m`;
|
|
125
|
+
}
|
|
126
|
+
function matchesKind(meta, kind) {
|
|
127
|
+
return !kind || meta?.kind === kind;
|
|
128
|
+
}
|
|
129
|
+
function matchesTags(meta, tags) {
|
|
130
|
+
return !tags || Boolean(meta?.tags && tags.some((tag) => meta.tags?.includes(tag)));
|
|
131
|
+
}
|
|
132
|
+
function hasValidSince(parsedSince) {
|
|
133
|
+
return parsedSince !== undefined && !isNaN(parsedSince);
|
|
134
|
+
}
|
|
135
|
+
function isBeforeSince(meta, parsedSince) {
|
|
136
|
+
return Boolean(meta?.timestamp && meta.timestamp < parsedSince);
|
|
137
|
+
}
|
|
138
|
+
function matchesSince(meta, parsedSince) {
|
|
139
|
+
return !hasValidSince(parsedSince) || !isBeforeSince(meta, parsedSince);
|
|
140
|
+
}
|
|
141
|
+
function matchesMetadata(meta, kind, tags, parsedSince) {
|
|
142
|
+
return matchesKind(meta, kind) && matchesTags(meta, tags) && matchesSince(meta, parsedSince);
|
|
143
|
+
}
|
|
98
144
|
class OpQueue {
|
|
99
145
|
queue = Promise.resolve();
|
|
100
146
|
async run(fn) {
|
|
101
147
|
const prev = this.queue;
|
|
102
148
|
let resolve;
|
|
103
|
-
|
|
104
|
-
this.queue = new Promise((res, rej) => {
|
|
149
|
+
this.queue = new Promise((res) => {
|
|
105
150
|
resolve = res;
|
|
106
|
-
reject = rej;
|
|
107
151
|
});
|
|
108
152
|
try {
|
|
109
|
-
await prev;
|
|
153
|
+
await prev.catch(() => { });
|
|
110
154
|
const result = await fn();
|
|
111
|
-
resolve(result);
|
|
112
155
|
return result;
|
|
113
156
|
}
|
|
114
157
|
catch (err) {
|
|
115
|
-
reject(err);
|
|
116
158
|
metrics.errors++;
|
|
117
159
|
throw err;
|
|
118
160
|
}
|
|
161
|
+
finally {
|
|
162
|
+
resolve();
|
|
163
|
+
}
|
|
119
164
|
}
|
|
120
165
|
}
|
|
121
166
|
const opQueue = new OpQueue();
|
|
122
|
-
const server = new McpServer({ name: 'mcp-semantic-search-enhanced', version:
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
167
|
+
const server = new McpServer({ name: 'mcp-semantic-search-enhanced', version: VERSION }, { capabilities: { logging: {} } });
|
|
168
|
+
function buildHealthResponse() {
|
|
169
|
+
const uptime = Math.floor((Date.now() - metrics.startTime) / 1000);
|
|
170
|
+
const model = config.provider === 'bedrock' ? config.bedrockModel : config.model;
|
|
171
|
+
const providerSetting = config.provider === 'bedrock' ? `Region: ${config.bedrockRegion}` : `Cache: ${config.cacheDir}`;
|
|
172
|
+
return {
|
|
173
|
+
content: [
|
|
174
|
+
{
|
|
175
|
+
type: 'text',
|
|
176
|
+
text: [
|
|
177
|
+
'✅ Healthy',
|
|
178
|
+
'',
|
|
179
|
+
'📊 Metrics:',
|
|
180
|
+
` Documents: ${search.size()}`,
|
|
181
|
+
` Searches: ${metrics.searches}`,
|
|
182
|
+
` Added: ${metrics.documentsAdded}`,
|
|
183
|
+
` Removed: ${metrics.documentsRemoved}`,
|
|
184
|
+
` Errors: ${metrics.errors}`,
|
|
185
|
+
` Uptime: ${formatUptime(uptime)}`,
|
|
186
|
+
'',
|
|
187
|
+
'⚙️ Config:',
|
|
188
|
+
` Provider: ${config.provider}`,
|
|
189
|
+
` Model: ${model}`,
|
|
190
|
+
` ${providerSetting}`,
|
|
191
|
+
` Store: ${config.storePath}`,
|
|
192
|
+
` Min similarity: ${config.minSimilarity}`,
|
|
193
|
+
` Auto-chunk: ${config.autoChunk}`,
|
|
194
|
+
` Dedup: exact=${config.deduplicateExact}, fuzzy=${config.deduplicateSimilarity}`,
|
|
195
|
+
` Temporal boost: ${config.temporalBoost}`,
|
|
196
|
+
].join('\n'),
|
|
197
|
+
},
|
|
198
|
+
],
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
async function getHealthResponse() {
|
|
128
202
|
try {
|
|
129
203
|
await search.search('test', { limit: 1 });
|
|
130
|
-
|
|
131
|
-
const uptimeStr = uptime < 60 ? `${uptime}s` : uptime < 3600 ? `${Math.floor(uptime / 60)}m` : `${Math.floor(uptime / 3600)}h ${Math.floor((uptime % 3600) / 60)}m`;
|
|
132
|
-
return {
|
|
133
|
-
content: [{
|
|
134
|
-
type: 'text',
|
|
135
|
-
text: [
|
|
136
|
-
'✅ Healthy',
|
|
137
|
-
'',
|
|
138
|
-
'📊 Metrics:',
|
|
139
|
-
` Documents: ${search.size()}`,
|
|
140
|
-
` Searches: ${metrics.searches}`,
|
|
141
|
-
` Added: ${metrics.documentsAdded}`,
|
|
142
|
-
` Removed: ${metrics.documentsRemoved}`,
|
|
143
|
-
` Errors: ${metrics.errors}`,
|
|
144
|
-
` Uptime: ${uptimeStr}`,
|
|
145
|
-
'',
|
|
146
|
-
'⚙️ Config:',
|
|
147
|
-
` Provider: ${config.provider}`,
|
|
148
|
-
` Model: ${config.provider === 'bedrock' ? config.bedrockModel : config.model}`,
|
|
149
|
-
` ${config.provider === 'bedrock' ? `Region: ${config.bedrockRegion}` : `Cache: ${config.cacheDir}`}`,
|
|
150
|
-
` Store: ${config.storePath}`,
|
|
151
|
-
` Min similarity: ${config.minSimilarity}`,
|
|
152
|
-
` Auto-chunk: ${config.autoChunk}`,
|
|
153
|
-
` Dedup: exact=${config.deduplicateExact}, fuzzy=${config.deduplicateSimilarity}`,
|
|
154
|
-
` Temporal boost: ${config.temporalBoost}`,
|
|
155
|
-
].join('\n'),
|
|
156
|
-
}],
|
|
157
|
-
};
|
|
204
|
+
return buildHealthResponse();
|
|
158
205
|
}
|
|
159
206
|
catch (err) {
|
|
160
207
|
return {
|
|
161
|
-
content: [
|
|
208
|
+
content: [
|
|
209
|
+
{
|
|
162
210
|
type: 'text',
|
|
163
211
|
text: `❌ Unhealthy: ${err instanceof Error ? err.message : String(err)}`,
|
|
164
|
-
}
|
|
212
|
+
},
|
|
213
|
+
],
|
|
165
214
|
};
|
|
166
215
|
}
|
|
167
|
-
}
|
|
216
|
+
}
|
|
217
|
+
server.registerTool('semantic_health', {
|
|
218
|
+
title: 'Health Check',
|
|
219
|
+
description: 'Server status, metrics, and configuration',
|
|
220
|
+
inputSchema: z.object({}),
|
|
221
|
+
}, getHealthResponse);
|
|
168
222
|
server.registerTool('semantic_search', {
|
|
169
223
|
title: 'Semantic Search',
|
|
170
224
|
description: 'Search by meaning with optional metadata filters',
|
|
@@ -179,27 +233,22 @@ server.registerTool('semantic_search', {
|
|
|
179
233
|
}, async ({ query, limit, minSimilarity, kind, tags, since }) => {
|
|
180
234
|
return opQueue.run(async () => {
|
|
181
235
|
const startTime = Date.now();
|
|
236
|
+
const parsedSince = since ? Date.parse(since) : undefined;
|
|
182
237
|
const results = await search.search(query, {
|
|
183
238
|
limit,
|
|
184
239
|
...(minSimilarity !== undefined && { minSimilarity }),
|
|
185
|
-
filter: (meta) =>
|
|
186
|
-
if (kind && meta?.kind !== kind)
|
|
187
|
-
return false;
|
|
188
|
-
if (tags && (!meta?.tags || !tags.some((t) => meta.tags?.includes(t))))
|
|
189
|
-
return false;
|
|
190
|
-
if (since && meta?.timestamp && meta.timestamp < Date.parse(since))
|
|
191
|
-
return false;
|
|
192
|
-
return true;
|
|
193
|
-
},
|
|
240
|
+
filter: (meta) => matchesMetadata(meta, kind, tags, parsedSince),
|
|
194
241
|
});
|
|
195
242
|
metrics.searches++;
|
|
196
243
|
const elapsed = Date.now() - startTime;
|
|
197
244
|
if (results.length === 0) {
|
|
198
245
|
return {
|
|
199
|
-
content: [
|
|
246
|
+
content: [
|
|
247
|
+
{
|
|
200
248
|
type: 'text',
|
|
201
249
|
text: `🔍 No results for "${query}" (${elapsed}ms)`,
|
|
202
|
-
}
|
|
250
|
+
},
|
|
251
|
+
],
|
|
203
252
|
};
|
|
204
253
|
}
|
|
205
254
|
const formatted = results
|
|
@@ -210,10 +259,12 @@ server.registerTool('semantic_search', {
|
|
|
210
259
|
})
|
|
211
260
|
.join('\n\n');
|
|
212
261
|
return {
|
|
213
|
-
content: [
|
|
262
|
+
content: [
|
|
263
|
+
{
|
|
214
264
|
type: 'text',
|
|
215
265
|
text: `🔍 Found ${results.length} in ${elapsed}ms:\n\n${formatted}`,
|
|
216
|
-
}
|
|
266
|
+
},
|
|
267
|
+
],
|
|
217
268
|
};
|
|
218
269
|
});
|
|
219
270
|
});
|
|
@@ -223,16 +274,17 @@ server.registerTool('semantic_index', {
|
|
|
223
274
|
inputSchema: z.object({
|
|
224
275
|
id: z.string().describe('Unique ID (e.g., "auth-pattern", "adr-012")'),
|
|
225
276
|
text: z.string().describe('Content to index'),
|
|
226
|
-
metadata: z.record(z.
|
|
277
|
+
metadata: z.record(z.string(), metadataValueSchema).optional().describe('Optional metadata'),
|
|
227
278
|
}),
|
|
228
279
|
}, async ({ id, text, metadata }) => {
|
|
229
280
|
return opQueue.run(async () => {
|
|
230
281
|
const startTime = Date.now();
|
|
231
|
-
await search.addDocument({ id, text, metadata
|
|
282
|
+
await search.addDocument({ id, text, metadata });
|
|
232
283
|
metrics.documentsAdded++;
|
|
233
284
|
const elapsed = Date.now() - startTime;
|
|
234
285
|
return {
|
|
235
|
-
content: [
|
|
286
|
+
content: [
|
|
287
|
+
{
|
|
236
288
|
type: 'text',
|
|
237
289
|
text: [
|
|
238
290
|
`✅ Indexed "${id}" (${elapsed}ms)`,
|
|
@@ -240,7 +292,8 @@ server.registerTool('semantic_index', {
|
|
|
240
292
|
`💾 Saved to ${config.storePath}`,
|
|
241
293
|
`🔍 Test: semantic_search("${id}")`,
|
|
242
294
|
].join('\n'),
|
|
243
|
-
}
|
|
295
|
+
},
|
|
296
|
+
],
|
|
244
297
|
};
|
|
245
298
|
});
|
|
246
299
|
});
|
|
@@ -248,11 +301,13 @@ server.registerTool('semantic_index_batch', {
|
|
|
248
301
|
title: 'Batch Index',
|
|
249
302
|
description: 'Add multiple documents at once',
|
|
250
303
|
inputSchema: z.object({
|
|
251
|
-
documents: z
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
304
|
+
documents: z
|
|
305
|
+
.array(z.object({
|
|
306
|
+
id: z.string().max(MAX_LENGTH),
|
|
307
|
+
text: z.string().max(MAX_LENGTH),
|
|
308
|
+
metadata: z.record(z.string(), metadataValueSchema).optional(),
|
|
309
|
+
}))
|
|
310
|
+
.max(MAX_ITEMS),
|
|
256
311
|
}),
|
|
257
312
|
}, async ({ documents }) => {
|
|
258
313
|
return opQueue.run(async () => {
|
|
@@ -261,14 +316,16 @@ server.registerTool('semantic_index_batch', {
|
|
|
261
316
|
metrics.documentsAdded += documents.length;
|
|
262
317
|
const elapsed = Date.now() - startTime;
|
|
263
318
|
return {
|
|
264
|
-
content: [
|
|
319
|
+
content: [
|
|
320
|
+
{
|
|
265
321
|
type: 'text',
|
|
266
322
|
text: [
|
|
267
323
|
`✅ Indexed ${documents.length} documents (${elapsed}ms)`,
|
|
268
324
|
` ${Math.round(documents.length / (elapsed / 1000))}/sec`,
|
|
269
325
|
`📊 ${search.size()} documents total`,
|
|
270
326
|
].join('\n'),
|
|
271
|
-
}
|
|
327
|
+
},
|
|
328
|
+
],
|
|
272
329
|
};
|
|
273
330
|
});
|
|
274
331
|
});
|
|
@@ -285,12 +342,12 @@ server.registerTool('semantic_remove', {
|
|
|
285
342
|
metrics.documentsRemoved++;
|
|
286
343
|
}
|
|
287
344
|
return {
|
|
288
|
-
content: [
|
|
345
|
+
content: [
|
|
346
|
+
{
|
|
289
347
|
type: 'text',
|
|
290
|
-
text: removed
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
}],
|
|
348
|
+
text: removed ? `✅ Removed "${id}"\n📊 ${search.size()} remaining` : `⚠️ "${id}" not found`,
|
|
349
|
+
},
|
|
350
|
+
],
|
|
294
351
|
};
|
|
295
352
|
});
|
|
296
353
|
});
|
|
@@ -299,7 +356,8 @@ server.registerTool('semantic_stats', {
|
|
|
299
356
|
description: 'Detailed index information',
|
|
300
357
|
inputSchema: z.object({}),
|
|
301
358
|
}, async () => ({
|
|
302
|
-
content: [
|
|
359
|
+
content: [
|
|
360
|
+
{
|
|
303
361
|
type: 'text',
|
|
304
362
|
text: [
|
|
305
363
|
'📊 Index Stats',
|
|
@@ -322,7 +380,8 @@ server.registerTool('semantic_stats', {
|
|
|
322
380
|
` Removed: ${metrics.documentsRemoved}`,
|
|
323
381
|
` Errors: ${metrics.errors}`,
|
|
324
382
|
].join('\n'),
|
|
325
|
-
}
|
|
383
|
+
},
|
|
384
|
+
],
|
|
326
385
|
}));
|
|
327
386
|
server.registerTool('semantic_clear', {
|
|
328
387
|
title: 'Clear Index',
|
|
@@ -333,20 +392,24 @@ server.registerTool('semantic_clear', {
|
|
|
333
392
|
}, async ({ confirm }) => {
|
|
334
393
|
if (!confirm) {
|
|
335
394
|
return {
|
|
336
|
-
content: [
|
|
395
|
+
content: [
|
|
396
|
+
{
|
|
337
397
|
type: 'text',
|
|
338
398
|
text: '⚠️ Cancelled. Set confirm: true to proceed',
|
|
339
|
-
}
|
|
399
|
+
},
|
|
400
|
+
],
|
|
340
401
|
};
|
|
341
402
|
}
|
|
342
403
|
return opQueue.run(async () => {
|
|
343
404
|
const count = search.size();
|
|
344
405
|
await search.clear();
|
|
345
406
|
return {
|
|
346
|
-
content: [
|
|
407
|
+
content: [
|
|
408
|
+
{
|
|
347
409
|
type: 'text',
|
|
348
410
|
text: `✅ Cleared ${count} documents\n💾 Saved to ${config.storePath}`,
|
|
349
|
-
}
|
|
411
|
+
},
|
|
412
|
+
],
|
|
350
413
|
};
|
|
351
414
|
});
|
|
352
415
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,74 +1,90 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@nacho-labs/mcp-semantic-search",
|
|
3
|
-
"version": "0.3.
|
|
4
|
-
"description": "MCP server for semantic search — give Claude Code, Cursor, and other AI tools persistent memory via local Transformers.js or AWS Bedrock embeddings",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "./dist/index.js",
|
|
7
|
-
"types": "./dist/index.d.ts",
|
|
8
|
-
"bin": {
|
|
9
|
-
"mcp-semantic-search": "
|
|
10
|
-
},
|
|
11
|
-
"exports": {
|
|
12
|
-
".": {
|
|
13
|
-
"types": "./dist/index.d.ts",
|
|
14
|
-
"import": "./dist/index.js"
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
"files": [
|
|
18
|
-
"dist",
|
|
19
|
-
"server.json",
|
|
20
|
-
"README.md",
|
|
21
|
-
"LICENSE"
|
|
22
|
-
],
|
|
23
|
-
"scripts": {
|
|
24
|
-
"build": "tsc",
|
|
25
|
-
"dev": "tsc --watch",
|
|
26
|
-
"start": "node dist/index.js",
|
|
27
|
-
"typecheck": "tsc --noEmit",
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
"
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@nacho-labs/mcp-semantic-search",
|
|
3
|
+
"version": "0.3.3",
|
|
4
|
+
"description": "MCP server for semantic search — give Claude Code, Cursor, and other AI tools persistent memory via local Transformers.js or AWS Bedrock embeddings",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"mcp-semantic-search": "dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/index.js"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist",
|
|
19
|
+
"server.json",
|
|
20
|
+
"README.md",
|
|
21
|
+
"LICENSE"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsc",
|
|
25
|
+
"dev": "tsc --watch",
|
|
26
|
+
"start": "node dist/index.js",
|
|
27
|
+
"typecheck": "tsc --noEmit",
|
|
28
|
+
"lint": "eslint .",
|
|
29
|
+
"format": "prettier --write .",
|
|
30
|
+
"format:check": "prettier --check .",
|
|
31
|
+
"test:unit": "node --test test/integration-support.test.mjs test/release-contract.test.mjs",
|
|
32
|
+
"test:integration": "npm run build && node --test test/stdio-smoke.test.mjs",
|
|
33
|
+
"test": "npm run test:unit",
|
|
34
|
+
"clean": "rm -rf dist *.tsbuildinfo",
|
|
35
|
+
"prepublishOnly": "npm run build",
|
|
36
|
+
"version:patch": "npm version patch",
|
|
37
|
+
"version:minor": "npm version minor",
|
|
38
|
+
"version:major": "npm version major",
|
|
39
|
+
"publish:npm": "npm publish --access public",
|
|
40
|
+
"release:patch": "npm run version:patch && npm run publish:npm",
|
|
41
|
+
"release:minor": "npm run version:minor && npm run publish:npm",
|
|
42
|
+
"release:major": "npm run version:major && npm run publish:npm"
|
|
43
|
+
},
|
|
44
|
+
"keywords": [
|
|
45
|
+
"mcp",
|
|
46
|
+
"model-context-protocol",
|
|
47
|
+
"semantic-search",
|
|
48
|
+
"embeddings",
|
|
49
|
+
"vector-search",
|
|
50
|
+
"claude",
|
|
51
|
+
"claude-code",
|
|
52
|
+
"ai-memory",
|
|
53
|
+
"local",
|
|
54
|
+
"privacy",
|
|
55
|
+
"bedrock",
|
|
56
|
+
"aws"
|
|
57
|
+
],
|
|
58
|
+
"author": "Nate Richardson <hello@naterichardson.com> (https://naterichardson.com)",
|
|
59
|
+
"license": "MIT",
|
|
60
|
+
"engines": {
|
|
61
|
+
"node": ">=20.9.0"
|
|
62
|
+
},
|
|
63
|
+
"repository": {
|
|
64
|
+
"type": "git",
|
|
65
|
+
"url": "git+https://github.com/Nacho-Labs-LLC/mcp-semantic-search.git"
|
|
66
|
+
},
|
|
67
|
+
"dependencies": {
|
|
68
|
+
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
69
|
+
"@nacho-labs/nachos-embeddings": "^0.5.1",
|
|
70
|
+
"zod": "^4.4.3"
|
|
71
|
+
},
|
|
72
|
+
"optionalDependencies": {
|
|
73
|
+
"@aws-sdk/client-bedrock-runtime": "^3.1101.0"
|
|
74
|
+
},
|
|
75
|
+
"overrides": {
|
|
76
|
+
"adm-zip": "0.6.0",
|
|
77
|
+
"sharp": "0.35.3"
|
|
78
|
+
},
|
|
79
|
+
"devDependencies": {
|
|
80
|
+
"@aws-sdk/client-bedrock-runtime": "^3.1101.0",
|
|
81
|
+
"@babel/core": "^7.29.7",
|
|
82
|
+
"@babel/eslint-parser": "^7.29.7",
|
|
83
|
+
"@babel/preset-typescript": "^7.29.7",
|
|
84
|
+
"@eslint/js": "^9.39.5",
|
|
85
|
+
"@types/node": "^26.1.2",
|
|
86
|
+
"eslint": "^9.39.5",
|
|
87
|
+
"prettier": "^3.9.6",
|
|
88
|
+
"typescript": "^7.0.2"
|
|
89
|
+
}
|
|
90
|
+
}
|
package/server.json
CHANGED
|
@@ -1,44 +1,86 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
-
"name": "io.github.nacho-labs-llc/mcp-semantic-search",
|
|
4
|
-
"description": "Local semantic search for AI coding tools. Index decisions, patterns, and context — recall them by meaning, not keywords. Powered by nachos-embeddings (Transformers.js). No API keys, no cloud, no costs.",
|
|
5
|
-
"title": "Semantic Search MCP Server",
|
|
6
|
-
"version": "0.
|
|
7
|
-
"repository": {
|
|
8
|
-
"url": "https://github.com/nacho-labs-llc/mcp-semantic-search",
|
|
9
|
-
"source": "github"
|
|
10
|
-
},
|
|
11
|
-
"packages": [
|
|
12
|
-
{
|
|
13
|
-
"registryType": "npm",
|
|
14
|
-
"identifier": "@nacho-labs/mcp-semantic-search",
|
|
15
|
-
"version": "0.
|
|
16
|
-
"transport": {
|
|
17
|
-
"type": "stdio"
|
|
18
|
-
},
|
|
19
|
-
"environmentVariables": [
|
|
20
|
-
{
|
|
21
|
-
"name": "MCP_SEMANTIC_STORE",
|
|
22
|
-
"description": "Path to the JSON file where the index is persisted. Defaults to .semantic-store.json in the working directory.",
|
|
23
|
-
"isRequired": false,
|
|
24
|
-
"isSecret": false,
|
|
25
|
-
"format": "string"
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"name": "MCP_SEMANTIC_SIMILARITY",
|
|
29
|
-
"description": "Minimum similarity threshold (0-1). Defaults to 0.
|
|
30
|
-
"isRequired": false,
|
|
31
|
-
"isSecret": false,
|
|
32
|
-
"format": "string"
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
"name": "MCP_SEMANTIC_MODEL",
|
|
36
|
-
"description": "Embedding model to use. Defaults to Xenova/all-MiniLM-L6-v2.",
|
|
37
|
-
"isRequired": false,
|
|
38
|
-
"isSecret": false,
|
|
39
|
-
"format": "string"
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
+
"name": "io.github.nacho-labs-llc/mcp-semantic-search",
|
|
4
|
+
"description": "Local semantic search for AI coding tools. Index decisions, patterns, and context — recall them by meaning, not keywords. Powered by nachos-embeddings (Transformers.js). No API keys, no cloud, no costs.",
|
|
5
|
+
"title": "Semantic Search MCP Server",
|
|
6
|
+
"version": "0.3.2",
|
|
7
|
+
"repository": {
|
|
8
|
+
"url": "https://github.com/nacho-labs-llc/mcp-semantic-search",
|
|
9
|
+
"source": "github"
|
|
10
|
+
},
|
|
11
|
+
"packages": [
|
|
12
|
+
{
|
|
13
|
+
"registryType": "npm",
|
|
14
|
+
"identifier": "@nacho-labs/mcp-semantic-search",
|
|
15
|
+
"version": "0.3.2",
|
|
16
|
+
"transport": {
|
|
17
|
+
"type": "stdio"
|
|
18
|
+
},
|
|
19
|
+
"environmentVariables": [
|
|
20
|
+
{
|
|
21
|
+
"name": "MCP_SEMANTIC_STORE",
|
|
22
|
+
"description": "Path to the JSON file where the index is persisted. Defaults to .semantic-store.json in the working directory.",
|
|
23
|
+
"isRequired": false,
|
|
24
|
+
"isSecret": false,
|
|
25
|
+
"format": "string"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "MCP_SEMANTIC_SIMILARITY",
|
|
29
|
+
"description": "Minimum similarity threshold (0-1). Defaults to 0.4.",
|
|
30
|
+
"isRequired": false,
|
|
31
|
+
"isSecret": false,
|
|
32
|
+
"format": "string"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "MCP_SEMANTIC_MODEL",
|
|
36
|
+
"description": "Embedding model to use. Defaults to Xenova/all-MiniLM-L6-v2.",
|
|
37
|
+
"isRequired": false,
|
|
38
|
+
"isSecret": false,
|
|
39
|
+
"format": "string"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"name": "MCP_SEMANTIC_CACHE_DIR",
|
|
43
|
+
"description": "Model cache directory. Defaults to .cache/transformers.",
|
|
44
|
+
"isRequired": false,
|
|
45
|
+
"isSecret": false,
|
|
46
|
+
"format": "string"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"name": "MCP_SEMANTIC_PROVIDER",
|
|
50
|
+
"description": "Embedding provider: transformers or bedrock. Defaults to transformers.",
|
|
51
|
+
"isRequired": false,
|
|
52
|
+
"isSecret": false,
|
|
53
|
+
"format": "string"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "MCP_SEMANTIC_BEDROCK_REGION",
|
|
57
|
+
"description": "AWS region for the Bedrock provider. Defaults to us-east-1.",
|
|
58
|
+
"isRequired": false,
|
|
59
|
+
"isSecret": false,
|
|
60
|
+
"format": "string"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"name": "MCP_SEMANTIC_BEDROCK_MODEL",
|
|
64
|
+
"description": "Bedrock embedding model ID. Defaults to amazon.titan-embed-text-v2:0.",
|
|
65
|
+
"isRequired": false,
|
|
66
|
+
"isSecret": false,
|
|
67
|
+
"format": "string"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "MCP_SEMANTIC_BEDROCK_PROFILE",
|
|
71
|
+
"description": "Optional AWS shared-credentials profile name for Bedrock.",
|
|
72
|
+
"isRequired": false,
|
|
73
|
+
"isSecret": false,
|
|
74
|
+
"format": "string"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "MCP_SEMANTIC_BEDROCK_DIMENSIONS",
|
|
78
|
+
"description": "Optional Bedrock embedding dimensions override. Defaults to 1024.",
|
|
79
|
+
"isRequired": false,
|
|
80
|
+
"isSecret": false,
|
|
81
|
+
"format": "string"
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}
|