@n24q02m/better-notion-mcp 1.1.0 → 2.0.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.
@@ -2,7 +2,10 @@
2
2
  * Tool Registry - 7 Mega Tools
3
3
  * Consolidated registration for maximum coverage with minimal tools
4
4
  */
5
- import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
5
+ import { readFileSync } from 'node:fs';
6
+ import { dirname, join } from 'node:path';
7
+ import { fileURLToPath } from 'node:url';
8
+ import { CallToolRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema } from '@modelcontextprotocol/sdk/types.js';
6
9
  import { Client } from '@notionhq/client';
7
10
  // Import mega tools
8
11
  import { blocks } from './composite/blocks.js';
@@ -13,29 +16,34 @@ import { pages } from './composite/pages.js';
13
16
  import { users } from './composite/users.js';
14
17
  import { workspace } from './composite/workspace.js';
15
18
  import { aiReadableMessage, NotionMCPError } from './helpers/errors.js';
19
+ // Get docs directory path - works for both bundled CLI and unbundled code
20
+ const __filename = fileURLToPath(import.meta.url);
21
+ const __dirname = dirname(__filename);
22
+ // For bundled CLI: __dirname = /bin/, docs at /build/src/docs/
23
+ // For unbundled: __dirname = /build/src/tools/, docs at /build/src/docs/
24
+ const DOCS_DIR = __dirname.endsWith('bin')
25
+ ? join(__dirname, '..', 'build', 'src', 'docs')
26
+ : join(__dirname, '..', 'docs');
27
+ /**
28
+ * Documentation resources for full tool details
29
+ */
30
+ const RESOURCES = [
31
+ { uri: 'notion://docs/pages', name: 'Pages Tool Docs', file: 'pages.md' },
32
+ { uri: 'notion://docs/databases', name: 'Databases Tool Docs', file: 'databases.md' },
33
+ { uri: 'notion://docs/blocks', name: 'Blocks Tool Docs', file: 'blocks.md' },
34
+ { uri: 'notion://docs/users', name: 'Users Tool Docs', file: 'users.md' },
35
+ { uri: 'notion://docs/workspace', name: 'Workspace Tool Docs', file: 'workspace.md' },
36
+ { uri: 'notion://docs/comments', name: 'Comments Tool Docs', file: 'comments.md' },
37
+ { uri: 'notion://docs/content_convert', name: 'Content Convert Tool Docs', file: 'content_convert.md' }
38
+ ];
16
39
  /**
17
40
  * 7 Mega Tools covering 75% of Official Notion API
41
+ * Compressed descriptions for token optimization (~77% reduction)
18
42
  */
