@n24q02m/better-notion-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.
Files changed (69) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +240 -0
  3. package/bin/cli.mjs +117 -0
  4. package/build/scripts/start-server.d.ts +6 -0
  5. package/build/scripts/start-server.d.ts.map +1 -0
  6. package/build/scripts/start-server.js +21 -0
  7. package/build/scripts/start-server.js.map +1 -0
  8. package/build/src/init-server.d.ts +29 -0
  9. package/build/src/init-server.d.ts.map +1 -0
  10. package/build/src/init-server.js +32 -0
  11. package/build/src/init-server.js.map +1 -0
  12. package/build/src/tools/composite/blocks.d.ts +16 -0
  13. package/build/src/tools/composite/blocks.d.ts.map +1 -0
  14. package/build/src/tools/composite/blocks.js +104 -0
  15. package/build/src/tools/composite/blocks.js.map +1 -0
  16. package/build/src/tools/composite/comments.d.ts +16 -0
  17. package/build/src/tools/composite/comments.d.ts.map +1 -0
  18. package/build/src/tools/composite/comments.js +69 -0
  19. package/build/src/tools/composite/comments.js.map +1 -0
  20. package/build/src/tools/composite/content.d.ts +13 -0
  21. package/build/src/tools/composite/content.d.ts.map +1 -0
  22. package/build/src/tools/composite/content.js +50 -0
  23. package/build/src/tools/composite/content.js.map +1 -0
  24. package/build/src/tools/composite/databases.d.ts +33 -0
  25. package/build/src/tools/composite/databases.d.ts.map +1 -0
  26. package/build/src/tools/composite/databases.js +419 -0
  27. package/build/src/tools/composite/databases.js.map +1 -0
  28. package/build/src/tools/composite/pages.d.ts +24 -0
  29. package/build/src/tools/composite/pages.d.ts.map +1 -0
  30. package/build/src/tools/composite/pages.js +316 -0
  31. package/build/src/tools/composite/pages.js.map +1 -0
  32. package/build/src/tools/composite/search.d.ts +23 -0
  33. package/build/src/tools/composite/search.d.ts.map +1 -0
  34. package/build/src/tools/composite/search.js +94 -0
  35. package/build/src/tools/composite/search.js.map +1 -0
  36. package/build/src/tools/composite/users.d.ts +15 -0
  37. package/build/src/tools/composite/users.d.ts.map +1 -0
  38. package/build/src/tools/composite/users.js +93 -0
  39. package/build/src/tools/composite/users.js.map +1 -0
  40. package/build/src/tools/composite/workspace.d.ts +25 -0
  41. package/build/src/tools/composite/workspace.d.ts.map +1 -0
  42. package/build/src/tools/composite/workspace.js +72 -0
  43. package/build/src/tools/composite/workspace.js.map +1 -0
  44. package/build/src/tools/helpers/errors.d.ts +43 -0
  45. package/build/src/tools/helpers/errors.d.ts.map +1 -0
  46. package/build/src/tools/helpers/errors.js +162 -0
  47. package/build/src/tools/helpers/errors.js.map +1 -0
  48. package/build/src/tools/helpers/markdown.d.ts +45 -0
  49. package/build/src/tools/helpers/markdown.d.ts.map +1 -0
  50. package/build/src/tools/helpers/markdown.js +320 -0
  51. package/build/src/tools/helpers/markdown.js.map +1 -0
  52. package/build/src/tools/helpers/pagination.d.ts +42 -0
  53. package/build/src/tools/helpers/pagination.d.ts.map +1 -0
  54. package/build/src/tools/helpers/pagination.js +72 -0
  55. package/build/src/tools/helpers/pagination.js.map +1 -0
  56. package/build/src/tools/helpers/properties.d.ts +10 -0
  57. package/build/src/tools/helpers/properties.d.ts.map +1 -0
  58. package/build/src/tools/helpers/properties.js +57 -0
  59. package/build/src/tools/helpers/properties.js.map +1 -0
  60. package/build/src/tools/helpers/richtext.d.ts +85 -0
  61. package/build/src/tools/helpers/richtext.d.ts.map +1 -0
  62. package/build/src/tools/helpers/richtext.js +146 -0
  63. package/build/src/tools/helpers/richtext.js.map +1 -0
  64. package/build/src/tools/registry.d.ts +10 -0
  65. package/build/src/tools/registry.d.ts.map +1 -0
  66. package/build/src/tools/registry.js +342 -0
  67. package/build/src/tools/registry.js.map +1 -0
  68. package/build/tsconfig.tsbuildinfo +1 -0
  69. package/package.json +71 -0
