outline-mcp-server 4.9.0 → 4.10.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 (44) hide show
  1. package/README.md +2 -4
  2. package/build/index.js +15 -21
  3. package/build/index.js.map +1 -1
  4. package/build/tools/archiveDocument.js +14 -14
  5. package/build/tools/archiveDocument.js.map +1 -1
  6. package/build/tools/createCollection.js +23 -22
  7. package/build/tools/createCollection.js.map +1 -1
  8. package/build/tools/createComment.js +21 -20
  9. package/build/tools/createComment.js.map +1 -1
  10. package/build/tools/createDocument.js +22 -21
  11. package/build/tools/createDocument.js.map +1 -1
  12. package/build/tools/deleteComment.js +13 -13
  13. package/build/tools/deleteComment.js.map +1 -1
  14. package/build/tools/deleteDocument.js +13 -12
  15. package/build/tools/deleteDocument.js.map +1 -1
  16. package/build/tools/getCollection.js +10 -9
  17. package/build/tools/getCollection.js.map +1 -1
  18. package/build/tools/getDocument.js +10 -9
  19. package/build/tools/getDocument.js.map +1 -1
  20. package/build/tools/listCollections.js +13 -12
  21. package/build/tools/listCollections.js.map +1 -1
  22. package/build/tools/listDocuments.js +41 -31
  23. package/build/tools/listDocuments.js.map +1 -1
  24. package/build/tools/listUsers.js +42 -41
  25. package/build/tools/listUsers.js.map +1 -1
  26. package/build/tools/moveDocument.js +21 -20
  27. package/build/tools/moveDocument.js.map +1 -1
  28. package/build/tools/searchDocuments.js +22 -14
  29. package/build/tools/searchDocuments.js.map +1 -1
  30. package/build/tools/updateCollection.js +27 -26
  31. package/build/tools/updateCollection.js.map +1 -1
  32. package/build/tools/updateComment.js +18 -17
  33. package/build/tools/updateComment.js.map +1 -1
  34. package/build/tools/updateDocument.js +23 -22
  35. package/build/tools/updateDocument.js.map +1 -1
  36. package/build/utils/importTools.d.ts +1 -1
  37. package/build/utils/importTools.d.ts.map +1 -1
  38. package/build/utils/importTools.js +2 -2
  39. package/build/utils/importTools.js.map +1 -1
  40. package/build/utils/listTools.d.ts +5 -5
  41. package/build/utils/listTools.d.ts.map +1 -1
  42. package/build/utils/listTools.js +4 -14
  43. package/build/utils/listTools.js.map +1 -1
  44. package/package.json +4 -4
package/README.md CHANGED
@@ -94,11 +94,9 @@ OUTLINE_BASE_URL=https://your-outline-instance.com/api # Optional, defaults to
94
94
  ```
95
95
 
96
96
  ```bash
97
- # Run the project as an SSE server endpoint
98
- npm run start
97
+ # Builds/watches the project alongside running @modelcontextprotocol/inspector
98
+ npm run dev
99
99
 
