@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.
- package/LICENSE +21 -0
- package/README.md +240 -0
- package/bin/cli.mjs +117 -0
- package/build/scripts/start-server.d.ts +6 -0
- package/build/scripts/start-server.d.ts.map +1 -0
- package/build/scripts/start-server.js +21 -0
- package/build/scripts/start-server.js.map +1 -0
- package/build/src/init-server.d.ts +29 -0
- package/build/src/init-server.d.ts.map +1 -0
- package/build/src/init-server.js +32 -0
- package/build/src/init-server.js.map +1 -0
- package/build/src/tools/composite/blocks.d.ts +16 -0
- package/build/src/tools/composite/blocks.d.ts.map +1 -0
- package/build/src/tools/composite/blocks.js +104 -0
- package/build/src/tools/composite/blocks.js.map +1 -0
- package/build/src/tools/composite/comments.d.ts +16 -0
- package/build/src/tools/composite/comments.d.ts.map +1 -0
- package/build/src/tools/composite/comments.js +69 -0
- package/build/src/tools/composite/comments.js.map +1 -0
- package/build/src/tools/composite/content.d.ts +13 -0
- package/build/src/tools/composite/content.d.ts.map +1 -0
- package/build/src/tools/composite/content.js +50 -0
- package/build/src/tools/composite/content.js.map +1 -0
- package/build/src/tools/composite/databases.d.ts +33 -0
- package/build/src/tools/composite/databases.d.ts.map +1 -0
- package/build/src/tools/composite/databases.js +419 -0
- package/build/src/tools/composite/databases.js.map +1 -0
- package/build/src/tools/composite/pages.d.ts +24 -0
- package/build/src/tools/composite/pages.d.ts.map +1 -0
- package/build/src/tools/composite/pages.js +316 -0
- package/build/src/tools/composite/pages.js.map +1 -0
- package/build/src/tools/composite/search.d.ts +23 -0
- package/build/src/tools/composite/search.d.ts.map +1 -0
- package/build/src/tools/composite/search.js +94 -0
- package/build/src/tools/composite/search.js.map +1 -0
- package/build/src/tools/composite/users.d.ts +15 -0
- package/build/src/tools/composite/users.d.ts.map +1 -0
- package/build/src/tools/composite/users.js +93 -0
- package/build/src/tools/composite/users.js.map +1 -0
- package/build/src/tools/composite/workspace.d.ts +25 -0
- package/build/src/tools/composite/workspace.d.ts.map +1 -0
- package/build/src/tools/composite/workspace.js +72 -0
- package/build/src/tools/composite/workspace.js.map +1 -0
- package/build/src/tools/helpers/errors.d.ts +43 -0
- package/build/src/tools/helpers/errors.d.ts.map +1 -0
- package/build/src/tools/helpers/errors.js +162 -0
- package/build/src/tools/helpers/errors.js.map +1 -0
- package/build/src/tools/helpers/markdown.d.ts +45 -0
- package/build/src/tools/helpers/markdown.d.ts.map +1 -0
- package/build/src/tools/helpers/markdown.js +320 -0
- package/build/src/tools/helpers/markdown.js.map +1 -0
- package/build/src/tools/helpers/pagination.d.ts +42 -0
- package/build/src/tools/helpers/pagination.d.ts.map +1 -0
- package/build/src/tools/helpers/pagination.js +72 -0
- package/build/src/tools/helpers/pagination.js.map +1 -0
- package/build/src/tools/helpers/properties.d.ts +10 -0
- package/build/src/tools/helpers/properties.d.ts.map +1 -0
- package/build/src/tools/helpers/properties.js +57 -0
- package/build/src/tools/helpers/properties.js.map +1 -0
- package/build/src/tools/helpers/richtext.d.ts +85 -0
- package/build/src/tools/helpers/richtext.d.ts.map +1 -0
- package/build/src/tools/helpers/richtext.js +146 -0
- package/build/src/tools/helpers/richtext.js.map +1 -0
- package/build/src/tools/registry.d.ts +10 -0
- package/build/src/tools/registry.d.ts.map +1 -0
- package/build/src/tools/registry.js +342 -0
- package/build/src/tools/registry.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -0
- 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"}
|