@sargonpiraev/notion-mcp-server 0.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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Sargon Piraev
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 ADDED
@@ -0,0 +1,23 @@
1
+ # @sargonpiraev/notion-mcp-server
2
+
3
+ MCP server for Notion API
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install -g @sargonpiraev/notion-mcp-server
9
+ ```
10
+
11
+ ## Home
12
+
13
+ This package lives in the public monorepo:
14
+
15
+ https://github.com/sargonpiraev/packages/tree/main/packages/notion-mcp-server
16
+
17
+ ## Run
18
+
19
+ ```bash
20
+ npx @sargonpiraev/notion-mcp-server
21
+ ```
22
+
23
+ Configure API credentials via environment variables (see `.env.example` when provided).
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":""}
package/build/main.js ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
+ import { mcpServer } from './server.js';
4
+ async function main() {
5
+ const transport = new StdioServerTransport();
6
+ await mcpServer.server.connect(transport);
7
+ }
8
+ main().catch((error) => {
9
+ console.error('Server error:', error);
10
+ process.exit(1);
11
+ });
12
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAC5C,MAAM,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;AAC3C,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { z } from 'zod';
3
+ import { AxiosInstance } from 'axios';
4
+ export declare const envSchema: z.ZodObject<{
5
+ NOTION_API_TOKEN: z.ZodString;
6
+ }, "strip", z.ZodTypeAny, {
7
+ NOTION_API_TOKEN: string;
8
+ }, {
9
+ NOTION_API_TOKEN: string;
10
+ }>;
11
+ export declare const mcpServer: McpServer;
12
+ export declare const env: {
13
+ NOTION_API_TOKEN: string;
14
+ };
15
+ export declare const apiClient: AxiosInstance;
16
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAM5C,eAAO,MAAM,SAAS;;;;;;EAEpB,CAAA;AAEF,eAAO,MAAM,SAAS,WAYrB,CAAA;AAED,eAAO,MAAM,GAAG;;CAA+B,CAAA;AAE/C,eAAO,MAAM,SAAS,EAAE,aAMtB,CAAA"}
@@ -0,0 +1,670 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { z } from 'zod';
3
+ import axios from 'axios';
4
+ import dotenv from 'dotenv';
5
+ dotenv.config();
6
+ export const envSchema = z.object({
7
+ NOTION_API_TOKEN: z.string(),
8
+ });
9
+ export const mcpServer = new McpServer({
10
+ name: '@sargonpiraev/notion-mcp-server',
11
+ version: '1',
12
+ }, {
13
+ instructions: ``,
14
+ capabilities: {
15
+ tools: {},
16
+ logging: {},
17
+ },
18
+ });
19
+ export const env = envSchema.parse(process.env);
20
+ export const apiClient = axios.create({
21
+ baseURL: 'https://api.notion.com',
22
+ headers: {
23
+ Accept: 'application/json',
24
+ },
25
+ timeout: 30000,
26
+ });
27
+ apiClient.interceptors.request.use((config) => {
28
+ if (env.NOTION_API_TOKEN) {
29
+ config.headers['Authorization'] = env.NOTION_API_TOKEN;
30
+ }
31
+ return config;
32
+ }, (error) => {
33
+ return Promise.reject(error);
34
+ });
35
+ function handleResult(data) {
36
+ return {
37
+ content: [
38
+ {
39
+ type: 'text',
40
+ text: JSON.stringify(data, null, 2),
41
+ },
42
+ ],
43
+ };
44
+ }
45
+ function handleError(error) {
46
+ console.error(error);
47
+ if (axios.isAxiosError(error)) {
48
+ const message = error.response?.data?.message || error.message;
49
+ return {
50
+ isError: true,
51
+ content: [{ type: 'text', text: `API Error: ${message}` }],
52
+ };
53
+ }
54
+ return {
55
+ isError: true,
56
+ content: [{ type: 'text', text: `Error: ${error}` }],
57
+ };
58
+ }
59
+ // Register tools
60
+ mcpServer.tool('get-user', `Retrieve a user`, {
61
+ userId: z.string(),
62
+ }, async (args, extra) => {
63
+ try {
64
+ const { userId, ...otherParams } = args;
65
+ const url = `/v1/users/${userId}`;
66
+ // Map camelCase to original parameter names for API request
67
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
68
+ const mappedParams = { ...otherParams };
69
+ if ('userId' in mappedParams) {
70
+ mappedParams['user_id'] = mappedParams['userId'];
71
+ delete mappedParams['userId'];
72
+ }
73
+ // Extract authorization token from HTTP request headers
74
+ const authorization = extra?.requestInfo?.headers?.authorization;
75
+ const bearer = authorization?.replace('Bearer ', '');
76
+ const response = await apiClient.request({
77
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
78
+ method: 'GET',
79
+ url: url,
80
+ params: mappedParams,
81
+ });
82
+ return handleResult(response.data);
83
+ }
84
+ catch (error) {
85
+ return handleError(error);
86
+ }
87
+ });
88
+ mcpServer.tool('get-users', `List all users`, {
89
+ startCursor: z.string().optional(),
90
+ pageSize: z.string().optional(),
91
+ }, async (args, extra) => {
92
+ try {
93
+ const otherParams = args;
94
+ // Map camelCase to original parameter names for API request
95
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
96
+ const mappedParams = { ...otherParams };
97
+ if ('startCursor' in mappedParams) {
98
+ mappedParams['start_cursor'] = mappedParams['startCursor'];
99
+ delete mappedParams['startCursor'];
100
+ }
101
+ if ('pageSize' in mappedParams) {
102
+ mappedParams['page_size'] = mappedParams['pageSize'];
103
+ delete mappedParams['pageSize'];
104
+ }
105
+ // Extract authorization token from HTTP request headers
106
+ const authorization = extra?.requestInfo?.headers?.authorization;
107
+ const bearer = authorization?.replace('Bearer ', '');
108
+ const response = await apiClient.request({
109
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
110
+ method: 'GET',
111
+ url: '/v1/users',
112
+ params: mappedParams,
113
+ });
114
+ return handleResult(response.data);
115
+ }
116
+ catch (error) {
117
+ return handleError(error);
118
+ }
119
+ });
120
+ mcpServer.tool('get-self', `Retrieve your token&#x27;s bot user`, {}, async (args, extra) => {
121
+ try {
122
+ const otherParams = args;
123
+ // Map camelCase to original parameter names for API request
124
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
125
+ const mappedParams = { ...otherParams };
126
+ // Extract authorization token from HTTP request headers
127
+ const authorization = extra?.requestInfo?.headers?.authorization;
128
+ const bearer = authorization?.replace('Bearer ', '');
129
+ const response = await apiClient.request({
130
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
131
+ method: 'GET',
132
+ url: '/v1/users/me',
133
+ params: mappedParams,
134
+ });
135
+ return handleResult(response.data);
136
+ }
137
+ catch (error) {
138
+ return handleError(error);
139
+ }
140
+ });
141
+ mcpServer.tool('post-database-query', `Query a database`, {
142
+ databaseId: z.string(),
143
+ filterProperties: z.string().optional(),
144
+ filter: z.any().optional(),
145
+ sorts: z.any().optional(),
146
+ startCursor: z.any().optional(),
147
+ pageSize: z.any().optional(),
148
+ archived: z.any().optional(),
149
+ inTrash: z.any().optional(),
150
+ }, async (args, extra) => {
151
+ try {
152
+ const { databaseId, ...otherParams } = args;
153
+ const url = `/v1/databases/${databaseId}/query`;
154
+ // Map camelCase to original parameter names for API request
155
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
156
+ const mappedParams = args.requestData || { ...otherParams };
157
+ if ('databaseId' in mappedParams) {
158
+ mappedParams['database_id'] = mappedParams['databaseId'];
159
+ delete mappedParams['databaseId'];
160
+ }
161
+ if ('filterProperties' in mappedParams) {
162
+ mappedParams['filter_properties'] = mappedParams['filterProperties'];
163
+ delete mappedParams['filterProperties'];
164
+ }
165
+ if ('startCursor' in mappedParams) {
166
+ mappedParams['start_cursor'] = mappedParams['startCursor'];
167
+ delete mappedParams['startCursor'];
168
+ }
169
+ if ('pageSize' in mappedParams) {
170
+ mappedParams['page_size'] = mappedParams['pageSize'];
171
+ delete mappedParams['pageSize'];
172
+ }
173
+ if ('inTrash' in mappedParams) {
174
+ mappedParams['in_trash'] = mappedParams['inTrash'];
175
+ delete mappedParams['inTrash'];
176
+ }
177
+ // Extract authorization token from HTTP request headers
178
+ const authorization = extra?.requestInfo?.headers?.authorization;
179
+ const bearer = authorization?.replace('Bearer ', '');
180
+ const response = await apiClient.request({
181
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
182
+ method: 'POST',
183
+ url: url,
184
+ data: mappedParams,
185
+ });
186
+ return handleResult(response.data);
187
+ }
188
+ catch (error) {
189
+ return handleError(error);
190
+ }
191
+ });
192
+ mcpServer.tool('post-search', `Search by title`, {
193
+ query: z.any().optional(),
194
+ sort: z.any().optional(),
195
+ filter: z.any().optional(),
196
+ startCursor: z.any().optional(),
197
+ pageSize: z.any().optional(),
198
+ }, async (args, extra) => {
199
+ try {
200
+ const otherParams = args;
201
+ // Map camelCase to original parameter names for API request
202
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
203
+ const mappedParams = args.requestData || { ...otherParams };
204
+ if ('startCursor' in mappedParams) {
205
+ mappedParams['start_cursor'] = mappedParams['startCursor'];
206
+ delete mappedParams['startCursor'];
207
+ }
208
+ if ('pageSize' in mappedParams) {
209
+ mappedParams['page_size'] = mappedParams['pageSize'];
210
+ delete mappedParams['pageSize'];
211
+ }
212
+ // Extract authorization token from HTTP request headers
213
+ const authorization = extra?.requestInfo?.headers?.authorization;
214
+ const bearer = authorization?.replace('Bearer ', '');
215
+ const response = await apiClient.request({
216
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
217
+ method: 'POST',
218
+ url: '/v1/search',
219
+ data: mappedParams,
220
+ });
221
+ return handleResult(response.data);
222
+ }
223
+ catch (error) {
224
+ return handleError(error);
225
+ }
226
+ });
227
+ mcpServer.tool('get-block-children', `Retrieve block children`, {
228
+ blockId: z.string(),
229
+ startCursor: z.string().optional(),
230
+ pageSize: z.string().optional(),
231
+ }, async (args, extra) => {
232
+ try {
233
+ const { blockId, ...otherParams } = args;
234
+ const url = `/v1/blocks/${blockId}/children`;
235
+ // Map camelCase to original parameter names for API request
236
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
237
+ const mappedParams = { ...otherParams };
238
+ if ('blockId' in mappedParams) {
239
+ mappedParams['block_id'] = mappedParams['blockId'];
240
+ delete mappedParams['blockId'];
241
+ }
242
+ if ('startCursor' in mappedParams) {
243
+ mappedParams['start_cursor'] = mappedParams['startCursor'];
244
+ delete mappedParams['startCursor'];
245
+ }
246
+ if ('pageSize' in mappedParams) {
247
+ mappedParams['page_size'] = mappedParams['pageSize'];
248
+ delete mappedParams['pageSize'];
249
+ }
250
+ // Extract authorization token from HTTP request headers
251
+ const authorization = extra?.requestInfo?.headers?.authorization;
252
+ const bearer = authorization?.replace('Bearer ', '');
253
+ const response = await apiClient.request({
254
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
255
+ method: 'GET',
256
+ url: url,
257
+ params: mappedParams,
258
+ });
259
+ return handleResult(response.data);
260
+ }
261
+ catch (error) {
262
+ return handleError(error);
263
+ }
264
+ });
265
+ mcpServer.tool('patch-block-children', `Append block children`, {
266
+ blockId: z.string(),
267
+ children: z.any(),
268
+ after: z.any().optional(),
269
+ }, async (args, extra) => {
270
+ try {
271
+ const { blockId, ...otherParams } = args;
272
+ const url = `/v1/blocks/${blockId}/children`;
273
+ // Map camelCase to original parameter names for API request
274
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
275
+ const mappedParams = args.requestData || { ...otherParams };
276
+ if ('blockId' in mappedParams) {
277
+ mappedParams['block_id'] = mappedParams['blockId'];
278
+ delete mappedParams['blockId'];
279
+ }
280
+ // Extract authorization token from HTTP request headers
281
+ const authorization = extra?.requestInfo?.headers?.authorization;
282
+ const bearer = authorization?.replace('Bearer ', '');
283
+ const response = await apiClient.request({
284
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
285
+ method: 'PATCH',
286
+ url: url,
287
+ data: mappedParams,
288
+ });
289
+ return handleResult(response.data);
290
+ }
291
+ catch (error) {
292
+ return handleError(error);
293
+ }
294
+ });
295
+ mcpServer.tool('retrieve-a-block', `Retrieve a block`, {
296
+ blockId: z.string(),
297
+ }, async (args, extra) => {
298
+ try {
299
+ const { blockId, ...otherParams } = args;
300
+ const url = `/v1/blocks/${blockId}`;
301
+ // Map camelCase to original parameter names for API request
302
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
303
+ const mappedParams = { ...otherParams };
304
+ if ('blockId' in mappedParams) {
305
+ mappedParams['block_id'] = mappedParams['blockId'];
306
+ delete mappedParams['blockId'];
307
+ }
308
+ // Extract authorization token from HTTP request headers
309
+ const authorization = extra?.requestInfo?.headers?.authorization;
310
+ const bearer = authorization?.replace('Bearer ', '');
311
+ const response = await apiClient.request({
312
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
313
+ method: 'GET',
314
+ url: url,
315
+ params: mappedParams,
316
+ });
317
+ return handleResult(response.data);
318
+ }
319
+ catch (error) {
320
+ return handleError(error);
321
+ }
322
+ });
323
+ mcpServer.tool('update-a-block', `Update a block`, {
324
+ blockId: z.string(),
325
+ type: z.any().optional(),
326
+ archived: z.any().optional(),
327
+ }, async (args, extra) => {
328
+ try {
329
+ const { blockId, ...otherParams } = args;
330
+ const url = `/v1/blocks/${blockId}`;
331
+ // Map camelCase to original parameter names for API request
332
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
333
+ const mappedParams = args.requestData || { ...otherParams };
334
+ if ('blockId' in mappedParams) {
335
+ mappedParams['block_id'] = mappedParams['blockId'];
336
+ delete mappedParams['blockId'];
337
+ }
338
+ // Extract authorization token from HTTP request headers
339
+ const authorization = extra?.requestInfo?.headers?.authorization;
340
+ const bearer = authorization?.replace('Bearer ', '');
341
+ const response = await apiClient.request({
342
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
343
+ method: 'PATCH',
344
+ url: url,
345
+ data: mappedParams,
346
+ });
347
+ return handleResult(response.data);
348
+ }
349
+ catch (error) {
350
+ return handleError(error);
351
+ }
352
+ });
353
+ mcpServer.tool('delete-a-block', `Delete a block`, {
354
+ blockId: z.string(),
355
+ }, async (args, extra) => {
356
+ try {
357
+ const { blockId, ...otherParams } = args;
358
+ const url = `/v1/blocks/${blockId}`;
359
+ // Map camelCase to original parameter names for API request
360
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
361
+ const mappedParams = { ...otherParams };
362
+ if ('blockId' in mappedParams) {
363
+ mappedParams['block_id'] = mappedParams['blockId'];
364
+ delete mappedParams['blockId'];
365
+ }
366
+ // Extract authorization token from HTTP request headers
367
+ const authorization = extra?.requestInfo?.headers?.authorization;
368
+ const bearer = authorization?.replace('Bearer ', '');
369
+ const response = await apiClient.request({
370
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
371
+ method: 'DELETE',
372
+ url: url,
373
+ params: mappedParams,
374
+ });
375
+ return handleResult(response.data);
376
+ }
377
+ catch (error) {
378
+ return handleError(error);
379
+ }
380
+ });
381
+ mcpServer.tool('retrieve-a-page', `Retrieve a page`, {
382
+ pageId: z.string(),
383
+ filterProperties: z.string().optional(),
384
+ }, async (args, extra) => {
385
+ try {
386
+ const { pageId, ...otherParams } = args;
387
+ const url = `/v1/pages/${pageId}`;
388
+ // Map camelCase to original parameter names for API request
389
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
390
+ const mappedParams = { ...otherParams };
391
+ if ('pageId' in mappedParams) {
392
+ mappedParams['page_id'] = mappedParams['pageId'];
393
+ delete mappedParams['pageId'];
394
+ }
395
+ if ('filterProperties' in mappedParams) {
396
+ mappedParams['filter_properties'] = mappedParams['filterProperties'];
397
+ delete mappedParams['filterProperties'];
398
+ }
399
+ // Extract authorization token from HTTP request headers
400
+ const authorization = extra?.requestInfo?.headers?.authorization;
401
+ const bearer = authorization?.replace('Bearer ', '');
402
+ const response = await apiClient.request({
403
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
404
+ method: 'GET',
405
+ url: url,
406
+ params: mappedParams,
407
+ });
408
+ return handleResult(response.data);
409
+ }
410
+ catch (error) {
411
+ return handleError(error);
412
+ }
413
+ });
414
+ mcpServer.tool('patch-page', `Update page properties`, {
415
+ pageId: z.string(),
416
+ properties: z.any().optional(),
417
+ inTrash: z.any().optional(),
418
+ archived: z.any().optional(),
419
+ icon: z.any().optional(),
420
+ cover: z.any().optional(),
421
+ }, async (args, extra) => {
422
+ try {
423
+ const { pageId, ...otherParams } = args;
424
+ const url = `/v1/pages/${pageId}`;
425
+ // Map camelCase to original parameter names for API request
426
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
427
+ const mappedParams = args.requestData || { ...otherParams };
428
+ if ('pageId' in mappedParams) {
429
+ mappedParams['page_id'] = mappedParams['pageId'];
430
+ delete mappedParams['pageId'];
431
+ }
432
+ if ('inTrash' in mappedParams) {
433
+ mappedParams['in_trash'] = mappedParams['inTrash'];
434
+ delete mappedParams['inTrash'];
435
+ }
436
+ // Extract authorization token from HTTP request headers
437
+ const authorization = extra?.requestInfo?.headers?.authorization;
438
+ const bearer = authorization?.replace('Bearer ', '');
439
+ const response = await apiClient.request({
440
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
441
+ method: 'PATCH',
442
+ url: url,
443
+ data: mappedParams,
444
+ });
445
+ return handleResult(response.data);
446
+ }
447
+ catch (error) {
448
+ return handleError(error);
449
+ }
450
+ });
451
+ mcpServer.tool('post-page', `Create a page`, {
452
+ parent: z.any(),
453
+ properties: z.any(),
454
+ children: z.any().optional(),
455
+ icon: z.any().optional(),
456
+ cover: z.any().optional(),
457
+ }, async (args, extra) => {
458
+ try {
459
+ const otherParams = args;
460
+ // Map camelCase to original parameter names for API request
461
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
462
+ const mappedParams = args.requestData || { ...otherParams };
463
+ // Extract authorization token from HTTP request headers
464
+ const authorization = extra?.requestInfo?.headers?.authorization;
465
+ const bearer = authorization?.replace('Bearer ', '');
466
+ const response = await apiClient.request({
467
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
468
+ method: 'POST',
469
+ url: '/v1/pages',
470
+ data: mappedParams,
471
+ });
472
+ return handleResult(response.data);
473
+ }
474
+ catch (error) {
475
+ return handleError(error);
476
+ }
477
+ });
478
+ mcpServer.tool('create-a-database', `Create a database`, {
479
+ parent: z.any(),
480
+ properties: z.any(),
481
+ title: z.any().optional(),
482
+ }, async (args, extra) => {
483
+ try {
484
+ const otherParams = args;
485
+ // Map camelCase to original parameter names for API request
486
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
487
+ const mappedParams = args.requestData || { ...otherParams };
488
+ // Extract authorization token from HTTP request headers
489
+ const authorization = extra?.requestInfo?.headers?.authorization;
490
+ const bearer = authorization?.replace('Bearer ', '');
491
+ const response = await apiClient.request({
492
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
493
+ method: 'POST',
494
+ url: '/v1/databases',
495
+ data: mappedParams,
496
+ });
497
+ return handleResult(response.data);
498
+ }
499
+ catch (error) {
500
+ return handleError(error);
501
+ }
502
+ });
503
+ mcpServer.tool('update-a-database', `Update a database`, {
504
+ databaseId: z.string(),
505
+ title: z.any().optional(),
506
+ description: z.any().optional(),
507
+ properties: z.any().optional(),
508
+ }, async (args, extra) => {
509
+ try {
510
+ const { databaseId, ...otherParams } = args;
511
+ const url = `/v1/databases/${databaseId}`;
512
+ // Map camelCase to original parameter names for API request
513
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
514
+ const mappedParams = args.requestData || { ...otherParams };
515
+ if ('databaseId' in mappedParams) {
516
+ mappedParams['database_id'] = mappedParams['databaseId'];
517
+ delete mappedParams['databaseId'];
518
+ }
519
+ // Extract authorization token from HTTP request headers
520
+ const authorization = extra?.requestInfo?.headers?.authorization;
521
+ const bearer = authorization?.replace('Bearer ', '');
522
+ const response = await apiClient.request({
523
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
524
+ method: 'PATCH',
525
+ url: url,
526
+ data: mappedParams,
527
+ });
528
+ return handleResult(response.data);
529
+ }
530
+ catch (error) {
531
+ return handleError(error);
532
+ }
533
+ });
534
+ mcpServer.tool('retrieve-a-database', `Retrieve a database`, {
535
+ databaseId: z.string(),
536
+ }, async (args, extra) => {
537
+ try {
538
+ const { databaseId, ...otherParams } = args;
539
+ const url = `/v1/databases/${databaseId}`;
540
+ // Map camelCase to original parameter names for API request
541
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
542
+ const mappedParams = { ...otherParams };
543
+ if ('databaseId' in mappedParams) {
544
+ mappedParams['database_id'] = mappedParams['databaseId'];
545
+ delete mappedParams['databaseId'];
546
+ }
547
+ // Extract authorization token from HTTP request headers
548
+ const authorization = extra?.requestInfo?.headers?.authorization;
549
+ const bearer = authorization?.replace('Bearer ', '');
550
+ const response = await apiClient.request({
551
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
552
+ method: 'GET',
553
+ url: url,
554
+ params: mappedParams,
555
+ });
556
+ return handleResult(response.data);
557
+ }
558
+ catch (error) {
559
+ return handleError(error);
560
+ }
561
+ });
562
+ mcpServer.tool('retrieve-a-page-property', `Retrieve a page property item`, {
563
+ pageId: z.string(),
564
+ propertyId: z.string(),
565
+ pageSize: z.string().optional(),
566
+ startCursor: z.string().optional(),
567
+ }, async (args, extra) => {
568
+ try {
569
+ const { pageId, propertyId, ...otherParams } = args;
570
+ const url = `/v1/pages/${pageId}/properties/${propertyId}`;
571
+ // Map camelCase to original parameter names for API request
572
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
573
+ const mappedParams = { ...otherParams };
574
+ if ('pageId' in mappedParams) {
575
+ mappedParams['page_id'] = mappedParams['pageId'];
576
+ delete mappedParams['pageId'];
577
+ }
578
+ if ('propertyId' in mappedParams) {
579
+ mappedParams['property_id'] = mappedParams['propertyId'];
580
+ delete mappedParams['propertyId'];
581
+ }
582
+ if ('pageSize' in mappedParams) {
583
+ mappedParams['page_size'] = mappedParams['pageSize'];
584
+ delete mappedParams['pageSize'];
585
+ }
586
+ if ('startCursor' in mappedParams) {
587
+ mappedParams['start_cursor'] = mappedParams['startCursor'];
588
+ delete mappedParams['startCursor'];
589
+ }
590
+ // Extract authorization token from HTTP request headers
591
+ const authorization = extra?.requestInfo?.headers?.authorization;
592
+ const bearer = authorization?.replace('Bearer ', '');
593
+ const response = await apiClient.request({
594
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
595
+ method: 'GET',
596
+ url: url,
597
+ params: mappedParams,
598
+ });
599
+ return handleResult(response.data);
600
+ }
601
+ catch (error) {
602
+ return handleError(error);
603
+ }
604
+ });
605
+ mcpServer.tool('retrieve-a-comment', `Retrieve comments`, {
606
+ blockId: z.string(),
607
+ startCursor: z.string().optional(),
608
+ pageSize: z.string().optional(),
609
+ }, async (args, extra) => {
610
+ try {
611
+ const otherParams = args;
612
+ // Map camelCase to original parameter names for API request
613
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
614
+ const mappedParams = { ...otherParams };
615
+ if ('blockId' in mappedParams) {
616
+ mappedParams['block_id'] = mappedParams['blockId'];
617
+ delete mappedParams['blockId'];
618
+ }
619
+ if ('startCursor' in mappedParams) {
620
+ mappedParams['start_cursor'] = mappedParams['startCursor'];
621
+ delete mappedParams['startCursor'];
622
+ }
623
+ if ('pageSize' in mappedParams) {
624
+ mappedParams['page_size'] = mappedParams['pageSize'];
625
+ delete mappedParams['pageSize'];
626
+ }
627
+ // Extract authorization token from HTTP request headers
628
+ const authorization = extra?.requestInfo?.headers?.authorization;
629
+ const bearer = authorization?.replace('Bearer ', '');
630
+ const response = await apiClient.request({
631
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
632
+ method: 'GET',
633
+ url: '/v1/comments',
634
+ params: mappedParams,
635
+ });
636
+ return handleResult(response.data);
637
+ }
638
+ catch (error) {
639
+ return handleError(error);
640
+ }
641
+ });
642
+ mcpServer.tool('create-a-comment', `Create comment`, {
643
+ parent: z.any(),
644
+ richText: z.any(),
645
+ }, async (args, extra) => {
646
+ try {
647
+ const otherParams = args;
648
+ // Map camelCase to original parameter names for API request
649
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
650
+ const mappedParams = args.requestData || { ...otherParams };
651
+ if ('richText' in mappedParams) {
652
+ mappedParams['rich_text'] = mappedParams['richText'];
653
+ delete mappedParams['richText'];
654
+ }
655
+ // Extract authorization token from HTTP request headers
656
+ const authorization = extra?.requestInfo?.headers?.authorization;
657
+ const bearer = authorization?.replace('Bearer ', '');
658
+ const response = await apiClient.request({
659
+ headers: bearer ? { Authorization: `Bearer ${bearer}` } : undefined,
660
+ method: 'POST',
661
+ url: '/v1/comments',
662
+ data: mappedParams,
663
+ });
664
+ return handleResult(response.data);
665
+ }
666
+ catch (error) {
667
+ return handleError(error);
668
+ }
669
+ });
670
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "@sargonpiraev/notion-mcp-server",
3
+ "version": "0.0.0",
4
+ "description": "MCP server for Notion API",
5
+ "main": "./build/main.js",
6
+ "types": "./build/main.d.ts",
7
+ "type": "module",
8
+ "bin": {
9
+ "notion-mcp-server": "./build/main.js"
10
+ },
11
+ "files": [
12
+ "build",
13
+ "README.md",
14
+ "LICENSE"
15
+ ],
16
+ "keywords": [
17
+ "mcp",
18
+ "mcp-server",
19
+ "model-context-protocol",
20
+ "notion"
21
+ ],
22
+ "author": {
23
+ "name": "Sargon Piraev",
24
+ "email": "sargonpiraev@gmail.com"
25
+ },
26
+ "license": "MIT",
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git+https://github.com/sargonpiraev/packages.git",
30
+ "directory": "packages/notion-mcp-server"
31
+ },
32
+ "homepage": "https://github.com/sargonpiraev/packages/tree/main/packages/notion-mcp-server#readme",
33
+ "bugs": {
34
+ "url": "https://github.com/sargonpiraev/packages/issues"
35
+ },
36
+ "engines": {
37
+ "node": ">=18.0.0"
38
+ },
39
+ "scripts": {
40
+ "build": "tsc -p tsconfig.json",
41
+ "check-types": "tsc -p tsconfig.json --noEmit",
42
+ "lint": "eslint ./src --ext .ts",
43
+ "test": "jest --passWithNoTests --coverage"
44
+ },
45
+ "publishConfig": {
46
+ "access": "public",
47
+ "provenance": true
48
+ },
49
+ "dependencies": {
50
+ "@modelcontextprotocol/sdk": "^1.11.0",
51
+ "dotenv": "^16.5.0",
52
+ "zod": "^3.24.3",
53
+ "axios": "^1.7.7",
54
+ "express": "^4.18.2",
55
+ "cors": "^2.8.5"
56
+ },
57
+ "devDependencies": {
58
+ "@types/node": "^22.15.3",
59
+ "typescript": "^5.8.3",
60
+ "@types/express": "^4.17.17",
61
+ "@types/cors": "^2.8.13",
62
+ "@types/debug": "^4.1.12",
63
+ "@types/minimatch": "^5.1.2"
64
+ }
65
+ }