@shuji-bonji/pdf-reader-mcp 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 (129) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/LICENSE +21 -0
  3. package/README.ja.md +190 -0
  4. package/README.md +206 -0
  5. package/dist/constants.d.ts +22 -0
  6. package/dist/constants.d.ts.map +1 -0
  7. package/dist/constants.js +23 -0
  8. package/dist/constants.js.map +1 -0
  9. package/dist/index.d.ts +9 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +35 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/schemas/common.d.ts +14 -0
  14. package/dist/schemas/common.d.ts.map +1 -0
  15. package/dist/schemas/common.js +26 -0
  16. package/dist/schemas/common.js.map +1 -0
  17. package/dist/schemas/tier1.d.ts +104 -0
  18. package/dist/schemas/tier1.d.ts.map +1 -0
  19. package/dist/schemas/tier1.js +77 -0
  20. package/dist/schemas/tier1.js.map +1 -0
  21. package/dist/schemas/tier2.d.ts +68 -0
  22. package/dist/schemas/tier2.d.ts.map +1 -0
  23. package/dist/schemas/tier2.js +42 -0
  24. package/dist/schemas/tier2.js.map +1 -0
  25. package/dist/schemas/tier3.d.ts +44 -0
  26. package/dist/schemas/tier3.d.ts.map +1 -0
  27. package/dist/schemas/tier3.js +28 -0
  28. package/dist/schemas/tier3.js.map +1 -0
  29. package/dist/services/pdfjs-service.d.ts +65 -0
  30. package/dist/services/pdfjs-service.d.ts.map +1 -0
  31. package/dist/services/pdfjs-service.js +520 -0
  32. package/dist/services/pdfjs-service.js.map +1 -0
  33. package/dist/services/pdflib-service.d.ts +35 -0
  34. package/dist/services/pdflib-service.d.ts.map +1 -0
  35. package/dist/services/pdflib-service.js +318 -0
  36. package/dist/services/pdflib-service.js.map +1 -0
  37. package/dist/services/url-fetcher.d.ts +8 -0
  38. package/dist/services/url-fetcher.d.ts.map +1 -0
  39. package/dist/services/url-fetcher.js +40 -0
  40. package/dist/services/url-fetcher.js.map +1 -0
  41. package/dist/services/validation-service.d.ts +49 -0
  42. package/dist/services/validation-service.d.ts.map +1 -0
  43. package/dist/services/validation-service.js +670 -0
  44. package/dist/services/validation-service.js.map +1 -0
  45. package/dist/tools/index.d.ts +10 -0
  46. package/dist/tools/index.d.ts.map +1 -0
  47. package/dist/tools/index.js +46 -0
  48. package/dist/tools/index.js.map +1 -0
  49. package/dist/tools/tier1/get-metadata.d.ts +6 -0
  50. package/dist/tools/tier1/get-metadata.d.ts.map +1 -0
  51. package/dist/tools/tier1/get-metadata.js +49 -0
  52. package/dist/tools/tier1/get-metadata.js.map +1 -0
  53. package/dist/tools/tier1/get-page-count.d.ts +6 -0
  54. package/dist/tools/tier1/get-page-count.d.ts.map +1 -0
  55. package/dist/tools/tier1/get-page-count.js +50 -0
  56. package/dist/tools/tier1/get-page-count.js.map +1 -0
  57. package/dist/tools/tier1/read-images.d.ts +6 -0
  58. package/dist/tools/tier1/read-images.d.ts.map +1 -0
  59. package/dist/tools/tier1/read-images.js +79 -0
  60. package/dist/tools/tier1/read-images.js.map +1 -0
  61. package/dist/tools/tier1/read-text.d.ts +6 -0
  62. package/dist/tools/tier1/read-text.d.ts.map +1 -0
  63. package/dist/tools/tier1/read-text.js +57 -0
  64. package/dist/tools/tier1/read-text.js.map +1 -0
  65. package/dist/tools/tier1/read-url.d.ts +6 -0
  66. package/dist/tools/tier1/read-url.d.ts.map +1 -0
  67. package/dist/tools/tier1/read-url.js +64 -0
  68. package/dist/tools/tier1/read-url.js.map +1 -0
  69. package/dist/tools/tier1/search-text.d.ts +6 -0
  70. package/dist/tools/tier1/search-text.d.ts.map +1 -0
  71. package/dist/tools/tier1/search-text.js +62 -0
  72. package/dist/tools/tier1/search-text.js.map +1 -0
  73. package/dist/tools/tier1/summarize.d.ts +6 -0
  74. package/dist/tools/tier1/summarize.d.ts.map +1 -0
  75. package/dist/tools/tier1/summarize.js +70 -0
  76. package/dist/tools/tier1/summarize.js.map +1 -0
  77. package/dist/tools/tier2/inspect-annotations.d.ts +6 -0
  78. package/dist/tools/tier2/inspect-annotations.d.ts.map +1 -0
  79. package/dist/tools/tier2/inspect-annotations.js +47 -0
  80. package/dist/tools/tier2/inspect-annotations.js.map +1 -0
  81. package/dist/tools/tier2/inspect-fonts.d.ts +6 -0
  82. package/dist/tools/tier2/inspect-fonts.d.ts.map +1 -0
  83. package/dist/tools/tier2/inspect-fonts.js +54 -0
  84. package/dist/tools/tier2/inspect-fonts.js.map +1 -0
  85. package/dist/tools/tier2/inspect-signatures.d.ts +6 -0
  86. package/dist/tools/tier2/inspect-signatures.d.ts.map +1 -0
  87. package/dist/tools/tier2/inspect-signatures.js +48 -0
  88. package/dist/tools/tier2/inspect-signatures.js.map +1 -0
  89. package/dist/tools/tier2/inspect-structure.d.ts +6 -0
  90. package/dist/tools/tier2/inspect-structure.d.ts.map +1 -0
  91. package/dist/tools/tier2/inspect-structure.js +46 -0
  92. package/dist/tools/tier2/inspect-structure.js.map +1 -0
  93. package/dist/tools/tier2/inspect-tags.d.ts +6 -0
  94. package/dist/tools/tier2/inspect-tags.d.ts.map +1 -0
  95. package/dist/tools/tier2/inspect-tags.js +46 -0
  96. package/dist/tools/tier2/inspect-tags.js.map +1 -0
  97. package/dist/tools/tier3/compare-structure.d.ts +6 -0
  98. package/dist/tools/tier3/compare-structure.d.ts.map +1 -0
  99. package/dist/tools/tier3/compare-structure.js +47 -0
  100. package/dist/tools/tier3/compare-structure.js.map +1 -0
  101. package/dist/tools/tier3/validate-metadata.d.ts +6 -0
  102. package/dist/tools/tier3/validate-metadata.d.ts.map +1 -0
  103. package/dist/tools/tier3/validate-metadata.js +57 -0
  104. package/dist/tools/tier3/validate-metadata.js.map +1 -0
  105. package/dist/tools/tier3/validate-tagged.d.ts +6 -0
  106. package/dist/tools/tier3/validate-tagged.d.ts.map +1 -0
  107. package/dist/tools/tier3/validate-tagged.js +56 -0
  108. package/dist/tools/tier3/validate-tagged.js.map +1 -0
  109. package/dist/types.d.ts +226 -0
  110. package/dist/types.d.ts.map +1 -0
  111. package/dist/types.js +5 -0
  112. package/dist/types.js.map +1 -0
  113. package/dist/utils/batch-processor.d.ts +60 -0
  114. package/dist/utils/batch-processor.d.ts.map +1 -0
  115. package/dist/utils/batch-processor.js +72 -0
  116. package/dist/utils/batch-processor.js.map +1 -0
  117. package/dist/utils/error-handler.d.ts +23 -0
  118. package/dist/utils/error-handler.d.ts.map +1 -0
  119. package/dist/utils/error-handler.js +76 -0
  120. package/dist/utils/error-handler.js.map +1 -0
  121. package/dist/utils/formatter.d.ts +64 -0
  122. package/dist/utils/formatter.d.ts.map +1 -0
  123. package/dist/utils/formatter.js +379 -0
  124. package/dist/utils/formatter.js.map +1 -0
  125. package/dist/utils/pdf-helpers.d.ts +22 -0
  126. package/dist/utils/pdf-helpers.d.ts.map +1 -0
  127. package/dist/utils/pdf-helpers.js +68 -0
  128. package/dist/utils/pdf-helpers.js.map +1 -0
  129. package/package.json +78 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-service.js","sourceRoot":"","sources":["../../src/services/validation-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Tool registration entry point.