19
43
  const TOOLS = [
20
44
  {
21
45
  name: 'pages',
22
- description: `Complete page lifecycle management. Handles creation, reading, updating, archiving, and duplication.
23
-
24
- **IMPORTANT:** Integration tokens cannot create workspace-level pages. Always provide parent_id (page or database ID).
25
-
26
- Actions: create, get, update, archive, restore, duplicate.
27
-
28
- Maps to: POST/GET/PATCH /v1/pages + /v1/blocks/{id}/children
29
-
30
- Examples:
31
- - Create page: {action: "create", title: "Meeting Notes", parent_id: "xxx", content: "# Agenda\n- Item 1\n- Item 2"}
32
- - Create in database: {action: "create", title: "Task", parent_id: "db-id", properties: {Status: "Todo", Priority: "High"}}
33
- - Get with content: {action: "get", page_id: "xxx"} → Returns markdown content
34
- - Update content: {action: "update", page_id: "xxx", append_content: "\n## New Section"}
35
- - Update metadata: {action: "update", page_id: "xxx", icon: "", cover: "https://..."}
36
- - Archive: {action: "archive", page_ids: ["xxx", "yyy"]}
37
- - Restore: {action: "restore", page_id: "xxx"}
38
- - Duplicate: {action: "duplicate", page_id: "xxx"}`,
46
+ description: 'Page lifecycle: create, get, update, archive, restore, duplicate. Requires parent_id for create. Returns markdown content for get.',
39
47
  inputSchema: {
40
48
  type: 'object',
41
49
  properties: {
@@ -61,31 +69,7 @@ Examples:
61
69
  },
62
70
  {
63
71
  name: 'databases',
64
- description: `Complete database & data source operations (Notion API 2025-09-03).
65
-
66
- **ARCHITECTURE NOTE:**
67
- Notion databases now support multiple data sources. A database is a container that holds one or more data sources. Each data source has its own schema (properties) and rows (pages).
68
-
69
- **WORKFLOW:**
70
- 1. Create database → Creates database container + initial data source
71
- 2. Get database → Retrieves data_source_id for querying
72
- 3. Query/Create/Update pages → Use data_source_id (auto-fetched from database_id)
73
-
74
- Actions: create, get, query, create_page, update_page, delete_page, create_data_source, update_data_source, update_database.
75
-
76
- Maps to: /v1/databases + /v1/data_sources + /v1/pages
77
-
78
- Examples:
79
- - Create DB+datasource: {action: "create", parent_id: "xxx", title: "Tasks", properties: {Status: {select: {options: [{name: "Todo"}, {name: "Done"}]}}}}
80
- - Get schema: {action: "get", database_id: "xxx"} → Returns data_source info
81
- - Query data: {action: "query", database_id: "xxx", filters: {property: "Status", select: {equals: "Done"}}}
82
- - Smart search: {action: "query", database_id: "xxx", search: "project"}
83
- - Create rows: {action: "create_page", database_id: "xxx", pages: [{properties: {Name: "Task 1", Status: "Todo"}}]}
84
- - Update rows: {action: "update_page", page_id: "yyy", page_properties: {Status: "Done"}}
85
- - Delete rows: {action: "delete_page", page_ids: ["yyy", "zzz"]}
86
- - Add 2nd datasource: {action: "create_data_source", database_id: "xxx", title: "Archive", properties: {...}}
87
- - Update datasource schema: {action: "update_data_source", data_source_id: "yyy", properties: {NewField: {checkbox: {}}}}
88
- - Move database: {action: "update_database", database_id: "xxx", parent_id: "new-page-id"}`,
72
+ description: 'Database operations: create, get, query, create_page, update_page, delete_page, create_data_source, update_data_source, update_database. Databases contain data sources with schema and rows.',
89
73
  inputSchema: {
90
74
  type: 'object',
91
75
  properties: {
@@ -127,21 +111,7 @@ Examples:
127
111
  },
128
112
  {
129
113
  name: 'blocks',
130
- description: `Fine-grained content manipulation at block level. Use for precise edits within pages.
131
-
132
- **When to use:** Editing specific paragraphs, headings, or sections. For full page content, use pages tool.
133
- **Block ID:** Page IDs are also valid block IDs (page is the root block).
134
-
135
- Actions: get, children, append, update, delete.
136
-
137
- Maps to: GET/PATCH/DELETE /v1/blocks/{id} + /v1/blocks/{id}/children
138
-
139
- Examples:
140
- - Get block info: {action: "get", block_id: "xxx"}
141
- - Read content: {action: "children", block_id: "xxx"} → Returns markdown of child blocks
142
- - Add content: {action: "append", block_id: "page-id", content: "## New Section\nParagraph text"}
143
- - Edit paragraph: {action: "update", block_id: "block-id", content: "Updated text"}
144
- - Remove block: {action: "delete", block_id: "block-id"}`,
114
+ description: 'Block-level content: get, children, append, update, delete. Page IDs are valid block IDs. Use for precise edits.',
145
115
  inputSchema: {
146
116
  type: 'object',
147
117
  properties: {
@@ -158,19 +128,7 @@ Examples:
158
128
  },
159
129
  {
160
130
  name: 'users',
161
- description: `User information retrieval. Get bot info, list users, or extract users from workspace.
162
-
163
- **PERMISSION NOTE:** list action may fail if integration lacks user read permissions. Use from_workspace as fallback - it extracts user IDs from accessible pages' metadata.
164
-
165
- Actions: list, get, me, from_workspace.
166
-
167
- Maps to: GET /v1/users + GET /v1/users/{id} + GET /v1/users/me
168
-
169
- Examples:
170
- - Get bot details: {action: "me"} → Integration info
171
- - List all users: {action: "list"} → Requires user:read permission
172
- - Get specific user: {action: "get", user_id: "xxx"}
173
- - Bypass permissions: {action: "from_workspace"} → Extracts users from page metadata (created_by, last_edited_by)`,
131
+ description: 'User info: list, get, me, from_workspace. Use from_workspace if list fails due to permissions.',
174
132
  inputSchema: {
175
133
  type: 'object',
176
134
  properties: {
@@ -186,19 +144,7 @@ Examples:
186
144
  },
187
145
  {
188
146
  name: 'workspace',
189
- description: `Workspace-level operations: get integration info and search across pages/data sources.
190
-
191
- **Search:** Searches page/database titles. In API 2025-09-03, use filter object "data_source" to find databases. Returns only accessible content (shared with integration).
192
-
193
- Actions: info, search.
194
-
195
- Maps to: GET /v1/users/me + POST /v1/search
196
-
197
- Examples:
198
- - Get workspace info: {action: "info"} → Bot owner, workspace details
199
- - Search pages: {action: "search", query: "meeting notes", filter: {object: "page"}, limit: 10}
200
- - Search databases: {action: "search", query: "tasks", filter: {object: "data_source"}}
201
- - Sort results: {action: "search", query: "project", sort: {direction: "ascending", timestamp: "last_edited_time"}}`,
147
+ description: 'Workspace: info, search. Search returns pages/databases shared with integration. Use filter.object for type.',
202
148
  inputSchema: {
203
149
  type: 'object',
204
150
  properties: {
@@ -228,18 +174,7 @@ Examples:
228
174
  },
229
175
  {
230
176
  name: 'comments',
231
- description: `Page discussion management. List comments on pages and add new comments or replies.
232
-
233
- **Threading:** Use page_id for new discussion. Use discussion_id (from list response) to reply to existing thread.
234
-
235
- Actions: list, create.
236
-
237
- Maps to: GET /v1/comments + POST /v1/comments
238
-
239
- Examples:
240
- - List page comments: {action: "list", page_id: "xxx"}
241
- - Start discussion: {action: "create", page_id: "xxx", content: "Great work on this page!"}
242
- - Reply to thread: {action: "create", discussion_id: "thread-id", content: "I agree with your points"}`,
177
+ description: 'Comments: list, create. Use page_id for new discussion, discussion_id for replies.',
243
178
  inputSchema: {
244
179
  type: 'object',
245
180
  properties: {
@@ -253,18 +188,7 @@ Examples:
253
188
  },
254
189
  {
255
190
  name: 'content_convert',
256
- description: `Format conversion utility. Convert between human-readable Markdown and Notion's block format.
257
-
258
- **Use cases:**
259
- - Preview Notion blocks as Markdown before appending
260
- - Test block structure from Markdown input
261
- - Debug block formatting issues
262
-
263
- **Note:** Most operations (pages, blocks) handle Markdown automatically. Use this for advanced preview/validation.
264
-
265
- Examples:
266
- - Parse Markdown: {direction: "markdown-to-blocks", content: "# Heading\nParagraph text\n- List item"}
267
- - Read blocks: {direction: "blocks-to-markdown", content: [{"type": "paragraph", "paragraph": {...}}]}`,
191
+ description: 'Convert: markdown-to-blocks, blocks-to-markdown. Most tools handle markdown automatically.',
268
192
  inputSchema: {
269
193
  type: 'object',
270
194
  properties: {
@@ -277,6 +201,21 @@ Examples:
277
201
  },
278
202
  required: ['direction', 'content']
279
203
  }
204
+ },
205
+ {
206
+ name: 'help',
207
+ description: 'Get full documentation for a tool. Use when compressed descriptions are insufficient.',
208
+ inputSchema: {
209
+ type: 'object',
210
+ properties: {
211
+ tool_name: {
212
+ type: 'string',
213
+ enum: ['pages', 'databases', 'blocks', 'users', 'workspace', 'comments', 'content_convert'],
214
+ description: 'Tool to get documentation for'
215
+ }
216
+ },
217
+ required: ['tool_name']
218
+ }
280
219
  }
281
220
  ];
282
221
  /**
@@ -290,6 +229,25 @@ export function registerTools(server, notionToken) {
290
229
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
291
230
  tools: TOOLS
292
231
  }));
232
+ // Resources handlers for full documentation
233
+ server.setRequestHandler(ListResourcesRequestSchema, async () => ({
234
+ resources: RESOURCES.map((r) => ({
235
+ uri: r.uri,
236
+ name: r.name,
237
+ mimeType: 'text/markdown'
238
+ }))
239
+ }));
240
+ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
241
+ const { uri } = request.params;
242
+ const resource = RESOURCES.find((r) => r.uri === uri);
243
+ if (!resource) {
244
+ throw new NotionMCPError(`Resource not found: ${uri}`, 'RESOURCE_NOT_FOUND', `Available: ${RESOURCES.map((r) => r.uri).join(', ')}`);
245
+ }
246
+ const content = readFileSync(join(DOCS_DIR, resource.file), 'utf-8');
247
+ return {
248
+ contents: [{ uri, mimeType: 'text/markdown', text: content }]
249
+ };
250
+ });
293
251
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
294
252
  const { name, arguments: args } = request.params;
295
253
  if (!args) {
@@ -327,6 +285,18 @@ export function registerTools(server, notionToken) {
327
285
  case 'content_convert':
328
286
  result = await contentConvert(args);
329
287
  break;
288
+ case 'help': {
289
+ const toolName = args.tool_name;
290
+ const docFile = `${toolName}.md`;
291
+ try {
292
+ const content = readFileSync(join(DOCS_DIR, docFile), 'utf-8');
293
+ result = { tool: toolName, documentation: content };
294
+ }
295
+ catch {
296
+ throw new NotionMCPError(`Documentation not found for: ${toolName}`, 'DOC_NOT_FOUND', 'Check tool_name');
297
+ }
298
+ break;
299
+ }
330
300
  default:
331
301
  throw new NotionMCPError(`Unknown tool: ${name}`, 'UNKNOWN_TOOL', `Available tools: ${TOOLS.map((t) => t.name).join(', ')}`);
332
302
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/tools/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/tools/registry.ts"],"names":[],"mappings":"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"}