@apteva/integrations 0.2.3 → 0.3.1

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 (236) hide show
  1. package/package.json +1 -1
  2. package/src/apps/activecampaign.json +209 -0
  3. package/src/apps/activecollab.json +417 -0
  4. package/src/apps/airtable.json +235 -0
  5. package/src/apps/alpaca-trading.json +1554 -0
  6. package/src/apps/amadeus.json +225 -0
  7. package/src/apps/anthropic-api.json +96 -0
  8. package/src/apps/apify.json +203 -0
  9. package/src/apps/apollo.json +748 -0
  10. package/src/apps/apple-podcasts.json +116 -0
  11. package/src/apps/archive-api.json +104 -0
  12. package/src/apps/archive.json +151 -0
  13. package/src/apps/arduino-cloud.json +301 -0
  14. package/src/apps/arest.json +492 -0
  15. package/src/apps/asana.json +184 -0
  16. package/src/apps/ashby.json +176 -0
  17. package/src/apps/assemblyai.json +163 -0
  18. package/src/apps/attio.json +243 -0
  19. package/src/apps/aws-cloudfront.json +132 -0
  20. package/src/apps/aws-dynamodb.json +295 -0
  21. package/src/apps/aws-ec2.json +184 -0
  22. package/src/apps/aws-lambda.json +361 -0
  23. package/src/apps/aws-route53.json +110 -0
  24. package/src/apps/aws-s3.json +303 -0
  25. package/src/apps/aws-ses.json +556 -0
  26. package/src/apps/aws-sns.json +217 -0
  27. package/src/apps/aws-sqs.json +234 -0
  28. package/src/apps/axiom.json +123 -0
  29. package/src/apps/beehiiv.json +252 -0
  30. package/src/apps/binance-trading.json +555 -0
  31. package/src/apps/bitly.json +175 -0
  32. package/src/apps/bloobirds.json +246 -0
  33. package/src/apps/bluesky.json +201 -0
  34. package/src/apps/blynk.json +316 -0
  35. package/src/apps/booking-com.json +144 -0
  36. package/src/apps/box.json +289 -0
  37. package/src/apps/brevo.json +1423 -0
  38. package/src/apps/browse-ai.json +148 -0
  39. package/src/apps/bunny-cdn.json +330 -0
  40. package/src/apps/bunny-stream.json +387 -0
  41. package/src/apps/cal-com.json +240 -0
  42. package/src/apps/calendly.json +578 -0
  43. package/src/apps/calflow-calendar.json +706 -0
  44. package/src/apps/callrail.json +190 -0
  45. package/src/apps/canva.json +197 -0
  46. package/src/apps/cartesia.json +201 -0
  47. package/src/apps/castbase.json +753 -0
  48. package/src/apps/chargebee.json +226 -0
  49. package/src/apps/cleanster.json +359 -0
  50. package/src/apps/clicksend.json +278 -0
  51. package/src/apps/clickup.json +266 -0
  52. package/src/apps/clipkit.json +517 -0
  53. package/src/apps/close.json +359 -0
  54. package/src/apps/cloudflare.json +329 -0
  55. package/src/apps/cloudinary.json +164 -0
  56. package/src/apps/coda.json +288 -0
  57. package/src/apps/cohere.json +158 -0
  58. package/src/apps/coinbase.json +268 -0
  59. package/src/apps/composio.json +146 -0
  60. package/src/apps/confluence.json +270 -0
  61. package/src/apps/consensus.json +879 -0
  62. package/src/apps/contabo.json +733 -0
  63. package/src/apps/convertkit.json +211 -0
  64. package/src/apps/core-image.json +426 -0
  65. package/src/apps/core-video.json +1246 -0
  66. package/src/apps/craftcloud.json +298 -0
  67. package/src/apps/datadog.json +401 -0
  68. package/src/apps/dataforseo.json +1273 -0
  69. package/src/apps/deepseek.json +150 -0
  70. package/src/apps/dialpad.json +229 -0
  71. package/src/apps/discord.json +239 -0
  72. package/src/apps/dnsimple.json +405 -0
  73. package/src/apps/docusign.json +214 -0
  74. package/src/apps/docx.json +282 -0
  75. package/src/apps/dropbox.json +185 -0
  76. package/src/apps/duffel.json +231 -0
  77. package/src/apps/dux-soup.json +694 -0
  78. package/src/apps/dynadot.json +250 -0
  79. package/src/apps/elevenlabs.json +327 -0
  80. package/src/apps/eventbrite-events.json +598 -0
  81. package/src/apps/facebook-ads.json +1399 -0
  82. package/src/apps/facebook-api.json +282 -0
  83. package/src/apps/fal-ai.json +400 -0
  84. package/src/apps/fathom.json +86 -0
  85. package/src/apps/figma.json +162 -0
  86. package/src/apps/filestack.json +159 -0
  87. package/src/apps/firebase.json +271 -0
  88. package/src/apps/firecrawl.json +278 -0
  89. package/src/apps/folk.json +564 -0
  90. package/src/apps/forecast-app.json +377 -0
  91. package/src/apps/freshdesk.json +283 -0
  92. package/src/apps/gemini.json +528 -0
  93. package/src/apps/ghost.json +439 -0
  94. package/src/apps/gigs-marketplace.json +1442 -0
  95. package/src/apps/github.json +1479 -47
  96. package/src/apps/gitlab.json +448 -0
  97. package/src/apps/gmail.json +839 -28
  98. package/src/apps/gohighlevel.json +596 -0
  99. package/src/apps/google-ads.json +270 -0
  100. package/src/apps/google-calendar.json +996 -36
  101. package/src/apps/google-docs.json +278 -0
  102. package/src/apps/google-drive.json +360 -0
  103. package/src/apps/google-maps.json +473 -0
  104. package/src/apps/google-sheets.json +330 -0
  105. package/src/apps/gooten.json +411 -0
  106. package/src/apps/gravity-forms.json +385 -0
  107. package/src/apps/gusto.json +171 -0
  108. package/src/apps/hackernews.json +221 -0
  109. package/src/apps/harmonic.json +86 -0
  110. package/src/apps/helpscout.json +664 -0
  111. package/src/apps/hetzner.json +658 -0
  112. package/src/apps/heygen.json +184 -0
  113. package/src/apps/heyreach.json +388 -0
  114. package/src/apps/hospitable.json +340 -0
  115. package/src/apps/hostinger.json +374 -0
  116. package/src/apps/hubspot.json +682 -0
  117. package/src/apps/huggingface.json +97 -0
  118. package/src/apps/hunter.json +504 -0
  119. package/src/apps/ig-trading.json +849 -0
  120. package/src/apps/imaterialise.json +349 -0
  121. package/src/apps/instagram-api.json +538 -0
  122. package/src/apps/intercom.json +648 -0
  123. package/src/apps/jira.json +226 -0
  124. package/src/apps/klaviyo.json +199 -0
  125. package/src/apps/kling-ai.json +206 -0
  126. package/src/apps/kraken.json +870 -0
  127. package/src/apps/late.json +1056 -0
  128. package/src/apps/leadpages.json +243 -0
  129. package/src/apps/learning-platform.json +2244 -0
  130. package/src/apps/linear.json +184 -57
  131. package/src/apps/linkedin.json +179 -0
  132. package/src/apps/listen-notes.json +136 -0
  133. package/src/apps/lnk-bio.json +125 -0
  134. package/src/apps/loom.json +188 -0
  135. package/src/apps/luma.json +280 -0
  136. package/src/apps/mailchimp.json +238 -0
  137. package/src/apps/mailgun.json +310 -0
  138. package/src/apps/manychat.json +312 -0
  139. package/src/apps/marin-software.json +843 -0
  140. package/src/apps/media-downloader.json +157 -0
  141. package/src/apps/meetup-events.json +361 -0
  142. package/src/apps/meshy.json +248 -0
  143. package/src/apps/microsoft-teams.json +162 -0
  144. package/src/apps/monday.json +213 -0
  145. package/src/apps/mongodb-atlas.json +467 -0
  146. package/src/apps/namecheap.json +252 -0
  147. package/src/apps/nexar.json +289 -0
  148. package/src/apps/notion.json +530 -50
  149. package/src/apps/omnikit-analytics.json +374 -0
  150. package/src/apps/omnikit-api-gateway.json +660 -0
  151. package/src/apps/omnikit-billing.json +1781 -0
  152. package/src/apps/omnikit-cms.json +899 -0
  153. package/src/apps/omnikit-functions.json +329 -0
  154. package/src/apps/omnikit-intelligence.json +650 -0
  155. package/src/apps/omnikit-management.json +214 -0
  156. package/src/apps/omnikit-media.json +646 -0
  157. package/src/apps/omnikit-messaging.json +1826 -0
  158. package/src/apps/omnikit-redirects.json +209 -0
  159. package/src/apps/omnikit-webhooks.json +269 -0
  160. package/src/apps/omnikit-workflows.json +323 -0
  161. package/src/apps/openai-api.json +462 -0
  162. package/src/apps/openmeteo-weather.json +75 -0
  163. package/src/apps/optinmonster.json +244 -0
  164. package/src/apps/paidkit.json +1218 -0
  165. package/src/apps/paypal.json +254 -0
  166. package/src/apps/pdf.json +366 -0
  167. package/src/apps/pipedrive.json +255 -0
  168. package/src/apps/polymarket.json +653 -0
  169. package/src/apps/porkbun.json +417 -0
  170. package/src/apps/portfolio.json +501 -0
  171. package/src/apps/postmark.json +257 -0
  172. package/src/apps/printful.json +273 -0
  173. package/src/apps/printify.json +295 -0
  174. package/src/apps/producthunt.json +346 -0
  175. package/src/apps/pushover-notifications.json +113 -0
  176. package/src/apps/qonto.json +366 -0
  177. package/src/apps/quickbooks.json +234 -0
  178. package/src/apps/replicate.json +106 -0
  179. package/src/apps/rss.json +281 -0
  180. package/src/apps/salesflow.json +538 -0
  181. package/src/apps/salesforce-crm.json +216 -0
  182. package/src/apps/sap.json +256 -0
  183. package/src/apps/scaleway.json +911 -0
  184. package/src/apps/sculpteo.json +234 -0
  185. package/src/apps/sendgrid-email.json +233 -0
  186. package/src/apps/sendgrid.json +160 -35
  187. package/src/apps/shapeways.json +188 -0
  188. package/src/apps/shopify.json +1217 -0
  189. package/src/apps/skai.json +779 -0
  190. package/src/apps/slack.json +228 -38
  191. package/src/apps/slant3d.json +231 -0
  192. package/src/apps/slides.json +760 -0
  193. package/src/apps/smartly.json +504 -0
  194. package/src/apps/snov.json +467 -0
  195. package/src/apps/socialcast.json +553 -63
  196. package/src/apps/square.json +274 -0
  197. package/src/apps/storage-management.json +788 -0
  198. package/src/apps/storylane.json +180 -0
  199. package/src/apps/strapi.json +338 -0
  200. package/src/apps/stripe-payments.json +847 -0
  201. package/src/apps/stripe.json +472 -35
  202. package/src/apps/supabase.json +169 -0
  203. package/src/apps/supademo.json +115 -0
  204. package/src/apps/taskflow.json +714 -0
  205. package/src/apps/teamwork.json +457 -0
  206. package/src/apps/telegram.json +444 -0
  207. package/src/apps/thinger.json +458 -0
  208. package/src/apps/ticktick.json +169 -0
  209. package/src/apps/tiktok-api.json +406 -0
  210. package/src/apps/todoist.json +151 -0
  211. package/src/apps/together.json +123 -0
  212. package/src/apps/torrent.json +267 -0
  213. package/src/apps/trading.json +1012 -0
  214. package/src/apps/trading212.json +383 -0
  215. package/src/apps/trello.json +205 -0
  216. package/src/apps/tripo.json +157 -0
  217. package/src/apps/twilio.json +1008 -0
  218. package/src/apps/twitter-ads.json +875 -0
  219. package/src/apps/twitter-api.json +1151 -0
  220. package/src/apps/twitterapiio.json +548 -0
  221. package/src/apps/typeform.json +210 -0
  222. package/src/apps/vidforge.json +1020 -0
  223. package/src/apps/vonage.json +394 -0
  224. package/src/apps/vultr.json +225 -0
  225. package/src/apps/webflow.json +223 -0
  226. package/src/apps/wise.json +273 -0
  227. package/src/apps/wistia.json +283 -0
  228. package/src/apps/woocommerce.json +288 -0
  229. package/src/apps/wordpress.json +1675 -0
  230. package/src/apps/xero.json +257 -0
  231. package/src/apps/youtube-api.json +861 -0
  232. package/src/apps/zendesk.json +295 -0
  233. package/src/apps/zite.json +173 -0
  234. package/src/apps/zoho-crm.json +386 -0
  235. package/src/apps/zoo.json +193 -0
  236. package/src/apps/zoom.json +334 -0