3
+ * Registers all available tools with the MCP server.
4
+ */
5
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
6
+ /**
7
+ * Register all tools with the MCP server.
8
+ */
9
+ export declare function registerAllTools(server: McpServer): void;
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoBzE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqBxD"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Tool registration entry point.
3
+ * Registers all available tools with the MCP server.
4
+ */
5
+ import { registerGetMetadata } from './tier1/get-metadata.js';
6
+ // Tier 1: Basic tools
7
+ import { registerGetPageCount } from './tier1/get-page-count.js';
8
+ import { registerReadImages } from './tier1/read-images.js';
9
+ import { registerReadText } from './tier1/read-text.js';
10
+ import { registerReadUrl } from './tier1/read-url.js';
11
+ import { registerSearchText } from './tier1/search-text.js';
12
+ import { registerSummarize } from './tier1/summarize.js';
13
+ // Tier 2: Structure analysis
14
+ import { registerInspectAnnotations } from './tier2/inspect-annotations.js';
15
+ import { registerInspectFonts } from './tier2/inspect-fonts.js';
16
+ import { registerInspectSignatures } from './tier2/inspect-signatures.js';
17
+ import { registerInspectStructure } from './tier2/inspect-structure.js';
18
+ import { registerInspectTags } from './tier2/inspect-tags.js';
19
+ // Tier 3: Validation & analysis
20
+ import { registerCompareStructure } from './tier3/compare-structure.js';
21
+ import { registerValidateMetadata } from './tier3/validate-metadata.js';
22
+ import { registerValidateTagged } from './tier3/validate-tagged.js';
23
+ /**
24
+ * Register all tools with the MCP server.
25
+ */
26
+ export function registerAllTools(server) {
27
+ // Tier 1: Basic PDF operations
28
+ registerGetPageCount(server);
29
+ registerGetMetadata(server);
30
+ registerReadText(server);
31
+ registerSearchText(server);
32
+ registerReadImages(server);
33
+ registerReadUrl(server);
34
+ registerSummarize(server);
35
+ // Tier 2: Structure analysis
36
+ registerInspectStructure(server);
37
+ registerInspectTags(server);
38
+ registerInspectFonts(server);
39
+ registerInspectAnnotations(server);
40
+ registerInspectSignatures(server);
41
+ // Tier 3: Validation & analysis
42
+ registerValidateTagged(server);
43
+ registerValidateMetadata(server);
44
+ registerCompareStructure(server);
45
+ }
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,sBAAsB;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,6BAA6B;AAC7B,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,gCAAgC;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,+BAA+B;IAC/B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzB,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE1B,6BAA6B;IAC7B,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAElC,gCAAgC;IAChC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,wBAAwB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * get_metadata - PDF metadata extraction.
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ export declare function registerGetMetadata(server: McpServer): void;
6
+ //# sourceMappingURL=get-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-metadata.d.ts","sourceRoot":"","sources":["../../../src/tools/tier1/get-metadata.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6C3D"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * get_metadata - PDF metadata extraction.
3
+ */
4
+ import { ResponseFormat } from '../../constants.js';
5
+ import { GetMetadataSchema } from '../../schemas/tier1.js';
6
+ import { getMetadata } from '../../services/pdfjs-service.js';
7
+ import { handleError } from '../../utils/error-handler.js';
8
+ import { formatMetadataMarkdown } from '../../utils/formatter.js';
9
+ export function registerGetMetadata(server) {
10
+ server.registerTool('get_metadata', {
11
+ title: 'Get PDF Metadata',
12
+ description: `Extract metadata from a PDF document including title, author, creation date, page count, PDF version, and structural information.
13
+
14
+ Args:
15
+ - file_path (string): Absolute path to a local PDF file
16
+ - response_format ('markdown' | 'json'): Output format (default: 'markdown')
17
+
18
+ Returns:
19
+ Metadata including: title, author, subject, keywords, creator, producer, creation/modification dates, page count, PDF version, linearized/encrypted/tagged/signature flags, file size.
20
+
21
+ Examples:
22
+ - Get document properties for cataloging
23
+ - Check if a PDF is tagged (accessibility)
24
+ - Verify PDF version compatibility`,
25
+ inputSchema: GetMetadataSchema,
26
+ annotations: {
27
+ readOnlyHint: true,
28
+ destructiveHint: false,
29
+ idempotentHint: true,
30
+ openWorldHint: false,
31
+ },
32
+ }, async (params) => {
33
+ try {
34
+ const metadata = await getMetadata(params.file_path);
35
+ const text = params.response_format === ResponseFormat.JSON
36
+ ? JSON.stringify(metadata, null, 2)
37
+ : formatMetadataMarkdown(metadata);
38
+ return {
39
+ content: [{ type: 'text', text }],
40
+ };
41
+ }
42
+ catch (error) {
43
+ return {
44
+ content: [{ type: 'text', text: handleError(error) }],
45
+ };
46
+ }
47
+ });
48
+ }
49
+ //# sourceMappingURL=get-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-metadata.js","sourceRoot":"","sources":["../../../src/tools/tier1/get-metadata.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAyB,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE;;;;;;;;;;;;qCAYkB;QAC/B,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAwB,EAAE,EAAE;QACjC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAErD,MAAM,IAAI,GACR,MAAM,CAAC,eAAe,KAAK,cAAc,CAAC,IAAI;gBAC5C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YAEvC,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;aAC3C,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;aAC/D,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * get_page_count - Lightweight page count retrieval.
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ export declare function registerGetPageCount(server: McpServer): void;
6
+ //# sourceMappingURL=get-page-count.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-page-count.d.ts","sourceRoot":"","sources":["../../../src/tools/tier1/get-page-count.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4C5D"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * get_page_count - Lightweight page count retrieval.
3
+ */
4
+ import { GetPageCountSchema } from '../../schemas/tier1.js';
5
+ import { loadDocument } from '../../services/pdfjs-service.js';
6
+ import { handleError } from '../../utils/error-handler.js';
7
+ export function registerGetPageCount(server) {
8
+ server.registerTool('get_page_count', {
9
+ title: 'Get PDF Page Count',
10
+ description: `Get the total number of pages in a PDF document.
11
+
12
+ This is a lightweight operation that only reads the PDF header, not the full content.
13
+
14
+ Args:
15
+ - file_path (string): Absolute path to a local PDF file
16
+
17
+ Returns:
18
+ Page count as a number.
19
+
20
+ Examples:
21
+ - Quick check before deciding which pages to extract
22
+ - Validate a PDF file is readable`,
23
+ inputSchema: GetPageCountSchema,
24
+ annotations: {
25
+ readOnlyHint: true,
26
+ destructiveHint: false,
27
+ idempotentHint: true,
28
+ openWorldHint: false,
29
+ },
30
+ }, async (params) => {
31
+ try {
32
+ const doc = await loadDocument(params.file_path);
33
+ try {
34
+ const count = doc.numPages;
35
+ return {
36
+ content: [{ type: 'text', text: String(count) }],
37
+ };
38
+ }
39
+ finally {
40
+ await doc.destroy();
41
+ }
42
+ }
43
+ catch (error) {
44
+ return {
45
+ content: [{ type: 'text', text: handleError(error) }],
46
+ };
47
+ }
48
+ });
49
+ }
50
+ //# sourceMappingURL=get-page-count.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-page-count.js","sourceRoot":"","sources":["../../../src/tools/tier1/get-page-count.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAA0B,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE;;;;;;;;;;;;oCAYiB;QAC9B,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAyB,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC;gBAC3B,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;iBAC1D,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;aAC/D,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * read_images - Extract images from PDF pages.
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ export declare function registerReadImages(server: McpServer): void;
6
+ //# sourceMappingURL=read-images.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-images.d.ts","sourceRoot":"","sources":["../../../src/tools/tier1/read-images.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+E1D"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * read_images - Extract images from PDF pages.
3
+ */
4
+ import { ReadImagesSchema } from '../../schemas/tier1.js';
5
+ import { extractImages } from '../../services/pdfjs-service.js';
6
+ import { handleError } from '../../utils/error-handler.js';
7
+ export function registerReadImages(server) {
8
+ server.registerTool('read_images', {
9
+ title: 'Read PDF Images',
10
+ description: `Extract images from a PDF document as base64-encoded data.
11
+
12
+ Extracts embedded images from specified or all pages. Returns image metadata (dimensions, color space) along with raw pixel data in base64.
13
+
14
+ Args:
15
+ - file_path (string): Absolute path to a local PDF file
16
+ - pages (string, optional): Page range. Format: "1-5", "3", or "1,3,5-7". Omit for all pages.
17
+
18
+ Returns:
19
+ Array of extracted images with: page number, index, width, height, color space (RGB/RGBA/Grayscale), bits per component, and base64-encoded data.
20
+
21
+ Note: Large images may produce very large responses. Use the pages parameter to limit scope.
22
+
23
+ Examples:
24
+ - Extract all images: { file_path: "/path/to/doc.pdf" }
25
+ - Extract from page 1: { file_path: "/path/to/doc.pdf", pages: "1" }`,
26
+ inputSchema: ReadImagesSchema,
27
+ annotations: {
28
+ readOnlyHint: true,
29
+ destructiveHint: false,
30
+ idempotentHint: true,
31
+ openWorldHint: false,
32
+ },
33
+ }, async (params) => {
34
+ try {
35
+ const result = await extractImages(params.file_path, params.pages);
36
+ if (result.extractedCount === 0) {
37
+ if (result.skippedCount > 0) {
38
+ return {
39
+ content: [
40
+ {
41
+ type: 'text',
42
+ text: `${result.detectedCount} image(s) detected in the PDF, ` +
43
+ 'but none could be extracted. ' +
44
+ 'The images may use an encoding format that is not directly accessible.',
45
+ },
46
+ ],
47
+ };
48
+ }
49
+ return {
50
+ content: [{ type: 'text', text: 'No images found in the specified pages.' }],
51
+ };
52
+ }
53
+ // Build response with full image data including base64
54
+ const imagesWithData = result.images.map((img) => ({
55
+ page: img.page,
56
+ index: img.index,
57
+ width: img.width,
58
+ height: img.height,
59
+ colorSpace: img.colorSpace,
60
+ bitsPerComponent: img.bitsPerComponent,
61
+ dataBase64: img.dataBase64,
62
+ }));
63
+ let text = `Found ${result.extractedCount} image(s).`;
64
+ if (result.skippedCount > 0) {
65
+ text += ` (${result.skippedCount} additional image(s) could not be extracted)`;
66
+ }
67
+ text += `\n\n${JSON.stringify(imagesWithData, null, 2)}`;
68
+ return {
69
+ content: [{ type: 'text', text }],
70
+ };
71
+ }
72
+ catch (error) {
73
+ return {
74
+ content: [{ type: 'text', text: handleError(error) }],
75
+ };
76
+ }
77
+ });
78
+ }
79
+ //# sourceMappingURL=read-images.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-images.js","sourceRoot":"","sources":["../../../src/tools/tier1/read-images.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAwB,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE;;;;;;;;;;;;;;;uEAeoD;QACjE,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAuB,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAEnE,IAAI,MAAM,CAAC,cAAc,KAAK,CAAC,EAAE,CAAC;gBAChC,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;oBAC5B,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAe;gCACrB,IAAI,EACF,GAAG,MAAM,CAAC,aAAa,iCAAiC;oCACxD,+BAA+B;oCAC/B,wEAAwE;6BAC3E;yBACF;qBACF,CAAC;gBACJ,CAAC;gBACD,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,yCAAyC,EAAE,CAAC;iBACtF,CAAC;YACJ,CAAC;YAED,uDAAuD;YACvD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACjD,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,UAAU,EAAE,GAAG,CAAC,UAAU;aAC3B,CAAC,CAAC,CAAC;YAEJ,IAAI,IAAI,GAAG,SAAS,MAAM,CAAC,cAAc,YAAY,CAAC;YACtD,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;gBAC5B,IAAI,IAAI,KAAK,MAAM,CAAC,YAAY,8CAA8C,CAAC;YACjF,CAAC;YACD,IAAI,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAEzD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;aAC3C,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;aAC/D,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * read_text - Text extraction with Y-coordinate-based reading order.
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ export declare function registerReadText(server: McpServer): void;
6
+ //# sourceMappingURL=read-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-text.d.ts","sourceRoot":"","sources":["../../../src/tools/tier1/read-text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoDxD"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * read_text - Text extraction with Y-coordinate-based reading order.
3
+ */
4
+ import { ResponseFormat } from '../../constants.js';
5
+ import { ReadTextSchema } from '../../schemas/tier1.js';
6
+ import { extractText } from '../../services/pdfjs-service.js';
7
+ import { handleError } from '../../utils/error-handler.js';
8
+ import { formatPageTextsMarkdown, truncateIfNeeded } from '../../utils/formatter.js';
9
+ export function registerReadText(server) {
10
+ server.registerTool('read_text', {
11
+ title: 'Read PDF Text',
12
+ description: `Extract text content from a PDF document with Y-coordinate-based reading order preservation.
13
+
14
+ Text is extracted page by page, sorted by vertical position (top to bottom) then horizontal position (left to right), providing natural reading order.
15
+
16
+ Args:
17
+ - file_path (string): Absolute path to a local PDF file
18
+ - pages (string, optional): Page range to extract. Format: "1-5", "3", or "1,3,5-7". Omit for all pages.
19
+ - response_format ('markdown' | 'json'): Output format (default: 'markdown')
20
+
21
+ Returns:
22
+ Extracted text organized by page number.
23
+
24
+ Examples:
25
+ - Extract all text: { file_path: "/path/to/doc.pdf" }
26
+ - Extract pages 1-3: { file_path: "/path/to/doc.pdf", pages: "1-3" }
27
+ - Extract specific pages: { file_path: "/path/to/doc.pdf", pages: "1,5,10" }`,
28
+ inputSchema: ReadTextSchema,
29
+ annotations: {
30
+ readOnlyHint: true,
31
+ destructiveHint: false,
32
+ idempotentHint: true,
33
+ openWorldHint: false,
34
+ },
35
+ }, async (params) => {
36
+ try {
37
+ const pages = await extractText(params.file_path, params.pages);
38
+ let text;
39
+ if (params.response_format === ResponseFormat.JSON) {
40
+ text = JSON.stringify(pages, null, 2);
41
+ }
42
+ else {
43
+ text = formatPageTextsMarkdown(pages);
44
+ }
45
+ const { text: finalText } = truncateIfNeeded(text);
46
+ return {
47
+ content: [{ type: 'text', text: finalText }],
48
+ };
49
+ }
50
+ catch (error) {
51
+ return {
52
+ content: [{ type: 'text', text: handleError(error) }],
53
+ };
54
+ }
55
+ });
56
+ }
57
+ //# sourceMappingURL=read-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-text.js","sourceRoot":"","sources":["../../../src/tools/tier1/read-text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAsB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAErF,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE;;;;;;;;;;;;;;;+EAe4D;QACzE,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAqB,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAEhE,IAAI,IAAY,CAAC;YACjB,IAAI,MAAM,CAAC,eAAe,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC;gBACnD,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAEnD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;aACtD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;aAC/D,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * read_url - Fetch and extract text from a remote PDF.
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ export declare function registerReadUrl(server: McpServer): void;
6
+ //# sourceMappingURL=read-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-url.d.ts","sourceRoot":"","sources":["../../../src/tools/tier1/read-url.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyDvD"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * read_url - Fetch and extract text from a remote PDF.
3
+ */
4
+ import { ResponseFormat } from '../../constants.js';
5
+ import { ReadUrlSchema } from '../../schemas/tier1.js';
6
+ import { extractTextFromDoc, loadDocumentFromData } from '../../services/pdfjs-service.js';
7
+ import { fetchPdfFromUrl } from '../../services/url-fetcher.js';
8
+ import { handleError } from '../../utils/error-handler.js';
9
+ import { formatPageTextsMarkdown, truncateIfNeeded } from '../../utils/formatter.js';
10
+ export function registerReadUrl(server) {
11
+ server.registerTool('read_url', {
12
+ title: 'Read PDF from URL',
13
+ description: `Fetch a PDF from a URL and extract its text content.
14
+
15
+ Downloads the PDF from the specified URL, then extracts text with Y-coordinate-based reading order. Supports HTTP and HTTPS. Maximum file size: 50MB. Timeout: 30 seconds.
16
+
17
+ Args:
18
+ - url (string): URL pointing to a PDF file (HTTP or HTTPS)
19
+ - pages (string, optional): Page range to extract. Format: "1-5", "3", or "1,3,5-7". Omit for all pages.
20
+ - response_format ('markdown' | 'json'): Output format (default: 'markdown')
21
+
22
+ Returns:
23
+ Extracted text organized by page number, same format as read_text.
24
+
25
+ Examples:
26
+ - Read remote PDF: { url: "https://example.com/document.pdf" }
27
+ - Read specific pages: { url: "https://example.com/doc.pdf", pages: "1-3" }`,
28
+ inputSchema: ReadUrlSchema,
29
+ annotations: {
30
+ readOnlyHint: true,
31
+ destructiveHint: false,
32
+ idempotentHint: false,
33
+ openWorldHint: true,
34
+ },
35
+ }, async (params) => {
36
+ try {
37
+ const data = await fetchPdfFromUrl(params.url);
38
+ const doc = await loadDocumentFromData(data);
39
+ try {
40
+ const results = await extractTextFromDoc(doc, params.pages);
41
+ let text;
42
+ if (params.response_format === ResponseFormat.JSON) {
43
+ text = JSON.stringify(results, null, 2);
44
+ }
45
+ else {
46
+ text = formatPageTextsMarkdown(results);
47
+ }
48
+ const { text: finalText } = truncateIfNeeded(text);
49
+ return {
50
+ content: [{ type: 'text', text: finalText }],
51
+ };
52
+ }
53
+ finally {
54
+ await doc.destroy();
55
+ }
56
+ }
57
+ catch (error) {
58
+ return {
59
+ content: [{ type: 'text', text: handleError(error) }],
60
+ };
61
+ }
62
+ });
63
+ }
64
+ //# sourceMappingURL=read-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-url.js","sourceRoot":"","sources":["../../../src/tools/tier1/read-url.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAqB,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAErF,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,CAAC,YAAY,CACjB,UAAU,EACV;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE;;;;;;;;;;;;;;8EAc2D;QACxE,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,MAAoB,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAE7C,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE5D,IAAI,IAAY,CAAC;gBACjB,IAAI,MAAM,CAAC,eAAe,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC;oBACnD,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACN,IAAI,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;gBAC1C,CAAC;gBAED,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACnD,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;iBACtD,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;aAC/D,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * search_text - Full-text search within a PDF.
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ export declare function registerSearchText(server: McpServer): void;
6
+ //# sourceMappingURL=search-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-text.d.ts","sourceRoot":"","sources":["../../../src/tools/tier1/search-text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiE1D"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * search_text - Full-text search within a PDF.
3
+ */
4
+ import { ResponseFormat } from '../../constants.js';
5
+ import { SearchTextSchema } from '../../schemas/tier1.js';
6
+ import { searchText } from '../../services/pdfjs-service.js';
7
+ import { handleError } from '../../utils/error-handler.js';
8
+ import { formatSearchResultMarkdown } from '../../utils/formatter.js';
9
+ export function registerSearchText(server) {
10
+ server.registerTool('search_text', {
11
+ title: 'Search PDF Text',
12
+ description: `Search for text within a PDF document. Returns matching locations with surrounding context.
13
+
14
+ Case-insensitive search across all or specified pages. Each match includes the page number, the matched text, and configurable surrounding context.
15
+
16
+ Args:
17
+ - file_path (string): Absolute path to a local PDF file
18
+ - query (string): Text to search for (case-insensitive, 1-500 chars)
19
+ - pages (string, optional): Page range to search. Omit for all pages.
20
+ - context_chars (number): Characters of context before/after match (default: 80)
21
+ - max_results (number): Maximum matches to return (default: 20, max: 100)
22
+ - response_format ('markdown' | 'json'): Output format (default: 'markdown')
23
+
24
+ Returns:
25
+ Search matches with page number, matched text, and surrounding context.
26
+
27
+ Examples:
28
+ - Search entire PDF: { file_path: "/path/to/doc.pdf", query: "digital signature" }
29
+ - Search specific pages: { file_path: "/path/to/doc.pdf", query: "error", pages: "1-10" }`,
30
+ inputSchema: SearchTextSchema,
31
+ annotations: {
32
+ readOnlyHint: true,
33
+ destructiveHint: false,
34
+ idempotentHint: true,
35
+ openWorldHint: false,
36
+ },
37
+ }, async (params) => {
38
+ try {
39
+ const allMatches = await searchText(params.file_path, params.query, params.context_chars, params.pages);
40
+ const truncated = allMatches.length > params.max_results;
41
+ const matches = allMatches.slice(0, params.max_results);
42
+ const result = {
43
+ query: params.query,
44
+ totalMatches: allMatches.length,
45
+ matches,
46
+ truncated,
47
+ };
48
+ const text = params.response_format === ResponseFormat.JSON
49
+ ? JSON.stringify(result, null, 2)
50
+ : formatSearchResultMarkdown(result);
51
+ return {
52
+ content: [{ type: 'text', text }],
53
+ };
54
+ }
55
+ catch (error) {
56
+ return {
57
+ content: [{ type: 'text', text: handleError(error) }],
58
+ };
59
+ }
60
+ });
61
+ }
62
+ //# sourceMappingURL=search-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-text.js","sourceRoot":"","sources":["../../../src/tools/tier1/search-text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAwB,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE;;;;;;;;;;;;;;;;;4FAiByE;QACtF,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAuB,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,UAAU,CACjC,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,KAAK,CACb,CAAC;YAEF,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;YACzD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YAExD,MAAM,MAAM,GAAiB;gBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,YAAY,EAAE,UAAU,CAAC,MAAM;gBAC/B,OAAO;gBACP,SAAS;aACV,CAAC;YAEF,MAAM,IAAI,GACR,MAAM,CAAC,eAAe,KAAK,cAAc,CAAC,IAAI;gBAC5C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjC,CAAC,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;YAEzC,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;aAC3C,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;aAC/D,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * summarize - Quick overview report of a PDF document.
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ export declare function registerSummarize(server: McpServer): void;
6
+ //# sourceMappingURL=summarize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../../src/tools/tier1/summarize.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoEzD"}