@atikk-co-jp/notion-mcp-server 0.1.0 → 0.2.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 (97) hide show
  1. package/README.ja.md +95 -4
  2. package/README.md +95 -4
  3. package/dist/bin/cli.js +10 -10
  4. package/dist/src/converters/__tests__/block-to-markdown.test.d.ts +2 -0
  5. package/dist/src/converters/__tests__/block-to-markdown.test.d.ts.map +1 -0
  6. package/dist/src/converters/__tests__/block-to-markdown.test.js +611 -0
  7. package/dist/src/converters/__tests__/page-to-markdown.test.d.ts +2 -0
  8. package/dist/src/converters/__tests__/page-to-markdown.test.d.ts.map +1 -0
  9. package/dist/src/converters/__tests__/page-to-markdown.test.js +567 -0
  10. package/dist/src/converters/__tests__/rich-text-to-markdown.test.d.ts +2 -0
  11. package/dist/src/converters/__tests__/rich-text-to-markdown.test.d.ts.map +1 -0
  12. package/dist/src/converters/__tests__/rich-text-to-markdown.test.js +353 -0
  13. package/dist/src/converters/block-to-markdown.d.ts +38 -0
  14. package/dist/src/converters/block-to-markdown.d.ts.map +1 -0
  15. package/dist/src/converters/block-to-markdown.js +484 -0
  16. package/dist/src/converters/index.d.ts +9 -0
  17. package/dist/src/converters/index.d.ts.map +1 -0
  18. package/dist/src/converters/index.js +11 -0
  19. package/dist/src/converters/page-to-markdown.d.ts +64 -0
  20. package/dist/src/converters/page-to-markdown.d.ts.map +1 -0
  21. package/dist/src/converters/page-to-markdown.js +189 -0
  22. package/dist/src/converters/rich-text-to-markdown.d.ts +61 -0
  23. package/dist/src/converters/rich-text-to-markdown.d.ts.map +1 -0
  24. package/dist/src/converters/rich-text-to-markdown.js +95 -0
  25. package/dist/src/index.d.ts +6 -6
  26. package/dist/src/index.d.ts.map +1 -1
  27. package/dist/src/index.js +5 -5
  28. package/dist/src/notion-client.d.ts +58 -15
  29. package/dist/src/notion-client.d.ts.map +1 -1
  30. package/dist/src/notion-client.js +23 -13
  31. package/dist/src/schemas/block.d.ts +2158 -622
  32. package/dist/src/schemas/block.d.ts.map +1 -1
  33. package/dist/src/schemas/block.js +283 -76
  34. package/dist/src/schemas/common.d.ts +518 -6
  35. package/dist/src/schemas/common.d.ts.map +1 -1
  36. package/dist/src/schemas/common.js +120 -42
  37. package/dist/src/schemas/database.d.ts +687 -0
  38. package/dist/src/schemas/database.d.ts.map +1 -0
  39. package/dist/src/schemas/database.js +264 -0
  40. package/dist/src/schemas/filter.d.ts +509 -3
  41. package/dist/src/schemas/filter.d.ts.map +1 -1
  42. package/dist/src/schemas/filter.js +110 -13
  43. package/dist/src/schemas/index.d.ts +5 -4
  44. package/dist/src/schemas/index.d.ts.map +1 -1
  45. package/dist/src/schemas/index.js +7 -5
  46. package/dist/src/schemas/page.d.ts +2152 -19
  47. package/dist/src/schemas/page.d.ts.map +1 -1
  48. package/dist/src/schemas/page.js +216 -22
  49. package/dist/src/schemas/schemas.test.d.ts +2 -0
  50. package/dist/src/schemas/schemas.test.d.ts.map +1 -0
  51. package/dist/src/schemas/schemas.test.js +418 -0
  52. package/dist/src/server.d.ts +2 -2
  53. package/dist/src/server.d.ts.map +1 -1
  54. package/dist/src/server.js +6 -6
  55. package/dist/src/tools/append-block-children.d.ts +2 -2
  56. package/dist/src/tools/append-block-children.d.ts.map +1 -1
  57. package/dist/src/tools/append-block-children.js +16 -10
  58. package/dist/src/tools/create-comment.d.ts +2 -2
  59. package/dist/src/tools/create-comment.d.ts.map +1 -1
  60. package/dist/src/tools/create-comment.js +15 -9
  61. package/dist/src/tools/create-database.d.ts +4 -0
  62. package/dist/src/tools/create-database.d.ts.map +1 -0
  63. package/dist/src/tools/create-database.js +57 -0
  64. package/dist/src/tools/create-page.d.ts +2 -2
  65. package/dist/src/tools/create-page.d.ts.map +1 -1
  66. package/dist/src/tools/create-page.js +22 -24
  67. package/dist/src/tools/get-block-children.d.ts +2 -2
  68. package/dist/src/tools/get-block-children.d.ts.map +1 -1
  69. package/dist/src/tools/get-block-children.js +39 -6
  70. package/dist/src/tools/index.d.ts +13 -11
  71. package/dist/src/tools/index.d.ts.map +1 -1
  72. package/dist/src/tools/index.js +13 -9
  73. package/dist/src/tools/query-database.d.ts +2 -2
  74. package/dist/src/tools/query-database.d.ts.map +1 -1
  75. package/dist/src/tools/query-database.js +27 -18
  76. package/dist/src/tools/retrieve-page.d.ts +2 -2
  77. package/dist/src/tools/retrieve-page.d.ts.map +1 -1
  78. package/dist/src/tools/retrieve-page.js +44 -4
  79. package/dist/src/tools/search.d.ts +2 -2
  80. package/dist/src/tools/search.d.ts.map +1 -1
  81. package/dist/src/tools/search.js +18 -12
  82. package/dist/src/tools/update-database.d.ts +4 -0
  83. package/dist/src/tools/update-database.d.ts.map +1 -0
  84. package/dist/src/tools/update-database.js +74 -0
  85. package/dist/src/tools/update-page.d.ts +2 -2
  86. package/dist/src/tools/update-page.d.ts.map +1 -1
  87. package/dist/src/tools/update-page.js +23 -18
  88. package/dist/src/utils/error-handler.d.ts +1 -1
  89. package/dist/src/utils/error-handler.d.ts.map +1 -1
  90. package/dist/src/utils/error-handler.js +14 -14
  91. package/dist/src/utils/index.d.ts +2 -2
  92. package/dist/src/utils/index.d.ts.map +1 -1
  93. package/dist/src/utils/index.js +2 -2
  94. package/dist/src/utils/response-formatter.d.ts +13 -1
  95. package/dist/src/utils/response-formatter.d.ts.map +1 -1
  96. package/dist/src/utils/response-formatter.js +46 -3
  97. package/package.json +11 -2