@@ -0,0 +1,419 @@
1
+ /**
2
+ * Databases Mega Tool - Updated for Notion API 2025-09-03
3
+ * Supports data_sources architecture
4
+ */
5
+ import { NotionMCPError, withErrorHandling } from '../helpers/errors.js';
6
+ import { autoPaginate } from '../helpers/pagination.js';
7
+ import { convertToNotionProperties } from '../helpers/properties.js';
8
+ import * as RichText from '../helpers/richtext.js';
9
+ /**
10
+ * Unified databases tool - handles all database operations
11
+ */
12
+ export async function databases(notion, input) {
13
+ return withErrorHandling(async () => {
14
+ switch (input.action) {
15
+ case 'create':
16
+ return await createDatabase(notion, input);
17
+ case 'get':
18
+ return await getDatabase(notion, input);
19
+ case 'query':
20
+ return await queryDatabase(notion, input);
21
+ case 'create_page':
22
+ return await createDatabasePages(notion, input);
23
+ case 'update_page':
24
+ return await updateDatabasePages(notion, input);
25
+ case 'delete_page':
26
+ return await deleteDatabasePages(notion, input);
27
+ case 'create_data_source':
28
+ return await createDataSource(notion, input);
29
+ case 'update_data_source':
30
+ return await updateDataSource(notion, input);
31
+ case 'update_database':
32
+ return await updateDatabaseContainer(notion, input);
33
+ default:
34
+ throw new NotionMCPError(`Unknown action: ${input.action}`, 'VALIDATION_ERROR', 'Supported actions: create, get, query, create_page, update_page, delete_page, create_data_source, update_data_source, update_database');
35
+ }
36
+ })();
37
+ }
38
+ /**
39
+ * Create database with initial data source
40
+ * Maps to: POST /v1/databases (API 2025-09-03)
41
+ */
42
+ async function createDatabase(notion, input) {
43
+ if (!input.parent_id || !input.title || !input.properties) {
44
+ throw new NotionMCPError('parent_id, title, and properties required for create action', 'VALIDATION_ERROR', 'Provide parent_id, title, and properties');
45
+ }
46
+ // API 2025-09-03: properties go under initial_data_source
47
+ const dbData = {
48
+ parent: { type: 'page_id', page_id: input.parent_id },
49
+ title: [RichText.text(input.title)],
50
+ initial_data_source: {
51
+ properties: input.properties
52
+ }
53
+ };
54
+ if (input.description) {
55
+ dbData.description = [RichText.text(input.description)];
56
+ }
57
+ if (input.is_inline !== undefined) {
58
+ dbData.is_inline = input.is_inline;
59
+ }
60
+ const database = await notion.databases.create(dbData);
61
+ return {
62
+ action: 'create',
63
+ database_id: database.id,
64
+ data_source_id: database.data_sources?.[0]?.id,
65
+ url: database.url,
66
+ created: true
67
+ };
68
+ }
69
+ /**
70
+ * Get database info including all data sources
71
+ * Maps to: GET /v1/databases/{id} (API 2025-09-03)
72
+ */
73
+ async function getDatabase(notion, input) {
74
+ if (!input.database_id) {
75
+ throw new NotionMCPError('database_id required for get action', 'VALIDATION_ERROR', 'Provide database_id');
76
+ }
77
+ // Get database (contains list of data_sources)
78
+ const database = await notion.databases.retrieve({
79
+ database_id: input.database_id
80
+ });
81
+ // Get detailed schema from first data source
82
+ let schema = {};
83
+ let dataSourceInfo = null;
84
+ if (database.data_sources && database.data_sources.length > 0) {
85
+ const dataSource = await notion.dataSources.retrieve({
86
+ data_source_id: database.data_sources[0].id
87
+ });
88
+ dataSourceInfo = {
89
+ id: dataSource.id,
90
+ name: dataSource.title?.[0]?.plain_text || database.data_sources[0].name
91
+ };
92
+ // Format properties for AI-friendly output
93
+ if (dataSource.properties) {
94
+ for (const [name, prop] of Object.entries(dataSource.properties)) {
95
+ const p = prop;
96
+ schema[name] = {
97
+ type: p.type,
98
+ id: p.id
99
+ };
100
+ if (p.type === 'select' && p.select?.options) {
101
+ schema[name].options = p.select.options.map((o) => o.name);
102
+ }
103
+ else if (p.type === 'multi_select' && p.multi_select?.options) {
104
+ schema[name].options = p.multi_select.options.map((o) => o.name);
105
+ }
106
+ else if (p.type === 'formula' && p.formula) {
107
+ schema[name].expression = p.formula.expression;
108
+ }
109
+ }
110
+ }
111
+ }
112
+ return {
113
+ action: 'get',
114
+ database_id: database.id,
115
+ title: database.title?.[0]?.plain_text || 'Untitled',
116
+ description: database.description?.[0]?.plain_text || '',
117
+ url: database.url,
118
+ is_inline: database.is_inline,
119
+ created_time: database.created_time,
120
+ last_edited_time: database.last_edited_time,
121
+ data_source: dataSourceInfo,
122
+ schema
123
+ };
124
+ }
125
+ /**
126
+ * Query database (via data source)
127
+ * Maps to: POST /v1/data_sources/{id}/query (API 2025-09-03)
128
+ */
129
+ async function queryDatabase(notion, input) {
130
+ if (!input.database_id) {
131
+ throw new NotionMCPError('database_id required for query action', 'VALIDATION_ERROR', 'Provide database_id');
132
+ }
133
+ // First, get data source ID from database
134
+ const database = await notion.databases.retrieve({
135
+ database_id: input.database_id
136
+ });
137
+ if (!database.data_sources || database.data_sources.length === 0) {
138
+ throw new NotionMCPError('No data sources found in database', 'VALIDATION_ERROR', 'Database has no data sources');
139
+ }
140
+ const dataSourceId = database.data_sources[0].id;
141
+ let filter = input.filters;
142
+ // Smart search across text properties
143
+ if (input.search && !filter) {
144
+ const dataSource = await notion.dataSources.retrieve({
145
+ data_source_id: dataSourceId
146
+ });
147
+ const textProps = Object.entries(dataSource.properties || {})
148
+ .filter(([_, prop]) => ['title', 'rich_text'].includes(prop.type))
149
+ .map(([name]) => name);
150
+ if (textProps.length > 0) {
151
+ filter = {
152
+ or: textProps.map(propName => ({
153
+ property: propName,
154
+ rich_text: { contains: input.search }
155
+ }))
156
+ };
157
+ }
158
+ }
159
+ const queryParams = { data_source_id: dataSourceId };
160
+ if (filter)
161
+ queryParams.filter = filter;
162
+ if (input.sorts)
163
+ queryParams.sorts = input.sorts;
164
+ // Fetch with pagination
165
+ const allResults = await autoPaginate(async (cursor) => {
166
+ const response = await notion.dataSources.query({
167
+ ...queryParams,
168
+ start_cursor: cursor,
169
+ page_size: 100
170
+ });
171
+ return {
172
+ results: response.results,
173
+ next_cursor: response.next_cursor,
174
+ has_more: response.has_more
175
+ };
176
+ });
177
+ // Limit results if specified
178
+ const results = input.limit ? allResults.slice(0, input.limit) : allResults;
179
+ // Format results
180
+ const formattedResults = results.map((page) => {
181
+ const props = { page_id: page.id, url: page.url };
182
+ for (const [key, prop] of Object.entries(page.properties)) {
183
+ const p = prop;
184
+ if (p.type === 'title' && p.title) {
185
+ props[key] = p.title.map((t) => t.plain_text).join('');
186
+ }
187
+ else if (p.type === 'rich_text' && p.rich_text) {
188
+ props[key] = p.rich_text.map((t) => t.plain_text).join('');
189
+ }
190
+ else if (p.type === 'select' && p.select) {
191
+ props[key] = p.select.name;
192
+ }
193
+ else if (p.type === 'multi_select' && p.multi_select) {
194
+ props[key] = p.multi_select.map((s) => s.name);
195
+ }
196
+ else if (p.type === 'number') {
197
+ props[key] = p.number;
198
+ }
199
+ else if (p.type === 'checkbox') {
200
+ props[key] = p.checkbox;
201
+ }
202
+ else if (p.type === 'url') {
203
+ props[key] = p.url;
204
+ }
205
+ else if (p.type === 'email') {
206
+ props[key] = p.email;
207
+ }
208
+ else if (p.type === 'phone_number') {
209
+ props[key] = p.phone_number;
210
+ }
211
+ else if (p.type === 'date' && p.date) {
212
+ props[key] = p.date.start + (p.date.end ? ` to ${p.date.end}` : '');
213
+ }
214
+ }
215
+ return props;
216
+ });
217
+ return {
218
+ action: 'query',
219
+ database_id: input.database_id,
220
+ data_source_id: dataSourceId,
221
+ total: formattedResults.length,
222
+ results: formattedResults
223
+ };
224
+ }
225
+ /**
226
+ * Create pages in database (via data source)
227
+ * Maps to: Multiple POST /v1/pages with data_source_id parent (API 2025-09-03)
228
+ */
229
+ async function createDatabasePages(notion, input) {
230
+ if (!input.database_id) {
231
+ throw new NotionMCPError('database_id required', 'VALIDATION_ERROR', 'Provide database_id');
232
+ }
233
+ // Get data source ID from database
234
+ const database = await notion.databases.retrieve({
235
+ database_id: input.database_id
236
+ });
237
+ if (!database.data_sources || database.data_sources.length === 0) {
238
+ throw new NotionMCPError('No data sources found in database', 'VALIDATION_ERROR', 'Database has no data sources');
239
+ }
240
+ const dataSourceId = database.data_sources[0].id;
241
+ const items = input.pages || (input.page_properties ? [{ properties: input.page_properties }] : []);
242
+ if (items.length === 0) {
243
+ throw new NotionMCPError('pages or page_properties required', 'VALIDATION_ERROR', 'Provide items to create');
244
+ }
245
+ const results = [];
246
+ for (const item of items) {
247
+ const properties = convertToNotionProperties(item.properties);
248
+ const page = await notion.pages.create({
249
+ parent: { type: 'data_source_id', data_source_id: dataSourceId },
250
+ properties
251
+ });
252
+ results.push({
253
+ page_id: page.id,
254
+ url: page.url,
255
+ created: true
256
+ });
257
+ }
258
+ return {
259
+ action: 'create_page',
260
+ database_id: input.database_id,
261
+ data_source_id: dataSourceId,
262
+ processed: results.length,
263
+ results
264
+ };
265
+ }
266
+ /**
267
+ * Update pages in database (bulk)
268
+ * Maps to: Multiple PATCH /v1/pages/{id}
269
+ */
270
+ async function updateDatabasePages(notion, input) {
271
+ const items = input.pages || (input.page_id && input.page_properties ?
272
+ [{ page_id: input.page_id, properties: input.page_properties }] : []);
273
+ if (items.length === 0) {
274
+ throw new NotionMCPError('pages or page_id+page_properties required', 'VALIDATION_ERROR', 'Provide items to update');
275
+ }
276
+ const results = [];
277
+ for (const item of items) {
278
+ if (!item.page_id) {
279
+ throw new NotionMCPError('page_id required for each item', 'VALIDATION_ERROR', 'Provide page_id');
280
+ }
281
+ const properties = convertToNotionProperties(item.properties);
282
+ await notion.pages.update({
283
+ page_id: item.page_id,
284
+ properties
285
+ });
286
+ results.push({
287
+ page_id: item.page_id,
288
+ updated: true
289
+ });
290
+ }
291
+ return {
292
+ action: 'update_page',
293
+ processed: results.length,
294
+ results
295
+ };
296
+ }
297
+ /**
298
+ * Delete pages in database (bulk archive)
299
+ * Maps to: Multiple PATCH /v1/pages/{id} with archived: true
300
+ */
301
+ async function deleteDatabasePages(notion, input) {
302
+ const pageIds = input.page_ids || (input.page_id ? [input.page_id] : []) ||
303
+ (input.pages ? input.pages.map(p => p.page_id).filter(Boolean) : []);
304
+ if (pageIds.length === 0) {
305
+ throw new NotionMCPError('page_id or page_ids required', 'VALIDATION_ERROR', 'Provide page IDs to delete');
306
+ }
307
+ const results = [];
308
+ for (const pageId of pageIds) {
309
+ await notion.pages.update({
310
+ page_id: pageId,
311
+ archived: true
312
+ });
313
+ results.push({
314
+ page_id: pageId,
315
+ deleted: true
316
+ });
317
+ }
318
+ return {
319
+ action: 'delete_page',
320
+ processed: results.length,
321
+ results
322
+ };
323
+ }
324
+ /**
325
+ * Create additional data source for existing database
326
+ * Maps to: POST /v1/data_sources (API 2025-09-03)
327
+ */
328
+ async function createDataSource(notion, input) {
329
+ if (!input.database_id || !input.title || !input.properties) {
330
+ throw new NotionMCPError('database_id, title, and properties required', 'VALIDATION_ERROR', 'Provide database_id, title, and properties for new data source');
331
+ }
332
+ const dataSourceData = {
333
+ parent: { type: 'database_id', database_id: input.database_id },
334
+ title: [RichText.text(input.title)],
335
+ properties: input.properties
336
+ };
337
+ if (input.description) {
338
+ dataSourceData.description = [RichText.text(input.description)];
339
+ }
340
+ const dataSource = await notion.dataSources.create(dataSourceData);
341
+ return {
342
+ action: 'create_data_source',
343
+ data_source_id: dataSource.id,
344
+ database_id: input.database_id,
345
+ created: true
346
+ };
347
+ }
348
+ /**
349
+ * Update data source (title, description, properties/schema)
350
+ * Maps to: PATCH /v1/data_sources/{id} (API 2025-09-03)
351
+ */
352
+ async function updateDataSource(notion, input) {
353
+ if (!input.data_source_id) {
354
+ throw new NotionMCPError('data_source_id required', 'VALIDATION_ERROR', 'Provide data_source_id');
355
+ }
356
+ const updates = {};
357
+ if (input.title) {
358
+ updates.title = [RichText.text(input.title)];
359
+ }
360
+ if (input.description) {
361
+ updates.description = [RichText.text(input.description)];
362
+ }
363
+ if (input.properties) {
364
+ updates.properties = input.properties;
365
+ }
366
+ if (Object.keys(updates).length === 0) {
367
+ throw new NotionMCPError('No updates provided', 'VALIDATION_ERROR', 'Provide title, description, or properties to update');
368
+ }
369
+ await notion.dataSources.update({
370
+ data_source_id: input.data_source_id,
371
+ ...updates
372
+ });
373
+ return {
374
+ action: 'update_data_source',
375
+ data_source_id: input.data_source_id,
376
+ updated: true
377
+ };
378
+ }
379
+ /**
380
+ * Update database container (parent, title, is_inline, icon, cover)
381
+ * Maps to: PATCH /v1/databases/{id} (API 2025-09-03)
382
+ */
383
+ async function updateDatabaseContainer(notion, input) {
384
+ if (!input.database_id) {
385
+ throw new NotionMCPError('database_id required', 'VALIDATION_ERROR', 'Provide database_id');
386
+ }
387
+ const updates = {};
388
+ if (input.parent_id) {
389
+ updates.parent = { type: 'page_id', page_id: input.parent_id };
390
+ }
391
+ if (input.title) {
392
+ updates.title = [RichText.text(input.title)];
393
+ }
394
+ if (input.description) {
395
+ updates.description = [RichText.text(input.description)];
396
+ }
397
+ if (input.is_inline !== undefined) {
398
+ updates.is_inline = input.is_inline;
399
+ }
400
+ if (input.icon) {
401
+ updates.icon = { type: 'emoji', emoji: input.icon };
402
+ }
403
+ if (input.cover) {
404
+ updates.cover = { type: 'external', external: { url: input.cover } };
405
+ }
406
+ if (Object.keys(updates).length === 0) {
407
+ throw new NotionMCPError('No updates provided', 'VALIDATION_ERROR', 'Provide parent_id, title, description, is_inline, icon, or cover');
408
+ }
409
+ await notion.databases.update({
410
+ database_id: input.database_id,
411
+ ...updates
412
+ });
413
+ return {
414
+ action: 'update_database',
415
+ database_id: input.database_id,
416
+ updated: true
417
+ };
418
+ }
419
+ //# sourceMappingURL=databases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"databases.js","sourceRoot":"","sources":["../../../../src/tools/composite/databases.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Pages Mega Tool
3
+ * All page operations in one unified interface
4
+ */
5
+ import { Client } from '@notionhq/client';
6
+ export interface PagesInput {
7
+ action: 'create' | 'get' | 'update' | 'archive' | 'restore' | 'duplicate';
8
+ page_id?: string;
9
+ page_ids?: string[];
10
+ title?: string;
11
+ content?: string;
12
+ append_content?: string;
13
+ prepend_content?: string;
14
+ parent_id?: string;
15
+ properties?: Record<string, any>;
16
+ icon?: string;
17
+ cover?: string;
18
+ archived?: boolean;
19
+ }
20
+ /**
21
+ * Unified pages tool - handles all page operations
22
+ */
23
+ export declare function pages(notion: Client, input: PagesInput): Promise<any>;
24
+ //# sourceMappingURL=pages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/pages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAOzC,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAA;IAGzE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IAGnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IAGd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,wBAAsB,KAAK,CACzB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,GAAG,CAAC,CA2Bd"}