@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 +21 -0
- package/README.md +23 -0
- package/build/main.d.ts +3 -0
- package/build/main.d.ts.map +1 -0
- package/build/main.js +12 -0
- package/build/main.js.map +1 -0
- package/build/server.d.ts +16 -0
- package/build/server.d.ts.map +1 -0
- package/build/server.js +670 -0
- package/build/server.js.map +1 -0
- package/package.json +65 -0
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).
|
package/build/main.d.ts
ADDED
|
@@ -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"}
|
package/build/server.js
ADDED
|
@@ -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'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
|
+
}
|