@@ -0,0 +1,264 @@
1
+ import { z } from 'zod';
2
+ import { RichTextArraySchema } from './common.js';
3
+ // Title property schema (every database must have exactly one)
4
+ export const TitlePropertySchemaSchema = z.object({
5
+ title: z.object({}).optional(),
6
+ });
7
+ // Rich text property schema
8
+ export const RichTextPropertySchemaSchema = z.object({
9
+ rich_text: z.object({}).optional(),
10
+ });
11
+ // Number property schema
12
+ export const NumberPropertySchemaSchema = z.object({
13
+ number: z
14
+ .object({
15
+ format: z
16
+ .enum([
17
+ 'number',
18
+ 'number_with_commas',
19
+ 'percent',
20
+ 'dollar',
21
+ 'canadian_dollar',
22
+ 'euro',
23
+ 'pound',
24
+ 'yen',
25
+ 'ruble',
26
+ 'rupee',
27
+ 'won',
28
+ 'yuan',
29
+ 'real',
30
+ 'lira',
31
+ 'rupiah',
32
+ 'franc',
33
+ 'hong_kong_dollar',
34
+ 'new_zealand_dollar',
35
+ 'krona',
36
+ 'norwegian_krone',
37
+ 'mexican_peso',
38
+ 'rand',
39
+ 'new_taiwan_dollar',
40
+ 'danish_krone',
41
+ 'zloty',
42
+ 'baht',
43
+ 'forint',
44
+ 'koruna',
45
+ 'shekel',
46
+ 'chilean_peso',
47
+ 'philippine_peso',
48
+ 'dirham',
49
+ 'colombian_peso',
50
+ 'riyal',
51
+ 'ringgit',
52
+ 'leu',
53
+ 'argentine_peso',
54
+ 'uruguayan_peso',
55
+ 'singapore_dollar',
56
+ ])
57
+ .optional(),
58
+ })
59
+ .optional(),
60
+ });
61
+ // Select option schema
62
+ export const SelectOptionSchema = z.object({
63
+ name: z.string(),
64
+ color: z
65
+ .enum([
66
+ 'default',
67
+ 'gray',
68
+ 'brown',
69
+ 'orange',
70
+ 'yellow',
71
+ 'green',
72
+ 'blue',
73
+ 'purple',
74
+ 'pink',
75
+ 'red',
76
+ ])
77
+ .optional(),
78
+ });
79
+ // Select property schema
80
+ export const SelectPropertySchemaSchema = z.object({
81
+ select: z
82
+ .object({
83
+ options: z.array(SelectOptionSchema).optional(),
84
+ })
85
+ .optional(),
86
+ });
87
+ // Multi-select property schema
88
+ export const MultiSelectPropertySchemaSchema = z.object({
89
+ multi_select: z
90
+ .object({
91
+ options: z.array(SelectOptionSchema).optional(),
92
+ })
93
+ .optional(),
94
+ });
95
+ // Status option schema (with groups)
96
+ export const StatusOptionSchema = z.object({
97
+ name: z.string(),
98
+ id: z.string().optional(),
99
+ color: z
100
+ .enum([
101
+ 'default',
102
+ 'gray',
103
+ 'brown',
104
+ 'orange',
105
+ 'yellow',
106
+ 'green',
107
+ 'blue',
108
+ 'purple',
109
+ 'pink',
110
+ 'red',
111
+ ])
112
+ .optional(),
113
+ });
114
+ // Status group schema
115
+ export const StatusGroupSchema = z.object({
116
+ name: z.string(),
117
+ id: z.string().optional(),
118
+ color: z
119
+ .enum([
120
+ 'default',
121
+ 'gray',
122
+ 'brown',
123
+ 'orange',
124
+ 'yellow',
125
+ 'green',
126
+ 'blue',
127
+ 'purple',
128
+ 'pink',
129
+ 'red',
130
+ ])
131
+ .optional(),
132
+ option_ids: z.array(z.string()).optional(),
133
+ });
134
+ // Status property schema
135
+ // Note: Status options and groups cannot be specified when creating a database.
136
+ // Notion automatically creates default options (Not started, In progress, Done).
137
+ // Options can only be modified after the database is created.
138
+ export const StatusPropertySchemaSchema = z.object({
139
+ status: z.object({}).optional(),
140
+ });
141
+ // Date property schema
142
+ export const DatePropertySchemaSchema = z.object({
143
+ date: z.object({}).optional(),
144
+ });
145
+ // People property schema
146
+ export const PeoplePropertySchemaSchema = z.object({
147
+ people: z.object({}).optional(),
148
+ });
149
+ // Files property schema
150
+ export const FilesPropertySchemaSchema = z.object({
151
+ files: z.object({}).optional(),
152
+ });
153
+ // Checkbox property schema
154
+ export const CheckboxPropertySchemaSchema = z.object({
155
+ checkbox: z.object({}).optional(),
156
+ });
157
+ // URL property schema
158
+ export const UrlPropertySchemaSchema = z.object({
159
+ url: z.object({}).optional(),
160
+ });
161
+ // Email property schema
162
+ export const EmailPropertySchemaSchema = z.object({
163
+ email: z.object({}).optional(),
164
+ });
165
+ // Phone number property schema
166
+ export const PhoneNumberPropertySchemaSchema = z.object({
167
+ phone_number: z.object({}).optional(),
168
+ });
169
+ // Formula property schema
170
+ export const FormulaPropertySchemaSchema = z.object({
171
+ formula: z.object({
172
+ expression: z.string(),
173
+ }),
174
+ });
175
+ // Relation property schema
176
+ export const RelationPropertySchemaSchema = z.object({
177
+ relation: z.object({
178
+ database_id: z.string(),
179
+ type: z.enum(['single_property', 'dual_property']).optional(),
180
+ single_property: z.object({}).optional(),
181
+ dual_property: z
182
+ .object({
183
+ synced_property_name: z.string().optional(),
184
+ synced_property_id: z.string().optional(),
185
+ })
186
+ .optional(),
187
+ }),
188
+ });
189
+ // Rollup property schema
190
+ export const RollupPropertySchemaSchema = z.object({
191
+ rollup: z.object({
192
+ relation_property_name: z.string().optional(),
193
+ relation_property_id: z.string().optional(),
194
+ rollup_property_name: z.string().optional(),
195
+ rollup_property_id: z.string().optional(),
196
+ function: z.enum([
197
+ 'count',
198
+ 'count_values',
199
+ 'empty',
200
+ 'not_empty',
201
+ 'unique',
202
+ 'show_unique',
203
+ 'percent_empty',
204
+ 'percent_not_empty',
205
+ 'sum',
206
+ 'average',
207
+ 'median',
208
+ 'min',
209
+ 'max',
210
+ 'range',
211
+ 'earliest_date',
212
+ 'latest_date',
213
+ 'date_range',
214
+ 'checked',
215
+ 'unchecked',
216
+ 'percent_checked',
217
+ 'percent_unchecked',
218
+ 'show_original',
219
+ ]),
220
+ }),
221
+ });
222
+ // Created time property schema (read-only, auto-generated)
223
+ export const CreatedTimePropertySchemaSchema = z.object({
224
+ created_time: z.object({}).optional(),
225
+ });
226
+ // Created by property schema (read-only, auto-generated)
227
+ export const CreatedByPropertySchemaSchema = z.object({
228
+ created_by: z.object({}).optional(),
229
+ });
230
+ // Last edited time property schema (read-only, auto-generated)
231
+ export const LastEditedTimePropertySchemaSchema = z.object({
232
+ last_edited_time: z.object({}).optional(),
233
+ });
234
+ // Last edited by property schema (read-only, auto-generated)
235
+ export const LastEditedByPropertySchemaSchema = z.object({
236
+ last_edited_by: z.object({}).optional(),
237
+ });
238
+ // Combined database property schema
239
+ export const DatabasePropertySchemaSchema = z.union([
240
+ TitlePropertySchemaSchema,
241
+ RichTextPropertySchemaSchema,
242
+ NumberPropertySchemaSchema,
243
+ SelectPropertySchemaSchema,
244
+ MultiSelectPropertySchemaSchema,
245
+ StatusPropertySchemaSchema,
246
+ DatePropertySchemaSchema,
247
+ PeoplePropertySchemaSchema,
248
+ FilesPropertySchemaSchema,
249
+ CheckboxPropertySchemaSchema,
250
+ UrlPropertySchemaSchema,
251
+ EmailPropertySchemaSchema,
252
+ PhoneNumberPropertySchemaSchema,
253
+ FormulaPropertySchemaSchema,
254
+ RelationPropertySchemaSchema,
255
+ RollupPropertySchemaSchema,
256
+ CreatedTimePropertySchemaSchema,
257
+ CreatedByPropertySchemaSchema,
258
+ LastEditedTimePropertySchemaSchema,
259
+ LastEditedByPropertySchemaSchema,
260
+ ]);
261
+ // Database properties schema (record of property name to property schema)
262
+ export const DatabasePropertiesSchema = z.record(z.string(), DatabasePropertySchemaSchema);
263
+ // Database title schema (array of rich text)
264
+ export const DatabaseTitleSchema = RichTextArraySchema;