@dotlab-hq/vector-store-mcp 1.0.0
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 +225 -0
- package/dist/client.d.ts +11 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +28 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/index.d.ts +492 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +300 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +99 -0
- package/dist/server.js.map +1 -0
- package/dist/stdio.d.ts +3 -0
- package/dist/stdio.d.ts.map +1 -0
- package/dist/stdio.js +30 -0
- package/dist/stdio.js.map +1 -0
- package/dist/tools/files.d.ts +9 -0
- package/dist/tools/files.d.ts.map +1 -0
- package/dist/tools/files.js +153 -0
- package/dist/tools/files.js.map +1 -0
- package/dist/tools/index.d.ts +40 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +47 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/upload-file.d.ts +20 -0
- package/dist/tools/upload-file.d.ts.map +1 -0
- package/dist/tools/upload-file.js +60 -0
- package/dist/tools/upload-file.js.map +1 -0
- package/dist/tools/vector-stores.d.ts +8 -0
- package/dist/tools/vector-stores.d.ts.map +1 -0
- package/dist/tools/vector-stores.js +267 -0
- package/dist/tools/vector-stores.js.map +1 -0
- package/dist/tools/vs-file-batches.d.ts +8 -0
- package/dist/tools/vs-file-batches.d.ts.map +1 -0
- package/dist/tools/vs-file-batches.js +157 -0
- package/dist/tools/vs-file-batches.js.map +1 -0
- package/dist/tools/vs-files.d.ts +8 -0
- package/dist/tools/vs-files.d.ts.map +1 -0
- package/dist/tools/vs-files.js +222 -0
- package/dist/tools/vs-files.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vs-file-batches.js","sourceRoot":"","sources":["../../src/tools/vs-file-batches.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI Vector Store File tools for MCP.
|
|
3
|
+
*
|
|
4
|
+
* Covers: attach file to VS, list VS files, retrieve, delete, retrieve content, update attributes.
|
|
5
|
+
*/
|
|
6
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
7
|
+
export declare function registerVectorStoreFileTools(server: McpServer): void;
|
|
8
|
+
//# sourceMappingURL=vs-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vs-files.d.ts","sourceRoot":"","sources":["../../src/tools/vs-files.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgCpE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkOpE"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { getClient } from "../client.js";
|
|
2
|
+
import { CreateVectorStoreFileSchema, ListVectorStoreFilesSchema, RetrieveVectorStoreFileSchema, DeleteVectorStoreFileSchema, RetrieveVectorStoreFileContentSchema, UpdateVectorStoreFileAttributesSchema, } from "../schemas/index.js";
|
|
3
|
+
function formatVSFile(f, format) {
|
|
4
|
+
if (format === "json")
|
|
5
|
+
return JSON.stringify(f, null, 2);
|
|
6
|
+
const lines = [
|
|
7
|
+
`### Vector Store File`,
|
|
8
|
+
"",
|
|
9
|
+
`- **ID**: \`${f.id}\``,
|
|
10
|
+
`- **Created**: ${new Date(f.created_at * 1000).toISOString()}`,
|
|
11
|
+
];
|
|
12
|
+
if (f.status)
|
|
13
|
+
lines.push(`- **Status**: ${f.status}`);
|
|
14
|
+
if (f.last_error) {
|
|
15
|
+
const err = f.last_error;
|
|
16
|
+
lines.push(`- **Last Error**: ${err.code} — ${err.message}`);
|
|
17
|
+
}
|
|
18
|
+
if (f.attributes && Object.keys(f.attributes).length > 0) {
|
|
19
|
+
lines.push(`- **Attributes**: \`${JSON.stringify(f.attributes)}\``);
|
|
20
|
+
}
|
|
21
|
+
lines.push("");
|
|
22
|
+
return lines.join("\n");
|
|
23
|
+
}
|
|
24
|
+
export function registerVectorStoreFileTools(server) {
|
|
25
|
+
server.registerTool("openai_attach_file_to_vector_store", {
|
|
26
|
+
title: "Attach File to Vector Store",
|
|
27
|
+
description: `Attach a previously uploaded file to a vector store.
|
|
28
|
+
|
|
29
|
+
The file must already exist in your OpenAI project (use openai_upload_file to upload first). Once attached, the file will be chunked and indexed for semantic search.
|
|
30
|
+
|
|
31
|
+
For multi-file ingestion, prefer openai_create_vector_store_file_batch to minimize per-vector-store write requests.`,
|
|
32
|
+
inputSchema: CreateVectorStoreFileSchema.shape,
|
|
33
|
+
annotations: {
|
|
34
|
+
readOnlyHint: false,
|
|
35
|
+
destructiveHint: false,
|
|
36
|
+
idempotentHint: false,
|
|
37
|
+
openWorldHint: true,
|
|
38
|
+
},
|
|
39
|
+
}, async (params) => {
|
|
40
|
+
try {
|
|
41
|
+
const client = getClient();
|
|
42
|
+
const result = await client.vectorStores.files.create(params.vector_store_id, {
|
|
43
|
+
file_id: params.file_id,
|
|
44
|
+
attributes: params.attributes,
|
|
45
|
+
chunking_strategy: params.chunking_strategy,
|
|
46
|
+
});
|
|
47
|
+
return {
|
|
48
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
return {
|
|
53
|
+
isError: true,
|
|
54
|
+
content: [{ type: "text", text: `Error attaching file: ${error instanceof Error ? error.message : String(error)}` }],
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
server.registerTool("openai_list_vector_store_files", {
|
|
59
|
+
title: "List Vector Store Files",
|
|
60
|
+
description: `List all files attached to a vector store with pagination and optional status filter.
|
|
61
|
+
|
|
62
|
+
Shows each file's processing status (in_progress, completed, failed, cancelled) so you can monitor ingestion progress.`,
|
|
63
|
+
inputSchema: ListVectorStoreFilesSchema.shape,
|
|
64
|
+
annotations: {
|
|
65
|
+
readOnlyHint: true,
|
|
66
|
+
destructiveHint: false,
|
|
67
|
+
idempotentHint: true,
|
|
68
|
+
openWorldHint: true,
|
|
69
|
+
},
|
|
70
|
+
}, async (params) => {
|
|
71
|
+
try {
|
|
72
|
+
const client = getClient();
|
|
73
|
+
const format = params.response_format;
|
|
74
|
+
const page = await client.vectorStores.files.list(params.vector_store_id, {
|
|
75
|
+
after: params.after,
|
|
76
|
+
before: params.before,
|
|
77
|
+
filter: params.filter,
|
|
78
|
+
limit: params.limit,
|
|
79
|
+
order: params.order,
|
|
80
|
+
});
|
|
81
|
+
const data = page.data;
|
|
82
|
+
if (format === "json") {
|
|
83
|
+
return {
|
|
84
|
+
content: [{ type: "text", text: JSON.stringify({ total: data.length, files: data }, null, 2) }],
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
const lines = [
|
|
88
|
+
`# Vector Store Files (${data.length} results)`,
|
|
89
|
+
"",
|
|
90
|
+
];
|
|
91
|
+
for (const f of data) {
|
|
92
|
+
lines.push(formatVSFile(f, "markdown"));
|
|
93
|
+
}
|
|
94
|
+
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
return {
|
|
98
|
+
isError: true,
|
|
99
|
+
content: [{ type: "text", text: `Error listing vector store files: ${error instanceof Error ? error.message : String(error)}` }],
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
server.registerTool("openai_retrieve_vector_store_file", {
|
|
104
|
+
title: "Retrieve Vector Store File",
|
|
105
|
+
description: `Retrieve details of a specific file attached to a vector store, including its processing status and any errors.`,
|
|
106
|
+
inputSchema: RetrieveVectorStoreFileSchema.shape,
|
|
107
|
+
annotations: {
|
|
108
|
+
readOnlyHint: true,
|
|
109
|
+
destructiveHint: false,
|
|
110
|
+
idempotentHint: true,
|
|
111
|
+
openWorldHint: true,
|
|
112
|
+
},
|
|
113
|
+
}, async (params) => {
|
|
114
|
+
try {
|
|
115
|
+
const client = getClient();
|
|
116
|
+
const result = await client.vectorStores.files.retrieve(params.vector_store_id, params.file_id);
|
|
117
|
+
return {
|
|
118
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
return {
|
|
123
|
+
isError: true,
|
|
124
|
+
content: [{ type: "text", text: `Error retrieving vector store file: ${error instanceof Error ? error.message : String(error)}` }],
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
server.registerTool("openai_delete_vector_store_file", {
|
|
129
|
+
title: "Delete Vector Store File",
|
|
130
|
+
description: `Remove a file from a vector store (does NOT delete the underlying OpenAI file).
|
|
131
|
+
|
|
132
|
+
After removal, the file will no longer be searchable in this vector store. To delete the file entirely, use openai_delete_file.`,
|
|
133
|
+
inputSchema: DeleteVectorStoreFileSchema.shape,
|
|
134
|
+
annotations: {
|
|
135
|
+
readOnlyHint: false,
|
|
136
|
+
destructiveHint: true,
|
|
137
|
+
idempotentHint: true,
|
|
138
|
+
openWorldHint: true,
|
|
139
|
+
},
|
|
140
|
+
}, async (params) => {
|
|
141
|
+
try {
|
|
142
|
+
const client = getClient();
|
|
143
|
+
const result = await client.vectorStores.files.del(params.vector_store_id, params.file_id);
|
|
144
|
+
return {
|
|
145
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
return {
|
|
150
|
+
isError: true,
|
|
151
|
+
content: [{ type: "text", text: `Error deleting vector store file: ${error instanceof Error ? error.message : String(error)}` }],
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
server.registerTool("openai_retrieve_vector_store_file_content", {
|
|
156
|
+
title: "Retrieve Vector Store File Content",
|
|
157
|
+
description: `Retrieve the parsed text content of a vector store file.
|
|
158
|
+
|
|
159
|
+
Returns the chunks of text that were extracted from the file and indexed in the vector store. Useful for inspecting what content is available for search.`,
|
|
160
|
+
inputSchema: RetrieveVectorStoreFileContentSchema.shape,
|
|
161
|
+
annotations: {
|
|
162
|
+
readOnlyHint: true,
|
|
163
|
+
destructiveHint: false,
|
|
164
|
+
idempotentHint: true,
|
|
165
|
+
openWorldHint: true,
|
|
166
|
+
},
|
|
167
|
+
}, async (params) => {
|
|
168
|
+
try {
|
|
169
|
+
const client = getClient();
|
|
170
|
+
const contentPages = [];
|
|
171
|
+
for await (const chunk of client.vectorStores.files.content(params.vector_store_id, params.file_id)) {
|
|
172
|
+
if (chunk.text) {
|
|
173
|
+
contentPages.push(chunk.text);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
const fullText = contentPages.join("\n");
|
|
177
|
+
const maxLen = 50000;
|
|
178
|
+
const display = fullText.length > maxLen
|
|
179
|
+
? fullText.substring(0, maxLen) + `\n\n... [truncated, ${fullText.length} total chars]`
|
|
180
|
+
: fullText;
|
|
181
|
+
return {
|
|
182
|
+
content: [{ type: "text", text: display || "No content available." }],
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
return {
|
|
187
|
+
isError: true,
|
|
188
|
+
content: [{ type: "text", text: `Error retrieving file content: ${error instanceof Error ? error.message : String(error)}` }],
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
server.registerTool("openai_update_vector_store_file_attributes", {
|
|
193
|
+
title: "Update Vector Store File Attributes",
|
|
194
|
+
description: `Update or clear the attributes (up to 16 key-value pairs) on a vector store file.
|
|
195
|
+
|
|
196
|
+
Attributes can be used to filter and organize files within a vector store. Pass null to clear all attributes.`,
|
|
197
|
+
inputSchema: UpdateVectorStoreFileAttributesSchema.shape,
|
|
198
|
+
annotations: {
|
|
199
|
+
readOnlyHint: false,
|
|
200
|
+
destructiveHint: false,
|
|
201
|
+
idempotentHint: true,
|
|
202
|
+
openWorldHint: true,
|
|
203
|
+
},
|
|
204
|
+
}, async (params) => {
|
|
205
|
+
try {
|
|
206
|
+
const client = getClient();
|
|
207
|
+
const result = await client.vectorStores.files.update(params.vector_store_id, params.file_id, {
|
|
208
|
+
attributes: params.attributes,
|
|
209
|
+
});
|
|
210
|
+
return {
|
|
211
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
return {
|
|
216
|
+
isError: true,
|
|
217
|
+
content: [{ type: "text", text: `Error updating file attributes: ${error instanceof Error ? error.message : String(error)}` }],
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=vs-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vs-files.js","sourceRoot":"","sources":["../../src/tools/vs-files.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@dotlab-hq/vector-store-mcp",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MCP server for OpenAI Vector Store API — manage vector stores, files, batches, and search.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"vector-store-mcp": "dist/stdio.js"
|
|
8
|
+
},
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"default": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./cli": {
|
|
15
|
+
"types": "./dist/stdio.d.ts",
|
|
16
|
+
"default": "./dist/stdio.js"
|
|
17
|
+
},
|
|
18
|
+
"./server": {
|
|
19
|
+
"types": "./dist/server.d.ts",
|
|
20
|
+
"default": "./dist/server.js"
|
|
21
|
+
},
|
|
22
|
+
"./client": {
|
|
23
|
+
"types": "./dist/client.d.ts",
|
|
24
|
+
"default": "./dist/client.js"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"dist",
|
|
29
|
+
"README.md",
|
|
30
|
+
"LICENSE"
|
|
31
|
+
],
|
|
32
|
+
"repository": {
|
|
33
|
+
"type": "git",
|
|
34
|
+
"url": "git+https://github.com/dotlab-hq/vector-store-mcp.git"
|
|
35
|
+
},
|
|
36
|
+
"scripts": {
|
|
37
|
+
"start": "node dist/stdio.js",
|
|
38
|
+
"start:http": "node dist/server.js",
|
|
39
|
+
"dev": "tsx watch src/stdio.ts",
|
|
40
|
+
"dev:http": "tsx watch src/server.ts",
|
|
41
|
+
"build": "tsc",
|
|
42
|
+
"typecheck": "tsc --noEmit",
|
|
43
|
+
"clean": "rm -rf dist",
|
|
44
|
+
"link": "bun link"
|
|
45
|
+
},
|
|
46
|
+
"engines": {
|
|
47
|
+
"node": ">=18"
|
|
48
|
+
},
|
|
49
|
+
"keywords": [
|
|
50
|
+
"mcp",
|
|
51
|
+
"model-context-protocol",
|
|
52
|
+
"openai",
|
|
53
|
+
"vector-store",
|
|
54
|
+
"embeddings",
|
|
55
|
+
"ai",
|
|
56
|
+
"search"
|
|
57
|
+
],
|
|
58
|
+
"author": "Wpsadi",
|
|
59
|
+
"license": "MIT",
|
|
60
|
+
"devDependencies": {
|
|
61
|
+
"@types/node": "^22.15.3",
|
|
62
|
+
"tsx": "^4.19.4",
|
|
63
|
+
"typescript": "^5.8.3"
|
|
64
|
+
},
|
|
65
|
+
"peerDependencies": {
|
|
66
|
+
"typescript": "^5"
|
|
67
|
+
},
|
|
68
|
+
"dependencies": {
|
|
69
|
+
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
70
|
+
"openai": "^4.96.0",
|
|
71
|
+
"zod": "^3.24.4"
|
|
72
|
+
}
|
|
73
|
+
}
|