@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
@@ -1,7 +1,38 @@
1
- import { z } from "zod";
2
- // Rich Text object schema
3
- export const RichTextSchema = z.object({
4
- type: z.literal("text").default("text"),
1
+ import { z } from 'zod';
2
+ // Color enum used in annotations and blocks
3
+ export const ColorSchema = z.enum([
4
+ 'default',
5
+ 'gray',
6
+ 'brown',
7
+ 'orange',
8
+ 'yellow',
9
+ 'green',
10
+ 'blue',
11
+ 'purple',
12
+ 'pink',
13
+ 'red',
14
+ 'gray_background',
15
+ 'brown_background',
16
+ 'orange_background',
17
+ 'yellow_background',
18
+ 'green_background',
19
+ 'blue_background',
20
+ 'purple_background',
21
+ 'pink_background',
22
+ 'red_background',
23
+ ]);
24
+ // Annotations schema
25
+ export const AnnotationsSchema = z.object({
26
+ bold: z.boolean().optional(),
27
+ italic: z.boolean().optional(),
28
+ strikethrough: z.boolean().optional(),
29
+ underline: z.boolean().optional(),
30
+ code: z.boolean().optional(),
31
+ color: ColorSchema.optional(),
32
+ });
33
+ // Text type rich text
34
+ export const TextRichTextSchema = z.object({
35
+ type: z.literal('text'),
5
36
  text: z.object({
6
37
  content: z.string(),
7
38
  link: z
@@ -11,66 +42,113 @@ export const RichTextSchema = z.object({
11
42
  .nullable()
12
43
  .optional(),
13
44
  }),
14
- annotations: z
15
- .object({
16
- bold: z.boolean().optional(),
17
- italic: z.boolean().optional(),
18
- strikethrough: z.boolean().optional(),
19
- underline: z.boolean().optional(),
20
- code: z.boolean().optional(),
21
- color: z
22
- .enum([
23
- "default",
24
- "gray",
25
- "brown",
26
- "orange",
27
- "yellow",
28
- "green",
29
- "blue",
30
- "purple",
31
- "pink",
32
- "red",
33
- "gray_background",
34
- "brown_background",
35
- "orange_background",
36
- "yellow_background",
37
- "green_background",
38
- "blue_background",
39
- "purple_background",
40
- "pink_background",
41
- "red_background",
42
- ])
43
- .optional(),
44
- })
45
- .optional(),
45
+ annotations: AnnotationsSchema.optional(),
46
+ plain_text: z.string().optional(),
47
+ href: z.string().nullable().optional(),
48
+ });
49
+ // Mention types
50
+ export const UserMentionSchema = z.object({
51
+ type: z.literal('user'),
52
+ user: z.object({
53
+ id: z.string(),
54
+ object: z.literal('user').optional(),
55
+ }),
56
+ });
57
+ export const PageMentionSchema = z.object({
58
+ type: z.literal('page'),
59
+ page: z.object({
60
+ id: z.string(),
61
+ }),
62
+ });
63
+ export const DatabaseMentionSchema = z.object({
64
+ type: z.literal('database'),
65
+ database: z.object({
66
+ id: z.string(),
67
+ }),
68
+ });
69
+ export const DateMentionSchema = z.object({
70
+ type: z.literal('date'),
71
+ date: z.object({
72
+ start: z.string(),
73
+ end: z.string().nullable().optional(),
74
+ time_zone: z.string().nullable().optional(),
75
+ }),
76
+ });
77
+ export const LinkPreviewMentionSchema = z.object({
78
+ type: z.literal('link_preview'),
79
+ link_preview: z.object({
80
+ url: z.string(),
81
+ }),
82
+ });
83
+ export const TemplateMentionDateSchema = z.object({
84
+ type: z.literal('template_mention_date'),
85
+ template_mention_date: z.enum(['today', 'now']),
86
+ });
87
+ export const TemplateMentionUserSchema = z.object({
88
+ type: z.literal('template_mention_user'),
89
+ template_mention_user: z.literal('me'),
90
+ });
91
+ export const TemplateMentionSchema = z.object({
92
+ type: z.literal('template_mention'),
93
+ template_mention: z.union([TemplateMentionDateSchema, TemplateMentionUserSchema]),
94
+ });
95
+ export const MentionSchema = z.union([
96
+ UserMentionSchema,
97
+ PageMentionSchema,
98
+ DatabaseMentionSchema,
99
+ DateMentionSchema,
100
+ LinkPreviewMentionSchema,
101
+ TemplateMentionSchema,
102
+ ]);
103
+ // Mention type rich text
104
+ export const MentionRichTextSchema = z.object({
105
+ type: z.literal('mention'),
106
+ mention: MentionSchema,
107
+ annotations: AnnotationsSchema.optional(),
108
+ plain_text: z.string().optional(),
109
+ href: z.string().nullable().optional(),
110
+ });
111
+ // Equation type rich text
112
+ export const EquationRichTextSchema = z.object({
113
+ type: z.literal('equation'),
114
+ equation: z.object({
115
+ expression: z.string(),
116
+ }),
117
+ annotations: AnnotationsSchema.optional(),
46
118
  plain_text: z.string().optional(),
47
119
  href: z.string().nullable().optional(),
48
120
  });
121
+ // Combined Rich Text schema (supports text, mention, equation)
122
+ export const RichTextSchema = z.union([
123
+ TextRichTextSchema,
124
+ MentionRichTextSchema,
125
+ EquationRichTextSchema,
126
+ ]);
49
127
  export const RichTextArraySchema = z.array(RichTextSchema);
50
128
  // Helper to create simple text rich text array
51
129
  export const SimpleTextSchema = z.string().transform((content) => [
52
130
  {
53
- type: "text",
131
+ type: 'text',
54
132
  text: { content },
55
133
  },
56
134
  ]);
57
135
  // Parent schemas
58
136
  export const DatabaseParentSchema = z.object({
59
- type: z.literal("database_id").optional(),
137
+ type: z.literal('database_id').optional(),
60
138
  database_id: z.string(),
61
139
  });
62
140
  export const PageParentSchema = z.object({
63
- type: z.literal("page_id").optional(),
141
+ type: z.literal('page_id').optional(),
64
142
  page_id: z.string(),
65
143
  });
66
144
  export const ParentSchema = z.union([DatabaseParentSchema, PageParentSchema]);
67
145
  // Icon schemas
68
146
  export const EmojiIconSchema = z.object({
69
- type: z.literal("emoji"),
147
+ type: z.literal('emoji'),
70
148
  emoji: z.string(),
71
149
  });
72
150
  export const ExternalIconSchema = z.object({
73
- type: z.literal("external"),
151
+ type: z.literal('external'),
74
152
  external: z.object({
75
153
  url: z.string(),
76
154
  }),
@@ -78,7 +156,7 @@ export const ExternalIconSchema = z.object({
78
156
  export const IconSchema = z.union([EmojiIconSchema, ExternalIconSchema]);
79
157
  // Cover schema
80
158
  export const CoverSchema = z.object({
81
- type: z.literal("external"),
159
+ type: z.literal('external'),
82
160
  external: z.object({
83
161
  url: z.string(),
84
162
  }),