@@ -1,112 +1,592 @@
1
1
  {
2
2
  "slug": "notion",
3
3
  "name": "Notion",
4
- "description": "Workspace for notes, docs, databases, and project management",
4
+ "description": "MCP server for Notion operations - databases, pages, blocks, and search. Use notion-search with filter {\"value\":\"page\",\"property\":\"object\"} to discover page IDs for use with create-database and other tools.",
5
5
  "logo": "https://www.google.com/s2/favicons?domain=notion.so&sz=128",
6
- "categories": ["productivity", "project-management"],
6
+ "categories": [
7
+ "productivity",
8
+ "notion",
9
+ "database",
10
+ "notes",
11
+ "wiki"
12
+ ],
7
13
  "base_url": "https://api.notion.com/v1",
8
14
  "auth": {
9
- "types": ["bearer", "oauth2"],
10
- "headers": { "Authorization": "Bearer {{token}}", "Notion-Version": "2022-06-28", "Content-Type": "application/json" },
15
+ "types": [
16
+ "bearer",
17
+ "oauth2"
18
+ ],
19
+ "headers": {
20
+ "Authorization": "Bearer {{token}}"
21
+ },
22
+ "credential_fields": [
23
+ {
24
+ "name": "token",
25
+ "label": "access_token"
26
+ }
27
+ ],
11
28
  "oauth2": {
12
29
  "authorize_url": "https://api.notion.com/v1/oauth/authorize",
13
30
  "token_url": "https://api.notion.com/v1/oauth/token",
14
31
  "scopes": [],
15
32
  "client_id_required": true,
16
- "pkce": false,
17
- "setup_url": "https://www.notion.so/my-integrations",
18
- "setup_steps": [
19
- "Go to notion.so/my-integrations and click 'New integration'",
20
- "Select 'Public' type for OAuth (or use an Internal integration token instead)",
21
- "Set the redirect URI to: {callback_url}",
22
- "Copy the OAuth client ID and client secret"
23
- ]
24
- },
25
- "credential_fields": [
26
- { "name": "token", "label": "Integration Token", "description": "Notion internal integration token (secret_...)" }
27
- ]
33
+ "pkce": false
34
+ }
28
35
  },
