zotero-bridge 1.0.1
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 -0
- package/README-en.md +324 -0
- package/README.md +324 -0
- package/dist/database.d.ts +280 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +1031 -0
- package/dist/database.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +504 -0
- package/dist/index.js.map +1 -0
- package/dist/pdf.d.ts +57 -0
- package/dist/pdf.d.ts.map +1 -0
- package/dist/pdf.js +143 -0
- package/dist/pdf.js.map +1 -0
- package/dist/tools.d.ts +396 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +425 -0
- package/dist/tools.js.map +1 -0
- package/package.json +50 -0
- package/server.json +20 -0
- package/src/database.ts +1225 -0
- package/src/index.ts +630 -0
- package/src/pdf.ts +184 -0
- package/src/tools.ts +489 -0
- package/tsconfig.json +20 -0
package/dist/tools.js
ADDED
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZoteroBridge - MCP Tool Definitions
|
|
3
|
+
*
|
|
4
|
+
* Defines all available MCP tools for Zotero operations
|
|
5
|
+
*
|
|
6
|
+
* @author Combjellyshen
|
|
7
|
+
*/
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
// ============================================
|
|
10
|
+
// Collection/Directory Tools
|
|
11
|
+
// ============================================
|
|
12
|
+
export const listCollectionsSchema = z.object({
|
|
13
|
+
libraryID: z.number().optional().default(1).describe('Library ID (default: 1 for personal library)')
|
|
14
|
+
});
|
|
15
|
+
export const getCollectionSchema = z.object({
|
|
16
|
+
collectionID: z.number().optional().describe('Collection ID'),
|
|
17
|
+
name: z.string().optional().describe('Collection name'),
|
|
18
|
+
libraryID: z.number().optional().default(1).describe('Library ID')
|
|
19
|
+
});
|
|
20
|
+
export const createCollectionSchema = z.object({
|
|
21
|
+
name: z.string().describe('Name of the new collection'),
|
|
22
|
+
parentCollectionID: z.number().optional().describe('Parent collection ID (null for root)'),
|
|
23
|
+
libraryID: z.number().optional().default(1).describe('Library ID')
|
|
24
|
+
});
|
|
25
|
+
export const renameCollectionSchema = z.object({
|
|
26
|
+
collectionID: z.number().describe('Collection ID to rename'),
|
|
27
|
+
newName: z.string().describe('New name for the collection')
|
|
28
|
+
});
|
|
29
|
+
export const moveCollectionSchema = z.object({
|
|
30
|
+
collectionID: z.number().describe('Collection ID to move'),
|
|
31
|
+
newParentID: z.number().nullable().describe('New parent collection ID (null for root)')
|
|
32
|
+
});
|
|
33
|
+
export const deleteCollectionSchema = z.object({
|
|
34
|
+
collectionID: z.number().describe('Collection ID to delete')
|
|
35
|
+
});
|
|
36
|
+
export const getSubcollectionsSchema = z.object({
|
|
37
|
+
parentCollectionID: z.number().describe('Parent collection ID')
|
|
38
|
+
});
|
|
39
|
+
// ============================================
|
|
40
|
+
// Tag Tools
|
|
41
|
+
// ============================================
|
|
42
|
+
export const listTagsSchema = z.object({});
|
|
43
|
+
export const addTagSchema = z.object({
|
|
44
|
+
itemID: z.number().describe('Item ID to add tag to'),
|
|
45
|
+
tagName: z.string().describe('Tag name to add'),
|
|
46
|
+
type: z.number().optional().default(0).describe('Tag type (0=user, 1=automatic)')
|
|
47
|
+
});
|
|
48
|
+
export const removeTagSchema = z.object({
|
|
49
|
+
itemID: z.number().describe('Item ID to remove tag from'),
|
|
50
|
+
tagName: z.string().describe('Tag name to remove')
|
|
51
|
+
});
|
|
52
|
+
export const getItemTagsSchema = z.object({
|
|
53
|
+
itemID: z.number().describe('Item ID to get tags for')
|
|
54
|
+
});
|
|
55
|
+
export const createTagSchema = z.object({
|
|
56
|
+
name: z.string().describe('Tag name to create'),
|
|
57
|
+
type: z.number().optional().default(0).describe('Tag type')
|
|
58
|
+
});
|
|
59
|
+
// ============================================
|
|
60
|
+
// Item Tools
|
|
61
|
+
// ============================================
|
|
62
|
+
export const searchItemsSchema = z.object({
|
|
63
|
+
query: z.string().describe('Search query for item titles'),
|
|
64
|
+
limit: z.number().optional().default(50).describe('Maximum number of results'),
|
|
65
|
+
libraryID: z.number().optional().default(1).describe('Library ID')
|
|
66
|
+
});
|
|
67
|
+
export const getItemDetailsSchema = z.object({
|
|
68
|
+
itemID: z.number().optional().describe('Item ID'),
|
|
69
|
+
itemKey: z.string().optional().describe('Item key')
|
|
70
|
+
});
|
|
71
|
+
export const addItemToCollectionSchema = z.object({
|
|
72
|
+
itemID: z.number().describe('Item ID to add'),
|
|
73
|
+
collectionID: z.number().describe('Collection ID to add item to')
|
|
74
|
+
});
|
|
75
|
+
export const removeItemFromCollectionSchema = z.object({
|
|
76
|
+
itemID: z.number().describe('Item ID to remove'),
|
|
77
|
+
collectionID: z.number().describe('Collection ID to remove item from')
|
|
78
|
+
});
|
|
79
|
+
export const getCollectionItemsSchema = z.object({
|
|
80
|
+
collectionID: z.number().describe('Collection ID to get items from')
|
|
81
|
+
});
|
|
82
|
+
// ============================================
|
|
83
|
+
// Abstract/Note Tools
|
|
84
|
+
// ============================================
|
|
85
|
+
export const getItemAbstractSchema = z.object({
|
|
86
|
+
itemID: z.number().describe('Item ID to get abstract for')
|
|
87
|
+
});
|
|
88
|
+
export const setItemAbstractSchema = z.object({
|
|
89
|
+
itemID: z.number().describe('Item ID to set abstract for'),
|
|
90
|
+
abstract: z.string().describe('Abstract text')
|
|
91
|
+
});
|
|
92
|
+
export const getItemNotesSchema = z.object({
|
|
93
|
+
itemID: z.number().describe('Item ID to get notes for')
|
|
94
|
+
});
|
|
95
|
+
export const addItemNoteSchema = z.object({
|
|
96
|
+
itemID: z.number().describe('Parent item ID'),
|
|
97
|
+
content: z.string().describe('Note content (can include HTML)'),
|
|
98
|
+
title: z.string().optional().default('').describe('Note title')
|
|
99
|
+
});
|
|
100
|
+
// ============================================
|
|
101
|
+
// PDF Tools
|
|
102
|
+
// ============================================
|
|
103
|
+
export const extractPDFTextSchema = z.object({
|
|
104
|
+
attachmentItemID: z.number().describe('Attachment item ID of the PDF')
|
|
105
|
+
});
|
|
106
|
+
export const getPDFSummarySchema = z.object({
|
|
107
|
+
attachmentItemID: z.number().describe('Attachment item ID of the PDF')
|
|
108
|
+
});
|
|
109
|
+
export const getItemPDFsSchema = z.object({
|
|
110
|
+
parentItemID: z.number().describe('Parent item ID to get PDFs from')
|
|
111
|
+
});
|
|
112
|
+
export const searchPDFSchema = z.object({
|
|
113
|
+
attachmentItemID: z.number().describe('Attachment item ID of the PDF'),
|
|
114
|
+
query: z.string().describe('Search query'),
|
|
115
|
+
caseSensitive: z.boolean().optional().default(false).describe('Case sensitive search')
|
|
116
|
+
});
|
|
117
|
+
export const generateAbstractFromPDFSchema = z.object({
|
|
118
|
+
attachmentItemID: z.number().describe('Attachment item ID of the PDF'),
|
|
119
|
+
maxLength: z.number().optional().default(1000).describe('Maximum length of generated abstract'),
|
|
120
|
+
saveToItem: z.boolean().optional().default(false).describe('Save generated abstract to parent item')
|
|
121
|
+
});
|
|
122
|
+
// ============================================
|
|
123
|
+
// Identifier Tools (DOI/ISBN)
|
|
124
|
+
// ============================================
|
|
125
|
+
export const findByDOISchema = z.object({
|
|
126
|
+
doi: z.string().describe('DOI to search for (with or without doi.org prefix)')
|
|
127
|
+
});
|
|
128
|
+
export const findByISBNSchema = z.object({
|
|
129
|
+
isbn: z.string().describe('ISBN to search for (with or without hyphens)')
|
|
130
|
+
});
|
|
131
|
+
export const findByIdentifierSchema = z.object({
|
|
132
|
+
identifier: z.string().describe('Identifier value (DOI, ISBN, PMID, etc.)'),
|
|
133
|
+
type: z.string().optional().describe('Identifier type: doi, isbn, pmid, arxiv, url')
|
|
134
|
+
});
|
|
135
|
+
// ============================================
|
|
136
|
+
// Annotation Tools
|
|
137
|
+
// ============================================
|
|
138
|
+
export const getItemAnnotationsSchema = z.object({
|
|
139
|
+
itemID: z.number().describe('Parent item ID to get annotations from')
|
|
140
|
+
});
|
|
141
|
+
export const getAttachmentAnnotationsSchema = z.object({
|
|
142
|
+
attachmentID: z.number().describe('Attachment item ID to get annotations from')
|
|
143
|
+
});
|
|
144
|
+
export const getAnnotationsByTypeSchema = z.object({
|
|
145
|
+
itemID: z.number().describe('Parent item ID'),
|
|
146
|
+
types: z.array(z.string()).describe('Annotation types: highlight, note, image, ink, underline')
|
|
147
|
+
});
|
|
148
|
+
export const getAnnotationsByColorSchema = z.object({
|
|
149
|
+
itemID: z.number().describe('Parent item ID'),
|
|
150
|
+
colors: z.array(z.string()).describe('Annotation colors (hex codes like #ffff00)')
|
|
151
|
+
});
|
|
152
|
+
export const searchAnnotationsSchema = z.object({
|
|
153
|
+
query: z.string().describe('Search query for annotation text/comments'),
|
|
154
|
+
itemID: z.number().optional().describe('Limit search to specific item')
|
|
155
|
+
});
|
|
156
|
+
// ============================================
|
|
157
|
+
// Fulltext Search Tools
|
|
158
|
+
// ============================================
|
|
159
|
+
export const searchFulltextSchema = z.object({
|
|
160
|
+
query: z.string().describe('Search query for fulltext content'),
|
|
161
|
+
libraryID: z.number().optional().default(1).describe('Library ID')
|
|
162
|
+
});
|
|
163
|
+
export const getFulltextContentSchema = z.object({
|
|
164
|
+
attachmentID: z.number().describe('Attachment item ID to get fulltext from')
|
|
165
|
+
});
|
|
166
|
+
export const searchFulltextWithContextSchema = z.object({
|
|
167
|
+
query: z.string().describe('Search query'),
|
|
168
|
+
contextLength: z.number().optional().default(100).describe('Characters of context around matches'),
|
|
169
|
+
libraryID: z.number().optional().default(1).describe('Library ID')
|
|
170
|
+
});
|
|
171
|
+
// ============================================
|
|
172
|
+
// Similar Items Tools
|
|
173
|
+
// ============================================
|
|
174
|
+
export const getRelatedItemsSchema = z.object({
|
|
175
|
+
itemID: z.number().describe('Item ID to get related items for')
|
|
176
|
+
});
|
|
177
|
+
export const findSimilarByTagsSchema = z.object({
|
|
178
|
+
itemID: z.number().describe('Item ID to find similar items for'),
|
|
179
|
+
minSharedTags: z.number().optional().default(2).describe('Minimum number of shared tags')
|
|
180
|
+
});
|
|
181
|
+
export const findSimilarByCreatorsSchema = z.object({
|
|
182
|
+
itemID: z.number().describe('Item ID to find similar items for')
|
|
183
|
+
});
|
|
184
|
+
export const findSimilarByCollectionSchema = z.object({
|
|
185
|
+
itemID: z.number().describe('Item ID to find similar items for')
|
|
186
|
+
});
|
|
187
|
+
// ============================================
|
|
188
|
+
// Utility Tools
|
|
189
|
+
// ============================================
|
|
190
|
+
export const getDatabaseInfoSchema = z.object({});
|
|
191
|
+
export const rawQuerySchema = z.object({
|
|
192
|
+
sql: z.string().describe('SQL query to execute (SELECT only)'),
|
|
193
|
+
params: z.array(z.any()).optional().default([]).describe('Query parameters')
|
|
194
|
+
});
|
|
195
|
+
// ============================================
|
|
196
|
+
// Tool Definitions
|
|
197
|
+
// ============================================
|
|
198
|
+
export const toolDefinitions = [
|
|
199
|
+
// Collection Tools
|
|
200
|
+
{
|
|
201
|
+
name: 'list_collections',
|
|
202
|
+
description: 'List all collections (folders) in the Zotero library',
|
|
203
|
+
inputSchema: listCollectionsSchema
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
name: 'get_collection',
|
|
207
|
+
description: 'Get a collection by ID or name',
|
|
208
|
+
inputSchema: getCollectionSchema
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
name: 'create_collection',
|
|
212
|
+
description: 'Create a new collection (folder)',
|
|
213
|
+
inputSchema: createCollectionSchema
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
name: 'rename_collection',
|
|
217
|
+
description: 'Rename an existing collection',
|
|
218
|
+
inputSchema: renameCollectionSchema
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
name: 'move_collection',
|
|
222
|
+
description: 'Move a collection to a new parent (or root)',
|
|
223
|
+
inputSchema: moveCollectionSchema
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
name: 'delete_collection',
|
|
227
|
+
description: 'Delete a collection',
|
|
228
|
+
inputSchema: deleteCollectionSchema
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
name: 'get_subcollections',
|
|
232
|
+
description: 'Get all subcollections of a collection',
|
|
233
|
+
inputSchema: getSubcollectionsSchema
|
|
234
|
+
},
|
|
235
|
+
// Tag Tools
|
|
236
|
+
{
|
|
237
|
+
name: 'list_tags',
|
|
238
|
+
description: 'List all tags in the library',
|
|
239
|
+
inputSchema: listTagsSchema
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
name: 'add_tag',
|
|
243
|
+
description: 'Add a tag to an item',
|
|
244
|
+
inputSchema: addTagSchema
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
name: 'remove_tag',
|
|
248
|
+
description: 'Remove a tag from an item',
|
|
249
|
+
inputSchema: removeTagSchema
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
name: 'get_item_tags',
|
|
253
|
+
description: 'Get all tags for an item',
|
|
254
|
+
inputSchema: getItemTagsSchema
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
name: 'create_tag',
|
|
258
|
+
description: 'Create a new tag',
|
|
259
|
+
inputSchema: createTagSchema
|
|
260
|
+
},
|
|
261
|
+
// Item Tools
|
|
262
|
+
{
|
|
263
|
+
name: 'search_items',
|
|
264
|
+
description: 'Search items by title',
|
|
265
|
+
inputSchema: searchItemsSchema
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
name: 'get_item_details',
|
|
269
|
+
description: 'Get detailed information about an item',
|
|
270
|
+
inputSchema: getItemDetailsSchema
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
name: 'add_item_to_collection',
|
|
274
|
+
description: 'Add an item to a collection',
|
|
275
|
+
inputSchema: addItemToCollectionSchema
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
name: 'remove_item_from_collection',
|
|
279
|
+
description: 'Remove an item from a collection',
|
|
280
|
+
inputSchema: removeItemFromCollectionSchema
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
name: 'get_collection_items',
|
|
284
|
+
description: 'Get all items in a collection',
|
|
285
|
+
inputSchema: getCollectionItemsSchema
|
|
286
|
+
},
|
|
287
|
+
// Abstract/Note Tools
|
|
288
|
+
{
|
|
289
|
+
name: 'get_item_abstract',
|
|
290
|
+
description: 'Get the abstract of an item',
|
|
291
|
+
inputSchema: getItemAbstractSchema
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
name: 'set_item_abstract',
|
|
295
|
+
description: 'Set or update the abstract of an item',
|
|
296
|
+
inputSchema: setItemAbstractSchema
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
name: 'get_item_notes',
|
|
300
|
+
description: 'Get all notes attached to an item',
|
|
301
|
+
inputSchema: getItemNotesSchema
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
name: 'add_item_note',
|
|
305
|
+
description: 'Add a note to an item',
|
|
306
|
+
inputSchema: addItemNoteSchema
|
|
307
|
+
},
|
|
308
|
+
// PDF Tools
|
|
309
|
+
{
|
|
310
|
+
name: 'extract_pdf_text',
|
|
311
|
+
description: 'Extract full text from a PDF attachment',
|
|
312
|
+
inputSchema: extractPDFTextSchema
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
name: 'get_pdf_summary',
|
|
316
|
+
description: 'Get summary information about a PDF',
|
|
317
|
+
inputSchema: getPDFSummarySchema
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
name: 'get_item_pdfs',
|
|
321
|
+
description: 'Get all PDF attachments for an item',
|
|
322
|
+
inputSchema: getItemPDFsSchema
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
name: 'search_pdf',
|
|
326
|
+
description: 'Search within a PDF for specific text',
|
|
327
|
+
inputSchema: searchPDFSchema
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
name: 'generate_abstract_from_pdf',
|
|
331
|
+
description: 'Extract and generate an abstract from PDF content',
|
|
332
|
+
inputSchema: generateAbstractFromPDFSchema
|
|
333
|
+
},
|
|
334
|
+
// Identifier Tools
|
|
335
|
+
{
|
|
336
|
+
name: 'find_by_doi',
|
|
337
|
+
description: 'Find an item by its DOI',
|
|
338
|
+
inputSchema: findByDOISchema
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
name: 'find_by_isbn',
|
|
342
|
+
description: 'Find an item by its ISBN',
|
|
343
|
+
inputSchema: findByISBNSchema
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
name: 'find_by_identifier',
|
|
347
|
+
description: 'Find an item by any identifier (DOI, ISBN, PMID, arXiv, URL)',
|
|
348
|
+
inputSchema: findByIdentifierSchema
|
|
349
|
+
},
|
|
350
|
+
// Annotation Tools
|
|
351
|
+
{
|
|
352
|
+
name: 'get_item_annotations',
|
|
353
|
+
description: 'Get all annotations (highlights, notes, etc.) from an item\'s PDF attachments',
|
|
354
|
+
inputSchema: getItemAnnotationsSchema
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
name: 'get_attachment_annotations',
|
|
358
|
+
description: 'Get annotations from a specific PDF attachment',
|
|
359
|
+
inputSchema: getAttachmentAnnotationsSchema
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
name: 'get_annotations_by_type',
|
|
363
|
+
description: 'Get annotations filtered by type (highlight, note, image, ink, underline)',
|
|
364
|
+
inputSchema: getAnnotationsByTypeSchema
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
name: 'get_annotations_by_color',
|
|
368
|
+
description: 'Get annotations filtered by color',
|
|
369
|
+
inputSchema: getAnnotationsByColorSchema
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
name: 'search_annotations',
|
|
373
|
+
description: 'Search annotations by text content',
|
|
374
|
+
inputSchema: searchAnnotationsSchema
|
|
375
|
+
},
|
|
376
|
+
// Fulltext Search Tools
|
|
377
|
+
{
|
|
378
|
+
name: 'search_fulltext',
|
|
379
|
+
description: 'Search in Zotero\'s fulltext index (searches indexed PDF content)',
|
|
380
|
+
inputSchema: searchFulltextSchema
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
name: 'get_fulltext_content',
|
|
384
|
+
description: 'Get the indexed fulltext content of an attachment',
|
|
385
|
+
inputSchema: getFulltextContentSchema
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
name: 'search_fulltext_with_context',
|
|
389
|
+
description: 'Search fulltext and return matching context snippets',
|
|
390
|
+
inputSchema: searchFulltextWithContextSchema
|
|
391
|
+
},
|
|
392
|
+
// Similar Items Tools
|
|
393
|
+
{
|
|
394
|
+
name: 'get_related_items',
|
|
395
|
+
description: 'Get manually linked related items',
|
|
396
|
+
inputSchema: getRelatedItemsSchema
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
name: 'find_similar_by_tags',
|
|
400
|
+
description: 'Find items with similar tags',
|
|
401
|
+
inputSchema: findSimilarByTagsSchema
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
name: 'find_similar_by_creators',
|
|
405
|
+
description: 'Find items by the same authors/creators',
|
|
406
|
+
inputSchema: findSimilarByCreatorsSchema
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
name: 'find_similar_by_collection',
|
|
410
|
+
description: 'Find items in the same collections',
|
|
411
|
+
inputSchema: findSimilarByCollectionSchema
|
|
412
|
+
},
|
|
413
|
+
// Utility Tools
|
|
414
|
+
{
|
|
415
|
+
name: 'get_database_info',
|
|
416
|
+
description: 'Get information about the Zotero database',
|
|
417
|
+
inputSchema: getDatabaseInfoSchema
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
name: 'raw_query',
|
|
421
|
+
description: 'Execute a raw SQL SELECT query (read-only)',
|
|
422
|
+
inputSchema: rawQuerySchema
|
|
423
|
+
}
|
|
424
|
+
];
|
|
425
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "zotero-bridge",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"mcpName": "io.github.combjellyshen/zotero-bridge",
|
|
5
|
+
"description": "ZoteroBridge - MCP Server for Zotero SQLite Database Integration",
|
|
6
|
+
"author": "Combjellyshen",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"main": "dist/index.js",
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
|
+
"bin": {
|
|
12
|
+
"zotero-bridge": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "tsc",
|
|
16
|
+
"dev": "tsc --watch",
|
|
17
|
+
"start": "node dist/index.js",
|
|
18
|
+
"test": "node test/run-test.mjs",
|
|
19
|
+
"lint": "eslint src/**/*.ts",
|
|
20
|
+
"clean": "rimraf dist"
|
|
21
|
+
},
|
|
22
|
+
"keywords": [
|
|
23
|
+
"zotero",
|
|
24
|
+
"mcp",
|
|
25
|
+
"model-context-protocol",
|
|
26
|
+
"sqlite",
|
|
27
|
+
"reference-management",
|
|
28
|
+
"pdf",
|
|
29
|
+
"research"
|
|
30
|
+
],
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "https://github.com/Combjellyshen/ZoteroBridge"
|
|
34
|
+
},
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">=18.0.0"
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
40
|
+
"sql.js": "^1.10.0",
|
|
41
|
+
"pdf-parse": "^1.1.1",
|
|
42
|
+
"zod": "^3.22.0"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@types/node": "^20.10.0",
|
|
46
|
+
"@types/sql.js": "^1.4.9",
|
|
47
|
+
"rimraf": "^5.0.5",
|
|
48
|
+
"typescript": "^5.3.0"
|
|
49
|
+
}
|
|
50
|
+
}
|
package/server.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
+
"name": "io.github.combjellyshen/zotero-bridge",
|
|
4
|
+
"description": "ZoteroBridge - MCP Server for Zotero SQLite Database Integration. Direct access to Zotero's SQLite database for collection management, tagging, PDF reading, and more.",
|
|
5
|
+
"repository": {
|
|
6
|
+
"url": "https://github.com/Combjellyshen/ZoteroBridge",
|
|
7
|
+
"source": "github"
|
|
8
|
+
},
|
|
9
|
+
"version": "1.0.1",
|
|
10
|
+
"packages": [
|
|
11
|
+
{
|
|
12
|
+
"registryType": "npm",
|
|
13
|
+
"identifier": "zotero-bridge",
|
|
14
|
+
"version": "1.0.1",
|
|
15
|
+
"transport": {
|
|
16
|
+
"type": "stdio"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|