100
- # Run the project as an stdio process
101
- npm run start:stdio
102
100
  ```
103
101
 
104
102
  ## Contributing
package/build/index.js CHANGED
@@ -3,47 +3,41 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
3
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
4
  import { CallToolRequestSchema, ErrorCode, ListToolsRequestSchema, McpError, } from '@modelcontextprotocol/sdk/types.js';
5
5
  // Import tool definitions utility
6
- import { getToolDefinitions, getToolHandlers } from './utils/listTools.js';
6
+ import { getToolDefinitions } from './utils/listTools.js';
7
7
  import { registerTools } from './utils/importTools.js';
8
8
  // Dynamically import all tool files
9
- registerTools();
10
- // Build the capabilities object dynamically from registered tools
11
- const toolsCapabilities = {};
12
- getToolDefinitions().forEach(tool => {
13
- toolsCapabilities[tool.name] = true;
14
- });
15
- // Get the tool handlers
16
- const toolHandlers = getToolHandlers();
9
+ await registerTools();
10
+ const toolDefinitions = getToolDefinitions();
11
+ console.log('\n', `loaded ${Object.keys(toolDefinitions).length} tools`, JSON.stringify(Object.keys(toolDefinitions)), '\n');
17
12
  const server = new Server({
18
13
  name: 'outline-mcp',
19
14
  version: '1.0.0',
20
15
  }, {
21
16
  capabilities: {
22
- tools: toolsCapabilities,
17
+ tools: Object.entries(toolDefinitions).reduce((acc, [name, definition]) => {
18
+ acc[name] = true;
19
+ return acc;
20
+ }, {}),
23
21
  },
24
22
  });
25
23
  // Register request handlers
26
24
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
27
- tools: getToolDefinitions(),
25
+ tools: Object.keys(toolDefinitions),
28
26
  }));
29
27
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
30
28
  const { params } = request;
31
- const tool = params.name;
29
+ const toolName = params.name;
32
30
  const parameters = params.arguments || {};
31
+ const toolDefinition = toolDefinitions[toolName];
33
32
  try {
34
- // Check if the tool is supported in our capabilities
35
- if (!toolsCapabilities[tool]) {
36
- return { error: { code: ErrorCode.InvalidRequest, message: `Tool ${tool} not supported` } };
37
- }
38
- // Get the handler for this tool
39
- const handler = toolHandlers[tool];
40
- if (!handler) {
33
+ // Check if the tool is supported
34
+ if (!toolDefinition) {
41
35
  return {
42
- error: { code: ErrorCode.InvalidRequest, message: `No handler found for tool ${tool}` },
36
+ error: { code: ErrorCode.InvalidRequest, message: `Tool ${toolName} not supported` },
43
37
  };
44
38
  }
45
39
  // Call the handler with the provided parameters
46
- const result = await handler(parameters);
40
+ const result = await toolDefinition.handler(parameters);
47
41
  return {
48
42
  content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
49
43
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -4,28 +4,28 @@ import { registerTool } from '../utils/listTools.js';
4
4
  // Register this tool
5
5
  registerTool({
6
6
  name: 'archive_document',
7
- description: 'Archive a document to move outdated information out of sight while retaining the ability to search and restore it later',
7
+ description: 'Archive a document',
8
8
  inputSchema: {
9
9
  properties: {
10
10
  id: {
11
11
  type: 'string',
12
- description: 'Unique identifier for the document. Either the UUID or the urlId is acceptable.',
12
+ description: 'ID of the document to archive',
13
13
  },
14
14
  },
15
15
  required: ['id'],
16
16
  type: 'object',
17
17
  },
18
- }, async function handleArchiveDocument(args) {
19
- try {
20
- const payload = {
21
- id: args.id,
22
- };
23
- const response = await outlineClient.post('/documents.archive', payload);
24
- return response.data;
25
- }
26
- catch (error) {
27
- console.error('Error archiving document:', error.message);
28
- throw new McpError(ErrorCode.InvalidRequest, error.message);
29
- }
18
+ handler: async function handleArchiveDocument(args) {
19
+ try {
20
+ const response = await outlineClient.post('/documents.archive', {
21
+ id: args.id,
22
+ });
23
+ return response.data.data;
24
+ }
25
+ catch (error) {
26
+ console.error('Error archiving document:', error.message);
27
+ throw new McpError(ErrorCode.InvalidRequest, error.message);
28
+ }
29
+ },
30
30
  });
31
31
  //# sourceMappingURL=archiveDocument.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"archiveDocument.js","sourceRoot":"","sources":["../../src/tools/archiveDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CACV;IACE,IAAI,EAAE,kBAAkB;IACxB,WAAW,EACT,yHAAyH;IAC3H,WAAW,EAAE;QACX,UAAU,EAAE;YACV,EAAE,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,iFAAiF;aACpF;SACF;QACD,QAAQ,EAAE,CAAC,IAAI,CAAC;QAChB,IAAI,EAAE,QAAQ;KACf;CACF,EACD,KAAK,UAAU,qBAAqB,CAAC,IAAyB;IAC5D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,IAAI,CAAC,EAAE;SACZ,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"archiveDocument.js","sourceRoot":"","sources":["../../src/tools/archiveDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CAAsB;IAChC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,oBAAoB;IACjC,WAAW,EAAE;QACX,UAAU,EAAE;YACV,EAAE,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+BAA+B;aAC7C;SACF;QACD,QAAQ,EAAE,CAAC,IAAI,CAAC;QAChB,IAAI,EAAE,QAAQ;KACf;IACD,OAAO,EAAE,KAAK,UAAU,qBAAqB,CAAC,IAAyB;QACrE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAC9D,EAAE,EAAE,IAAI,CAAC,EAAE;aACZ,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1D,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -31,29 +31,30 @@ registerTool({
31
31
  required: ['name'],
32
32
  type: 'object',
33
33
  },
34
- }, async function handleCreateCollection(args) {
35
- try {
36
- const payload = {
37
- name: args.name,
38
- };
39
- if (args.description !== undefined) {
40
- payload.description = args.description;
34
+ handler: async function handleCreateCollection(args) {
35
+ try {
36
+ const payload = {
37
+ name: args.name,
38
+ };
39
+ if (args.description !== undefined) {
40
+ payload.description = args.description;
41
+ }
42
+ if (args.permission !== undefined) {
43
+ payload.permission = args.permission;
44
+ }
45
+ if (args.color !== undefined) {
46
+ payload.color = args.color;
47
+ }
48
+ if (args.private !== undefined) {
49
+ payload.private = args.private;
50
+ }
51
+ const response = await outlineClient.post('/collections.create', payload);
52
+ return response.data.data;
41
53
  }
42
- if (args.permission !== undefined) {
43
- payload.permission = args.permission;
54
+ catch (error) {
55
+ console.error('Error creating collection:', error.message);
56
+ throw new McpError(ErrorCode.InvalidRequest, error.message);
44
57
  }
45
- if (args.color !== undefined) {
46
- payload.color = args.color;
47
- }
48
- if (args.private !== undefined) {
49
- payload.private = args.private;
50
- }
51
- const response = await outlineClient.post('/collections.create', payload);
52
- return response.data.data;
53
- }
54
- catch (error) {
55
- console.error('Error creating collection:', error.message);
56
- throw new McpError(ErrorCode.InvalidRequest, error.message);
57
- }
58
+ },
58
59
  });
59
60
  //# sourceMappingURL=createCollection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createCollection.js","sourceRoot":"","sources":["../../src/tools/createCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CACV;IACE,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,yBAAyB;IACtC,WAAW,EAAE;QACX,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yBAAyB;aACvC;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8CAA8C;aAC5D;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wDAAwD;aACtE;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mCAAmC;aACjD;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,oCAAoC;aAClD;SACF;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,IAAI,EAAE,QAAQ;KACf;CACF,EACD,KAAK,UAAU,sBAAsB,CAAC,IAA0B;IAC9D,IAAI,CAAC;QACH,MAAM,OAAO,GAAwB;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;QAEF,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACvC,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACjC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"createCollection.js","sourceRoot":"","sources":["../../src/tools/createCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CAAuB;IACjC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,yBAAyB;IACtC,WAAW,EAAE;QACX,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yBAAyB;aACvC;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8CAA8C;aAC5D;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wDAAwD;aACtE;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mCAAmC;aACjD;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,oCAAoC;aAClD;SACF;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,IAAI,EAAE,QAAQ;KACf;IACD,OAAO,EAAE,KAAK,UAAU,sBAAsB,CAAC,IAA0B;QACvE,IAAI,CAAC;YACH,MAAM,OAAO,GAAwB;gBACnC,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;YAEF,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACnC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACzC,CAAC;YAED,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACvC,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC7B,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACjC,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;YAC1E,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -13,38 +13,39 @@ registerTool({
13
13
  },
14
14
  text: {
15
15
  type: 'string',
16
- description: 'The body of the comment in markdown',
16
+ description: 'Content of the comment in markdown format',
17
17
  },
18
18
  parentCommentId: {
19
19
  type: 'string',
20
- description: 'ID of the parent comment (if replying to another comment)',
20
+ description: 'ID of the parent comment (if replying to a comment)',
21
21
  },
22
22
  data: {
23
23
  type: 'object',
24
- description: 'The body of the comment',
24
+ description: 'Additional data for the comment (optional)',
25
25
  },
26
26
  },
27
27
  required: ['documentId', 'text'],
28
28
  type: 'object',
29
29
  },
30
- }, async function handleCreateComment(args) {
31
- try {
32
- const payload = {
33
- documentId: args.documentId,
34
- text: args.text,
35
- };
36
- if (args.parentCommentId) {
37
- payload.parentCommentId = args.parentCommentId;
30
+ handler: async function handleCreateComment(args) {
31
+ try {
32
+ const payload = {
33
+ documentId: args.documentId,
34
+ text: args.text,
35
+ };
36
+ if (args.parentCommentId) {
37
+ payload.parentCommentId = args.parentCommentId;
38
+ }
39
+ if (args.data) {
40
+ payload.data = args.data;
41
+ }
42
+ const response = await outlineClient.post('/comments.create', payload);
43
+ return response.data.data;
38
44
  }
39
- if (args.data) {
40
- payload.data = args.data;
45
+ catch (error) {
46
+ console.error('Error creating comment:', error.message);
47
+ throw new McpError(ErrorCode.InvalidRequest, error.message);
41
48
  }
42
- const response = await outlineClient.post('/comments.create', payload);
43
- return response.data.data;
44
- }
45
- catch (error) {
46
- console.error('Error creating comment:', error.message);
47
- throw new McpError(ErrorCode.InvalidRequest, error.message);
48
- }
49
+ },
49
50
  });
50
51
  //# sourceMappingURL=createComment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createComment.js","sourceRoot":"","sources":["../../src/tools/createComment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CACV;IACE,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,oCAAoC;IACjD,WAAW,EAAE;QACX,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kCAAkC;aAChD;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qCAAqC;aACnD;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2DAA2D;aACzE;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yBAAyB;aACvC;SACF;QACD,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC;QAChC,IAAI,EAAE,QAAQ;KACf;CACF,EACD,KAAK,UAAU,mBAAmB,CAAC,IAAuB;IACxD,IAAI,CAAC;QACH,MAAM,OAAO,GAAwB;YACnC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;QAEF,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACjD,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"createComment.js","sourceRoot":"","sources":["../../src/tools/createComment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CAAoB;IAC9B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,oCAAoC;IACjD,WAAW,EAAE;QACX,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kCAAkC;aAChD;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2CAA2C;aACzD;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qDAAqD;aACnE;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4CAA4C;aAC1D;SACF;QACD,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC;QAChC,IAAI,EAAE,QAAQ;KACf;IACD,OAAO,EAAE,KAAK,UAAU,mBAAmB,CAAC,IAAuB;QACjE,IAAI,CAAC;YACH,MAAM,OAAO,GAAwB;gBACnC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;YAEF,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACjD,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAC3B,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;YACvE,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACxD,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -36,28 +36,29 @@ registerTool({
36
36
  required: ['title', 'text', 'collectionId'],
37
37
  type: 'object',
38
38
  },
39
- }, async function handleCreateDocument(args) {
40
- try {
41
- const payload = {
42
- title: args.title,
43
- text: args.text,
44
- collectionId: args.collectionId,
45
- };
46
- if (args.parentDocumentId) {
47
- payload.parentDocumentId = args.parentDocumentId;
39
+ handler: async function handleCreateDocument(args) {
40
+ try {
41
+ const payload = {
42
+ title: args.title,
43
+ text: args.text,
44
+ collectionId: args.collectionId,
45
+ };
46
+ if (args.parentDocumentId) {
47
+ payload.parentDocumentId = args.parentDocumentId;
48
+ }
49
+ if (args.publish !== undefined) {
50
+ payload.publish = args.publish ?? true;
51
+ }
52
+ if (args.template !== undefined) {
53
+ payload.template = args.template;
54
+ }
55
+ const response = await outlineClient.post('/documents', payload);
56
+ return response.data.data;
48
57
  }
49
- if (args.publish !== undefined) {
50
- payload.publish = args.publish ?? true;
58
+ catch (error) {
59
+ console.error('Error creating document:', error.message);
60
+ throw new McpError(ErrorCode.InvalidRequest, error.message);
51
61
  }
52
- if (args.template !== undefined) {
53
- payload.template = args.template;
54
- }
55
- const response = await outlineClient.post('/documents', payload);
56
- return response.data.data;
57
- }
58
- catch (error) {
59
- console.error('Error creating document:', error.message);
60
- throw new McpError(ErrorCode.InvalidRequest, error.message);
61
- }
62
+ },
62
63
  });
63
64
  //# sourceMappingURL=createDocument.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createDocument.js","sourceRoot":"","sources":["../../src/tools/createDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CACV;IACE,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE;QACX,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uBAAuB;aACrC;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4CAA4C;aAC1D;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6CAA6C;aAC3D;YACD,gBAAgB,EAAE;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2DAA2D;aACzE;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,6CAA6C;aAC3D;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,qCAAqC;aACnD;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC;QAC3C,IAAI,EAAE,QAAQ;KACf;CACF,EACD,KAAK,UAAU,oBAAoB,CAAC,IAAwB;IAC1D,IAAI,CAAC;QACH,MAAM,OAAO,GAAwB;YACnC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;QAEF,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACnD,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACnC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACjE,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"createDocument.js","sourceRoot":"","sources":["../../src/tools/createDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CAAqB;IAC/B,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE;QACX,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uBAAuB;aACrC;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4CAA4C;aAC1D;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6CAA6C;aAC3D;YACD,gBAAgB,EAAE;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2DAA2D;aACzE;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,6CAA6C;aAC3D;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,qCAAqC;aACnD;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC;QAC3C,IAAI,EAAE,QAAQ;KACf;IACD,OAAO,EAAE,KAAK,UAAU,oBAAoB,CAAC,IAAwB;QACnE,IAAI,CAAC;YACH,MAAM,OAAO,GAAwB;gBACnC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAC;YAEF,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACnD,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;YACzC,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACnC,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACjE,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACzD,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -4,7 +4,7 @@ import { registerTool } from '../utils/listTools.js';
4
4
  // Register this tool
5
5
  registerTool({
6
6
  name: 'delete_comment',
7
- description: 'Delete an existing comment',
7
+ description: 'Delete a comment from a document',
8
8
  inputSchema: {
9
9
  properties: {
10
10
  id: {
@@ -15,17 +15,17 @@ registerTool({
15
15
  required: ['id'],
16
16
  type: 'object',
17
17
  },
18
- }, async function handleDeleteComment(args) {
19
- try {
20
- const payload = {
21
- id: args.id,
22
- };
23
- const response = await outlineClient.post('/comments.delete', payload);
24
- return response.data;
25
- }
26
- catch (error) {
27
- console.error('Error deleting comment:', error.message);
28
- throw new McpError(ErrorCode.InvalidRequest, error.message);
29
- }
18
+ handler: async function handleDeleteComment(args) {
19
+ try {
20
+ const response = await outlineClient.post('/comments.delete', {
21
+ id: args.id,
22
+ });
23
+ return response.data.success;
24
+ }
25
+ catch (error) {
26
+ console.error('Error deleting comment:', error.message);
27
+ throw new McpError(ErrorCode.InvalidRequest, error.message);
28
+ }
29
+ },
30
30
  });
31
31
  //# sourceMappingURL=deleteComment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deleteComment.js","sourceRoot":"","sources":["../../src/tools/deleteComment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CACV;IACE,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,4BAA4B;IACzC,WAAW,EAAE;QACX,UAAU,EAAE;YACV,EAAE,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6BAA6B;aAC3C;SACF;QACD,QAAQ,EAAE,CAAC,IAAI,CAAC;QAChB,IAAI,EAAE,QAAQ;KACf;CACF,EACD,KAAK,UAAU,mBAAmB,CAAC,IAAuB;IACxD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,IAAI,CAAC,EAAE;SACZ,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"deleteComment.js","sourceRoot":"","sources":["../../src/tools/deleteComment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CAAoB;IAC9B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,kCAAkC;IAC/C,WAAW,EAAE;QACX,UAAU,EAAE;YACV,EAAE,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6BAA6B;aAC3C;SACF;QACD,QAAQ,EAAE,CAAC,IAAI,CAAC;QAChB,IAAI,EAAE,QAAQ;KACf;IACD,OAAO,EAAE,KAAK,UAAU,mBAAmB,CAAC,IAAuB;QACjE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC5D,EAAE,EAAE,IAAI,CAAC,EAAE;aACZ,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACxD,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -12,19 +12,20 @@ registerTool({
12
12
  description: 'ID of the document to delete',
13
13
  },
14
14
  },
15
- required: ['documentId'],
15
+ required: ['id'],
16
16
  type: 'object',
17
17
  },
18
- }, async function handleDeleteDocument(args) {
19
- try {
20
- const response = await outlineClient.post(`/documents.delete`, {
21
- id: args.id,
22
- });
23
- return { success: response.status === 200 };
24
- }
25
- catch (error) {
26
- console.error('Error deleting document:', error.message);
27
- throw new McpError(ErrorCode.InvalidRequest, error.message);
28
- }
18
+ handler: async function handleDeleteDocument(args) {
19
+ try {
20
+ const response = await outlineClient.post('/documents.delete', {
21
+ id: args.id,
22
+ });
23
+ return response.data.success;
24
+ }
25
+ catch (error) {
26
+ console.error('Error deleting document:', error.message);
27
+ throw new McpError(ErrorCode.InvalidRequest, error.message);
28
+ }
29
+ },
29
30
  });
30
31
  //# sourceMappingURL=deleteDocument.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deleteDocument.js","sourceRoot":"","sources":["../../src/tools/deleteDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CACV;IACE,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE;QACX,UAAU,EAAE;YACV,EAAE,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8BAA8B;aAC5C;SACF;QACD,QAAQ,EAAE,CAAC,YAAY,CAAC;QACxB,IAAI,EAAE,QAAQ;KACf;CACF,EACD,KAAK,UAAU,oBAAoB,CAAC,IAAwB;IAC1D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC7D,EAAE,EAAE,IAAI,CAAC,EAAE;SACZ,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"deleteDocument.js","sourceRoot":"","sources":["../../src/tools/deleteDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CAAqB;IAC/B,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE;QACX,UAAU,EAAE;YACV,EAAE,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8BAA8B;aAC5C;SACF;QACD,QAAQ,EAAE,CAAC,IAAI,CAAC;QAChB,IAAI,EAAE,QAAQ;KACf;IACD,OAAO,EAAE,KAAK,UAAU,oBAAoB,CAAC,IAAwB;QACnE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBAC7D,EAAE,EAAE,IAAI,CAAC,EAAE;aACZ,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACzD,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -15,14 +15,15 @@ registerTool({
15
15
  required: ['id'],
16
16
  type: 'object',
17
17
  },
18
- }, async function handleGetCollection(args) {
19
- try {
20
- const response = await outlineClient.post(`/collections.info`, { id: args.id });
21
- return response.data.data;
22
- }
23
- catch (error) {
24
- console.error('Error getting collection:', error.message);
25
- throw new McpError(ErrorCode.InvalidRequest, error.message);
26
- }
18
+ handler: async function handleGetCollection(args) {
19
+ try {
20
+ const response = await outlineClient.post(`/collections.info`, { id: args.id });
21
+ return response.data.data;
22
+ }
23
+ catch (error) {
24
+ console.error('Error getting collection:', error.message);
25
+ throw new McpError(ErrorCode.InvalidRequest, error.message);
26
+ }
27
+ },
27
28
  });
28
29
  //# sourceMappingURL=getCollection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getCollection.js","sourceRoot":"","sources":["../../src/tools/getCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CACV;IACE,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,yCAAyC;IACtD,WAAW,EAAE;QACX,UAAU,EAAE;YACV,EAAE,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kCAAkC;aAChD;SACF;QACD,QAAQ,EAAE,CAAC,IAAI,CAAC;QAChB,IAAI,EAAE,QAAQ;KACf;CACF,EACD,KAAK,UAAU,mBAAmB,CAAC,IAAuB;IACxD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAChF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"getCollection.js","sourceRoot":"","sources":["../../src/tools/getCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CAAoB;IAC9B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,yCAAyC;IACtD,WAAW,EAAE;QACX,UAAU,EAAE;YACV,EAAE,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kCAAkC;aAChD;SACF;QACD,QAAQ,EAAE,CAAC,IAAI,CAAC;QAChB,IAAI,EAAE,QAAQ;KACf;IACD,OAAO,EAAE,KAAK,UAAU,mBAAmB,CAAC,IAAuB;QACjE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAChF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1D,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -14,14 +14,15 @@ registerTool({
14
14
  },
15
15
  type: 'object',
16
16
  },
17
- }, async function handleGetDocument(args) {
18
- try {
19
- const response = await outlineClient.post(`/documents.info`, { id: args.id });
20
- return response.data.data;
21
- }
22
- catch (error) {
23
- console.error('Error getting document:', error.message);
24
- throw new McpError(ErrorCode.InvalidRequest, error.message);
25
- }
17
+ handler: async function handleGetDocument(args) {
18
+ try {
19
+ const response = await outlineClient.post('/documents.info', { id: args.id });
20
+ return response.data.data;
21
+ }
22
+ catch (error) {
23
+ console.error('Error getting document:', error.message);
24
+ throw new McpError(ErrorCode.InvalidRequest, error.message);
25
+ }
26
+ },
26
27
  });
27
28
  //# sourceMappingURL=getDocument.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDocument.js","sourceRoot":"","sources":["../../src/tools/getDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CACV;IACE,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,8EAA8E;IAC3F,WAAW,EAAE;QACX,UAAU,EAAE;YACV,EAAE,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,gFAAgF;aACnF;SACF;QACD,IAAI,EAAE,QAAQ;KACf;CACF,EACD,KAAK,UAAU,iBAAiB,CAAC,IAAqB;IACpD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9E,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"getDocument.js","sourceRoot":"","sources":["../../src/tools/getDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CAAkB;IAC5B,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,8EAA8E;IAC3F,WAAW,EAAE;QACX,UAAU,EAAE;YACV,EAAE,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,gFAAgF;aACnF;SACF;QACD,IAAI,EAAE,QAAQ;KACf;IACD,OAAO,EAAE,KAAK,UAAU,iBAAiB,CAAC,IAAqB;QAC7D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9E,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACxD,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -14,18 +14,19 @@ registerTool({
14
14
  },
15
15
  type: 'object',
16
16
  },
17
- }, async function handleListCollections(args) {
18
- try {
19
- const params = {};
20
- if (args.limit) {
21
- params.limit = args.limit;
17
+ handler: async function handleListCollections(args) {
18
+ try {
19
+ const payload = {};
20
+ if (args.limit) {
21
+ payload.limit = args.limit;
22
+ }
23
+ const response = await outlineClient.post('/collections.list', payload);
24
+ return response.data.data;
22
25
  }
23
- const response = await outlineClient.post('/collections.list', params);
24
- return response.data.data || [];
25
- }
26
- catch (error) {
27
- console.error('Error listing collections:', error.message);
28
- throw new McpError(ErrorCode.InvalidRequest, error.message);
29
- }
26
+ catch (error) {
27
+ console.error('Error listing collections:', error.message);
28
+ throw new McpError(ErrorCode.InvalidRequest, error.message);
29
+ }
30
+ },
30
31
  });
31
32
  //# sourceMappingURL=listCollections.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"listCollections.js","sourceRoot":"","sources":["../../src/tools/listCollections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CACV;IACE,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,+CAA+C;IAC5D,WAAW,EAAE;QACX,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oDAAoD;aAClE;SACF;QACD,IAAI,EAAE,QAAQ;KACf;CACF,EACD,KAAK,UAAU,qBAAqB,CAAC,IAAyB;IAC5D,IAAI,CAAC;QACH,MAAM,MAAM,GAAwB,EAAE,CAAC;QAEvC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAClC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"listCollections.js","sourceRoot":"","sources":["../../src/tools/listCollections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAqB;AACrB,YAAY,CAAsB;IAChC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,+CAA+C;IAC5D,WAAW,EAAE;QACX,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oDAAoD;aAClE;SACF;QACD,IAAI,EAAE,QAAQ;KACf;IACD,OAAO,EAAE,KAAK,UAAU,qBAAqB,CAAC,IAAyB;QACrE,IAAI,CAAC;YACH,MAAM,OAAO,GAAwB,EAAE,CAAC;YAExC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC7B,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;YACxE,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}