29
36
  "tools": [
30
37
  {
31
38
  "name": "search",
32
- "description": "Search pages and databases in the workspace",
39
+ "description": "Search pages and databases in Notion. Also use this to list/browse pages by passing filter: {\"value\":\"page\",\"property\":\"object\"} with no query. Useful for discovering page IDs needed by other tools like notion-create-database.",
33
40
  "method": "POST",
34
41
  "path": "/search",
35
42
  "input_schema": {
36
43
  "type": "object",
37
44
  "properties": {
38
- "query": { "type": "string", "description": "Search query" },
45
+ "query": {
46
+ "type": "string",
47
+ "description": "Search query to find pages/databases by title. Omit to list all."
48
+ },
39
49
  "filter": {
40
50
  "type": "object",
41
- "description": "Filter by object type",
42
- "properties": {
43
- "value": { "type": "string", "enum": ["page", "database"] },
44
- "property": { "type": "string", "default": "object" }
45
- }
51
+ "description": "Filter by object type. Format: { \"value\": \"page\", \"property\": \"object\" } or { \"value\": \"database\", \"property\": \"object\" }"
46
52
  },
47
- "page_size": { "type": "number", "description": "Max results", "default": 10 }
53
+ "sort": {
54
+ "type": "object",
55
+ "description": "Sort results. Format: { \"direction\": \"ascending\"|\"descending\", \"timestamp\": \"last_edited_time\" }"
56
+ },
57
+ "start_cursor": {
58
+ "type": "string",
59
+ "description": "Pagination cursor from previous response"
60
+ },
61
+ "page_size": {
62
+ "type": "number",
63
+ "description": "Number of results (default: 100, max: 100)"
64
+ }
48
65
  }
49
66
  }
50
67
  },
51
68
  {
52
- "name": "get_page",
53
- "description": "Get a page by ID",
69
+ "name": "list_databases",
70
+ "description": "List all databases the user has access to in the workspace",
71
+ "method": "POST",
72
+ "path": "/search",
73
+ "input_schema": {
74
+ "type": "object",
75
+ "properties": {
76
+ "start_cursor": {
77
+ "type": "string",
78
+ "description": "Pagination cursor"
79
+ },
80
+ "page_size": {
81
+ "type": "number",
82
+ "description": "Number of results (default: 100)"
83
+ }
84
+ }
85
+ }
86
+ },
87
+ {
88
+ "name": "get_database",
89
+ "description": "Retrieve a database schema and properties by ID",
54
90
  "method": "GET",
55
- "path": "/pages/{page_id}",
91
+ "path": "/databases/%7B%7Bdatabase_id%7D%7D",
56
92
  "input_schema": {
57
93
  "type": "object",
58
94
  "properties": {
59
- "page_id": { "type": "string", "description": "Page ID" }
95
+ "database_id": {
96
+ "type": "string",
97
+ "description": "ID of the database to retrieve"
98
+ }
60
99
  },
61
- "required": ["page_id"]
100
+ "required": [
101
+ "database_id"
102
+ ]
62
103
  }
63
104
  },
64
105
  {
65
- "name": "create_page",
66
- "description": "Create a new page in a database or as a child of another page",
106
+ "name": "query_database",
107
+ "description": "Query a Notion database with filters and sorts. Returns pages matching the criteria.",
67
108
  "method": "POST",
68
- "path": "/pages",
109
+ "path": "/databases/%7B%7Bdatabase_id%7D%7D/query",
69
110
  "input_schema": {
70
111
  "type": "object",
71
112
  "properties": {
72
- "parent": { "type": "object", "description": "Parent (database_id or page_id)" },
73
- "properties": { "type": "object", "description": "Page properties" }
113
+ "database_id": {
114
+ "type": "string",
115
+ "description": "ID of the database to query"
116
+ },
117
+ "filter": {
118
+ "type": "object",
119
+ "description": "Notion filter object. Example: { \"property\": \"Status\", \"select\": { \"equals\": \"Done\" } }"
120
+ },
121
+ "sorts": {
122
+ "type": "array",
123
+ "description": "Sort conditions. Example: [{ \"property\": \"Due Date\", \"direction\": \"ascending\" }]"
124
+ },
125
+ "start_cursor": {
126
+ "type": "string",
127
+ "description": "Pagination cursor"
128
+ },
129
+ "page_size": {
130
+ "type": "number",
131
+ "description": "Number of results (default: 100)"
132
+ }
74
133
  },
75
- "required": ["parent", "properties"]
134
+ "required": [
135
+ "database_id"
136
+ ]
76
137
  }
77
138
  },
78
139
  {
79
- "name": "query_database",
80
- "description": "Query a database with optional filters and sorts",
140
+ "name": "create_database",
141
+ "description": "Create a new database in Notion. Use notion-search with filter {\"value\":\"page\",\"property\":\"object\"} to find page IDs for the parent field.",
81
142
  "method": "POST",
82
- "path": "/databases/{database_id}/query",
143
+ "path": "/databases",
83
144
  "input_schema": {
84
145
  "type": "object",
85
146
  "properties": {
86
- "database_id": { "type": "string", "description": "Database ID" },
87
- "filter": { "type": "object", "description": "Filter conditions" },
88
- "sorts": { "type": "array", "description": "Sort conditions" },
89
- "page_size": { "type": "number", "description": "Max results", "default": 10 }
147
+ "parent": {
148
+ "type": "object",
149
+ "description": "Parent page. Format: { \"page_id\": \"<page-id>\" }"
150
+ },
151
+ "title": {
152
+ "type": "array",
153
+ "description": "Database title as rich text. Format: [{ \"type\": \"text\", \"text\": { \"content\": \"My Database\" } }]"
154
+ },
155
+ "properties": {
156
+ "type": "object",
157
+ "description": "Database property schema. Example: { \"Name\": { \"title\": {} }, \"Status\": { \"select\": { \"options\": [{ \"name\": \"To Do\" }, { \"name\": \"Done\" }] } } }"
158
+ },
159
+ "icon": {
160
+ "type": "object",
161
+ "description": "Database icon. Example: { \"type\": \"emoji\", \"emoji\": \"📋\" }"
162
+ },
163
+ "cover": {
164
+ "type": "object",
165
+ "description": "Database cover image"
166
+ },
167
+ "is_inline": {
168
+ "type": "boolean",
169
+ "description": "Create as inline database (default: false)"
170
+ }
90
171
  },
91
- "required": ["database_id"]
172
+ "required": [
173
+ "parent",
174
+ "title"
175
+ ]
92
176
  }
93
177
  },
94
178
  {
95
- "name": "list_databases",
96
- "description": "List all databases shared with the integration",
179
+ "name": "update_database",
180
+ "description": "Update a database schema, title, or properties",
181
+ "method": "PATCH",
182
+ "path": "/databases/%7B%7Bdatabase_id%7D%7D",
183
+ "input_schema": {
184
+ "type": "object",
185
+ "properties": {
186
+ "database_id": {
187
+ "type": "string",
188
+ "description": "ID of the database to update"
189
+ },
190
+ "title": {
191
+ "type": "array",
192
+ "description": "New title as rich text. Format: [{ \"type\": \"text\", \"text\": { \"content\": \"New Title\" } }]"
193
+ },
194
+ "description": {
195
+ "type": "array",
196
+ "description": "New description as rich text. Format: [{ \"type\": \"text\", \"text\": { \"content\": \"Description\" } }]"
197
+ },
198
+ "properties": {
199
+ "type": "object",
200
+ "description": "Property schema updates"
201
+ },
202
+ "icon": {
203
+ "type": "object",
204
+ "description": "Database icon"
205
+ },
206
+ "cover": {
207
+ "type": "object",
208
+ "description": "Database cover image"
209
+ },
210
+ "is_inline": {
211
+ "type": "boolean",
212
+ "description": "Whether database is inline"
213
+ },
214
+ "archived": {
215
+ "type": "boolean",
216
+ "description": "Archive the database"
217
+ }
218
+ },
219
+ "required": [
220
+ "database_id"
221
+ ]
222
+ }
223
+ },
224
+ {
225
+ "name": "create_page",
226
+ "description": "Create a new page in Notion (in a database or as child of page)",
97
227
  "method": "POST",
98
- "path": "/search",
228
+ "path": "/pages",
99
229
  "input_schema": {
100
230
  "type": "object",
101
231
  "properties": {
102
- "filter": {
232
+ "parent": {
233
+ "type": "object",
234
+ "description": "Parent container. For database: { \"database_id\": \"<id>\" }. For page: { \"page_id\": \"<id>\" }"
235
+ },
236
+ "properties": {
237
+ "type": "object",
238
+ "description": "Page properties. For database pages, must match database schema. Example: { \"Name\": { \"title\": [{ \"text\": { \"content\": \"My Page\" } }] } }"
239
+ },
240
+ "children": {
241
+ "type": "array",
242
+ "description": "Page content blocks. Example: [{ \"object\": \"block\", \"type\": \"paragraph\", \"paragraph\": { \"rich_text\": [{ \"text\": { \"content\": \"Hello\" } }] } }]"
243
+ },
244
+ "icon": {
245
+ "type": "object",
246
+ "description": "Page icon. Example: { \"type\": \"emoji\", \"emoji\": \"📄\" }"
247
+ },
248
+ "cover": {
249
+ "type": "object",
250
+ "description": "Page cover image"
251
+ }
252
+ },
253
+ "required": [
254
+ "parent"
255
+ ]
256
+ }
257
+ },
258
+ {
259
+ "name": "get_page",
260
+ "description": "Retrieve a page and its properties from Notion",
261
+ "method": "GET",
262
+ "path": "/pages/%7B%7Bpage_id%7D%7D",
263
+ "input_schema": {
264
+ "type": "object",
265
+ "properties": {
266
+ "page_id": {
267
+ "type": "string",
268
+ "description": "ID of the page to retrieve"
269
+ }
270
+ },
271
+ "required": [
272
+ "page_id"
273
+ ]
274
+ }
275
+ },
276
+ {
277
+ "name": "update_page",
278
+ "description": "Update an existing page's properties, icon, cover, or archive status",
279
+ "method": "PATCH",
280
+ "path": "/pages/%7B%7Bpage_id%7D%7D",
281
+ "input_schema": {
282
+ "type": "object",
283
+ "properties": {
284
+ "page_id": {
285
+ "type": "string",
286
+ "description": "ID of the page to update"
287
+ },
288
+ "properties": {
289
+ "type": "object",
290
+ "description": "Properties to update"
291
+ },
292
+ "archived": {
293
+ "type": "boolean",
294
+ "description": "Archive the page"
295
+ },
296
+ "icon": {
297
+ "type": "object",
298
+ "description": "Page icon"
299
+ },
300
+ "cover": {
301
+ "type": "object",
302
+ "description": "Page cover"
303
+ }
304
+ },
305
+ "required": [
306
+ "page_id"
307
+ ]
308
+ }
309
+ },
310
+ {
311
+ "name": "get_page_property",
312
+ "description": "Retrieve a specific property value from a page. Useful for paginated properties like relations, rollups, and rich text with many items.",
313
+ "method": "GET",
314
+ "path": "/pages/%7B%7Bpage_id%7D%7D/properties/%7B%7Bproperty_id%7D%7D",
315
+ "input_schema": {
316
+ "type": "object",
317
+ "properties": {
318
+ "page_id": {
319
+ "type": "string",
320
+ "description": "ID of the page"
321
+ },
322
+ "property_id": {
323
+ "type": "string",
324
+ "description": "ID of the property to retrieve (from page's properties object)"
325
+ },
326
+ "start_cursor": {
327
+ "type": "string",
328
+ "description": "Pagination cursor for paginated property values"
329
+ },
330
+ "page_size": {
331
+ "type": "number",
332
+ "description": "Number of results (default: 100)"
333
+ }
334
+ },
335
+ "required": [
336
+ "page_id",
337
+ "property_id"
338
+ ]
339
+ }
340
+ },
341
+ {
342
+ "name": "list_blocks",
343
+ "description": "List child blocks of a block or page. Use to read page content.",
344
+ "method": "GET",
345
+ "path": "/blocks/%7B%7Bblock_id%7D%7D/children",
346
+ "input_schema": {
347
+ "type": "object",
348
+ "properties": {
349
+ "block_id": {
350
+ "type": "string",
351
+ "description": "ID of the block or page to list children of"
352
+ },
353
+ "start_cursor": {
354
+ "type": "string",
355
+ "description": "Pagination cursor"
356
+ },
357
+ "page_size": {
358
+ "type": "number",
359
+ "description": "Number of results (default: 100)"
360
+ }
361
+ },
362
+ "required": [
363
+ "block_id"
364
+ ]
365
+ }
366
+ },
367
+ {
368
+ "name": "get_block",
369
+ "description": "Retrieve a single block from Notion by ID",
370
+ "method": "GET",
371
+ "path": "/blocks/%7B%7Bblock_id%7D%7D",
372
+ "input_schema": {
373
+ "type": "object",
374
+ "properties": {
375
+ "block_id": {
376
+ "type": "string",
377
+ "description": "ID of the block to retrieve"
378
+ }
379
+ },
380
+ "required": [
381
+ "block_id"
382
+ ]
383
+ }
384
+ },
385
+ {
386
+ "name": "append_blocks",
387
+ "description": "Append child blocks to a page or block. Use to add content to pages.",
388
+ "method": "PATCH",
389
+ "path": "/blocks/%7B%7Bblock_id%7D%7D/children",
390
+ "input_schema": {
391
+ "type": "object",
392
+ "properties": {
393
+ "block_id": {
394
+ "type": "string",
395
+ "description": "ID of the page or block to append to"
396
+ },
397
+ "children": {
398
+ "type": "array",
399
+ "description": "Blocks to append. Example: [{ \"object\": \"block\", \"type\": \"paragraph\", \"paragraph\": { \"rich_text\": [{ \"text\": { \"content\": \"Hello world\" } }] } }]"
400
+ }
401
+ },
402
+ "required": [
403
+ "block_id",
404
+ "children"
405
+ ]
406
+ }
407
+ },
408
+ {
409
+ "name": "update_block",
410
+ "description": "Update a block's content or archive status. Pass the block type key with its content.",
411
+ "method": "PATCH",
412
+ "path": "/blocks/%7B%7Bblock_id%7D%7D",
413
+ "input_schema": {
414
+ "type": "object",
415
+ "properties": {
416
+ "block_id": {
417
+ "type": "string",
418
+ "description": "ID of the block to update"
419
+ },
420
+ "paragraph": {
421
+ "type": "object",
422
+ "description": "Paragraph content (if block type is paragraph). Example: { \"rich_text\": [{ \"text\": { \"content\": \"Updated text\" } }] }"
423
+ },
424
+ "heading_1": {
425
+ "type": "object",
426
+ "description": "Heading 1 content (if block type is heading_1)"
427
+ },
428
+ "heading_2": {
429
+ "type": "object",
430
+ "description": "Heading 2 content (if block type is heading_2)"
431
+ },
432
+ "heading_3": {
103
433
  "type": "object",
104
- "description": "Filter to databases only",
105
- "default": { "value": "database", "property": "object" }
434
+ "description": "Heading 3 content (if block type is heading_3)"
106
435
  },
107
- "page_size": { "type": "number", "default": 50 }
436
+ "to_do": {
437
+ "type": "object",
438
+ "description": "To-do content. Example: { \"rich_text\": [{ \"text\": { \"content\": \"Task\" } }], \"checked\": true }"
439
+ },
440
+ "bulleted_list_item": {
441
+ "type": "object",
442
+ "description": "Bulleted list item content"
443
+ },
444
+ "numbered_list_item": {
445
+ "type": "object",
446
+ "description": "Numbered list item content"
447
+ },
448
+ "toggle": {
449
+ "type": "object",
450
+ "description": "Toggle block content"
451
+ },
452
+ "code": {
453
+ "type": "object",
454
+ "description": "Code block content. Example: { \"rich_text\": [{ \"text\": { \"content\": \"console.log()\" } }], \"language\": \"javascript\" }"
455
+ },
456
+ "callout": {
457
+ "type": "object",
458
+ "description": "Callout block content"
459
+ },
460
+ "quote": {
461
+ "type": "object",
462
+ "description": "Quote block content"
463
+ },
464
+ "archived": {
465
+ "type": "boolean",
466
+ "description": "Set to true to archive the block"
467
+ }
468
+ },
469
+ "required": [
470
+ "block_id"
471
+ ]
472
+ }
473
+ },
474
+ {
475
+ "name": "delete_block",
476
+ "description": "Delete (archive) a block in Notion",
477
+ "method": "DELETE",
478
+ "path": "/blocks/%7B%7Bblock_id%7D%7D",
479
+ "input_schema": {
480
+ "type": "object",
481
+ "properties": {
482
+ "block_id": {
483
+ "type": "string",
484
+ "description": "ID of the block to delete"
485
+ }
486
+ },
487
+ "required": [
488
+ "block_id"
489
+ ]
490
+ }
491
+ },
492
+ {
493
+ "name": "list_users",
494
+ "description": "List all users in the Notion workspace",
495
+ "method": "GET",
496
+ "path": "/users",
497
+ "input_schema": {
498
+ "type": "object",
499
+ "properties": {
500
+ "start_cursor": {
501
+ "type": "string",
502
+ "description": "Pagination cursor"
503
+ },
504
+ "page_size": {
505
+ "type": "number",
506
+ "description": "Number of results (default: 100)"
507
+ }
108
508
  }
109
509
  }
510
+ },
511
+ {
512
+ "name": "get_user",
513
+ "description": "Retrieve a user from Notion by ID",
514
+ "method": "GET",
515
+ "path": "/users/%7B%7Buser_id%7D%7D",
516
+ "input_schema": {
517
+ "type": "object",
518
+ "properties": {
519
+ "user_id": {
520
+ "type": "string",
521
+ "description": "ID of the user to retrieve"
522
+ }
523
+ },
524
+ "required": [
525
+ "user_id"
526
+ ]
527
+ }
528
+ },
529
+ {
530
+ "name": "get_me",
531
+ "description": "Get the bot user associated with the current integration token",
532
+ "method": "GET",
533
+ "path": "/users/me",
534
+ "input_schema": {
535
+ "type": "object",
536
+ "properties": {}
537
+ }
538
+ },
539
+ {
540
+ "name": "list_comments",
541
+ "description": "List comments on a block or page",
542
+ "method": "GET",
543
+ "path": "/comments",
544
+ "input_schema": {
545
+ "type": "object",
546
+ "properties": {
547
+ "block_id": {
548
+ "type": "string",
549
+ "description": "ID of the block or page to get comments for"
550
+ },
551
+ "start_cursor": {
552
+ "type": "string",
553
+ "description": "Pagination cursor"
554
+ },
555
+ "page_size": {
556
+ "type": "number",
557
+ "description": "Number of results (default: 100)"
558
+ }
559
+ },
560
+ "required": [
561
+ "block_id"
562
+ ]
563
+ }
564
+ },
565
+ {
566
+ "name": "create_comment",
567
+ "description": "Create a comment on a page or reply to a discussion thread",
568
+ "method": "POST",
569
+ "path": "/comments",
570
+ "input_schema": {
571
+ "type": "object",
572
+ "properties": {
573
+ "parent": {
574
+ "type": "object",
575
+ "description": "Parent page to start a new discussion. Format: { \"page_id\": \"<page-id>\" }"
576
+ },
577
+ "discussion_id": {
578
+ "type": "string",
579
+ "description": "Discussion ID to reply to an existing thread (use instead of parent)"
580
+ },
581
+ "rich_text": {
582
+ "type": "array",
583
+ "description": "Comment content as rich text. Format: [{ \"text\": { \"content\": \"My comment\" } }]"
584
+ }
585
+ },
586
+ "required": [
587
+ "rich_text"
588
+ ]
589
+ }
110
590
  }
111
591
  ]
112
592
  }