@cyanheads/libofcongress-mcp-server 0.2.5 → 0.2.6
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.
- package/CLAUDE.md +3 -3
- package/README.md +1 -1
- package/dist/config/server-config.js +1 -1
- package/dist/mcp-server/tools/definitions/libofcongress-browse-collections.tool.d.ts +4 -7
- package/dist/mcp-server/tools/definitions/libofcongress-browse-collections.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/libofcongress-browse-collections.tool.js +21 -37
- package/dist/mcp-server/tools/definitions/libofcongress-browse-collections.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/libofcongress-get-item.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/libofcongress-get-item.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/libofcongress-get-newspaper-page.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/libofcongress-get-newspaper-page.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/libofcongress-search-newspapers.tool.d.ts +5 -7
- package/dist/mcp-server/tools/definitions/libofcongress-search-newspapers.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/libofcongress-search-newspapers.tool.js +27 -40
- package/dist/mcp-server/tools/definitions/libofcongress-search-newspapers.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/libofcongress-search-subjects.tool.d.ts +4 -8
- package/dist/mcp-server/tools/definitions/libofcongress-search-subjects.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/libofcongress-search-subjects.tool.js +13 -19
- package/dist/mcp-server/tools/definitions/libofcongress-search-subjects.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/libofcongress-search.tool.d.ts +5 -7
- package/dist/mcp-server/tools/definitions/libofcongress-search.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/libofcongress-search.tool.js +25 -40
- package/dist/mcp-server/tools/definitions/libofcongress-search.tool.js.map +1 -1
- package/package.json +2 -2
- package/server.json +5 -5
package/CLAUDE.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** libofcongress-mcp-server
|
|
4
|
-
**Version:** 0.2.
|
|
5
|
-
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.
|
|
4
|
+
**Version:** 0.2.6
|
|
5
|
+
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.16`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
7
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
|
8
8
|
**Zod:** ^4.4.3
|
|
@@ -113,7 +113,7 @@ import { z } from '@cyanheads/mcp-ts-core';
|
|
|
113
113
|
import { parseEnvConfig } from '@cyanheads/mcp-ts-core/config';
|
|
114
114
|
|
|
115
115
|
const ServerConfigSchema = z.object({
|
|
116
|
-
userAgent: z.string().default('libofcongress-mcp-server/0.2.
|
|
116
|
+
userAgent: z.string().default('libofcongress-mcp-server/0.2.6').describe('User-Agent header for LOC API requests.'),
|
|
117
117
|
requestDelayMs: z.coerce.number().default(3100).describe('Delay in ms between LOC API requests.'),
|
|
118
118
|
});
|
|
119
119
|
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<div align="center">
|
|
9
9
|
|
|
10
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/libofcongress-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/libofcongress-mcp-server) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
11
11
|
|
|
12
12
|
</div>
|
|
13
13
|
|
|
@@ -7,7 +7,7 @@ import { parseEnvConfig } from '@cyanheads/mcp-ts-core/config';
|
|
|
7
7
|
const ServerConfigSchema = z.object({
|
|
8
8
|
userAgent: z
|
|
9
9
|
.string()
|
|
10
|
-
.default('libofcongress-mcp-server/0.2.
|
|
10
|
+
.default('libofcongress-mcp-server/0.2.6')
|
|
11
11
|
.describe('User-Agent header sent with LOC API requests. LOC recommends a descriptive value for polite access.'),
|
|
12
12
|
requestDelayMs: z.coerce
|
|
13
13
|
.number()
|
|
@@ -20,16 +20,13 @@ export declare const locBrowseCollections: import("@cyanheads/mcp-ts-core").Tool
|
|
|
20
20
|
page: z.ZodNumber;
|
|
21
21
|
pages: z.ZodNumber;
|
|
22
22
|
has_next: z.ZodBoolean;
|
|
23
|
-
message: z.ZodOptional<z.ZodString>;
|
|
24
23
|
}, z.core.$strip>, readonly [{
|
|
25
|
-
readonly reason: "empty_results";
|
|
26
|
-
readonly code: JsonRpcErrorCode.NotFound;
|
|
27
|
-
readonly when: "No collections matched the keyword filter.";
|
|
28
|
-
readonly recovery: "Broaden the keyword or call without a query to list all LOC digital collections.";
|
|
29
|
-
}, {
|
|
30
24
|
readonly reason: "rate_limit_exceeded";
|
|
31
25
|
readonly code: JsonRpcErrorCode.ServiceUnavailable;
|
|
32
26
|
readonly when: "LOC API rate limit exceeded; requests are blocked for approximately 1 hour.";
|
|
33
27
|
readonly recovery: "Wait approximately 1 hour before retrying. Reduce request frequency to stay under 20 req/min.";
|
|
34
|
-
}]
|
|
28
|
+
}], {
|
|
29
|
+
readonly totalCount: z.ZodNumber;
|
|
30
|
+
readonly notice: z.ZodOptional<z.ZodString>;
|
|
31
|
+
}>;
|
|
35
32
|
//# sourceMappingURL=libofcongress-browse-collections.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libofcongress-browse-collections.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-browse-collections.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"libofcongress-browse-collections.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-browse-collections.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;EAkJ/B,CAAC"}
|
|
@@ -52,18 +52,21 @@ export const locBrowseCollections = tool('libofcongress_browse_collections', {
|
|
|
52
52
|
page: z.number().describe('Current 1-indexed page number.'),
|
|
53
53
|
pages: z.number().describe('Total number of pages available.'),
|
|
54
54
|
has_next: z.boolean().describe('True when more pages are available after this one.'),
|
|
55
|
-
|
|
55
|
+
}),
|
|
56
|
+
// Agent-facing success-path context — result count and empty-result guidance. Reaches
|
|
57
|
+
// both structuredContent and content[] automatically; kept out of the domain output.
|
|
58
|
+
// No effectiveQuery: query is optional (browse-all default) so the echo is N/A when absent.
|
|
59
|
+
// Keys are disjoint from output (total vs totalCount).
|
|
60
|
+
enrichment: {
|
|
61
|
+
totalCount: z
|
|
62
|
+
.number()
|
|
63
|
+
.describe('Total matching collections — mirrors output.total for agent reasoning.'),
|
|
64
|
+
notice: z
|
|
56
65
|
.string()
|
|
57
66
|
.optional()
|
|
58
|
-
.describe('Recovery hint when results are empty — suggests broadening the keyword. Absent on
|
|
59
|
-
}
|
|
67
|
+
.describe('Recovery hint when results are empty or a page is out of range — suggests broadening the keyword or removing filters. Absent on successful result pages.'),
|
|
68
|
+
},
|
|
60
69
|
errors: [
|
|
61
|
-
{
|
|
62
|
-
reason: 'empty_results',
|
|
63
|
-
code: JsonRpcErrorCode.NotFound,
|
|
64
|
-
when: 'No collections matched the keyword filter.',
|
|
65
|
-
recovery: 'Broaden the keyword or call without a query to list all LOC digital collections.',
|
|
66
|
-
},
|
|
67
70
|
{
|
|
68
71
|
reason: 'rate_limit_exceeded',
|
|
69
72
|
code: JsonRpcErrorCode.ServiceUnavailable,
|
|
@@ -80,40 +83,23 @@ export const locBrowseCollections = tool('libofcongress_browse_collections', {
|
|
|
80
83
|
page: input.page,
|
|
81
84
|
}, ctx);
|
|
82
85
|
const { total, page, pages, hasNext } = result.pagination;
|
|
86
|
+
ctx.enrich.total(total);
|
|
83
87
|
if (result.items.length === 0) {
|
|
84
88
|
// Out-of-range page: service returned null (LOC 400) — pages is 0 here.
|
|
85
89
|
// Distinguish from a genuine empty result by checking page > 1.
|
|
86
90
|
if (page > 1 && pages === 0) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
total: 0,
|
|
90
|
-
page,
|
|
91
|
-
pages: 0,
|
|
92
|
-
has_next: false,
|
|
93
|
-
message: `Page ${page} is out of range. Try a smaller page number.`,
|
|
94
|
-
};
|
|
91
|
+
ctx.enrich.notice(`Page ${page} is out of range. Try a smaller page number.`);
|
|
92
|
+
return { collections: [], total: 0, page, pages: 0, has_next: false };
|
|
95
93
|
}
|
|
96
|
-
|
|
97
|
-
collections
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
pages: 0,
|
|
101
|
-
has_next: false,
|
|
102
|
-
message: input.query
|
|
103
|
-
? `No collections matched "${input.query}". Try a broader keyword or call without a query to list all LOC digital collections.`
|
|
104
|
-
: 'No collections found. The LOC collections endpoint may be temporarily unavailable.',
|
|
105
|
-
};
|
|
94
|
+
ctx.enrich.notice(input.query
|
|
95
|
+
? `No collections matched "${input.query}". Try a broader keyword or call without a query to list all LOC digital collections.`
|
|
96
|
+
: 'No collections found. The LOC collections endpoint may be temporarily unavailable.');
|
|
97
|
+
return { collections: [], total: 0, page, pages: 0, has_next: false };
|
|
106
98
|
}
|
|
107
99
|
// Detect contradictory pagination: LOC sometimes returns items on out-of-range pages.
|
|
108
100
|
if (pages > 0 && page > pages) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
total,
|
|
112
|
-
page,
|
|
113
|
-
pages,
|
|
114
|
-
has_next: false,
|
|
115
|
-
message: `No results on page ${page} — there are ${pages} page(s) total (${total} collections). Use a page number between 1 and ${pages}.`,
|
|
116
|
-
};
|
|
101
|
+
ctx.enrich.notice(`No results on page ${page} — there are ${pages} page(s) total (${total} collections). Use a page number between 1 and ${pages}.`);
|
|
102
|
+
return { collections: [], total, page, pages, has_next: false };
|
|
117
103
|
}
|
|
118
104
|
return {
|
|
119
105
|
collections: result.items,
|
|
@@ -126,8 +112,6 @@ export const locBrowseCollections = tool('libofcongress_browse_collections', {
|
|
|
126
112
|
format: (result) => {
|
|
127
113
|
const lines = [];
|
|
128
114
|
lines.push(`**Total:** ${result.total} | **Page:** ${result.page} of ${result.pages} | **has_next:** ${result.has_next}`);
|
|
129
|
-
if (result.message)
|
|
130
|
-
lines.push(`\n> ${result.message}`);
|
|
131
115
|
for (const col of result.collections) {
|
|
132
116
|
lines.push(`\n## ${col.title}`);
|
|
133
117
|
lines.push(`**Slug:** ${col.slug}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libofcongress-browse-collections.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-browse-collections.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC,kCAAkC,EAAE;IAC3E,KAAK,EAAE,wBAAwB;IAC/B,WAAW,EACT,gYAAgY;IAClY,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IACxD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,8FAA8F,CAC/F;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CAAC,+DAA+D,CAAC;QAC5E,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,CAAC,CAAC;aACV,QAAQ,CAAC,+CAA+C,CAAC;KAC7D,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,WAAW,EAAE,CAAC;aACX,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,CAAC,sEAAsE,CAAC;YACnF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAC9C,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,qDAAqD,CAAC;YAClE,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,2EAA2E,CAC5E;YACH,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;SACvD,CAAC;aACD,QAAQ,CAAC,0CAA0C,CAAC,CACxD;aACA,QAAQ,CACP,uGAAuG,CACxG;QACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;QACpF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC3D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC9D,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"libofcongress-browse-collections.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-browse-collections.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,5 +28,5 @@ export declare const locGetItem: import("@cyanheads/mcp-ts-core").ToolDefinition
|
|
|
28
28
|
readonly code: JsonRpcErrorCode.ServiceUnavailable;
|
|
29
29
|
readonly when: "LOC API rate limit exceeded; requests are blocked for approximately 1 hour.";
|
|
30
30
|
readonly recovery: "Wait approximately 1 hour before retrying. Reduce request frequency to stay under 20 req/min.";
|
|
31
|
-
}]>;
|
|
31
|
+
}], undefined>;
|
|
32
32
|
//# sourceMappingURL=libofcongress-get-item.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libofcongress-get-item.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-get-item.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;AAG3E,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"libofcongress-get-item.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-get-item.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;AAG3E,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;cAuGrB,CAAC"}
|
|
@@ -25,5 +25,5 @@ export declare const locGetNewspaperPage: import("@cyanheads/mcp-ts-core").ToolD
|
|
|
25
25
|
readonly code: JsonRpcErrorCode.ServiceUnavailable;
|
|
26
26
|
readonly when: "LOC API rate limit exceeded; requests are blocked for approximately 1 hour.";
|
|
27
27
|
readonly recovery: "Wait approximately 1 hour before retrying. Reduce request frequency to stay under 20 req/min.";
|
|
28
|
-
}]>;
|
|
28
|
+
}], undefined>;
|
|
29
29
|
//# sourceMappingURL=libofcongress-get-newspaper-page.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libofcongress-get-newspaper-page.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-get-newspaper-page.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAA6B,MAAM,+BAA+B,CAAC;AAK5F,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"libofcongress-get-newspaper-page.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-get-newspaper-page.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAA6B,MAAM,+BAA+B,CAAC;AAK5F,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;cA2F9B,CAAC"}
|
|
@@ -25,16 +25,14 @@ export declare const locSearchNewspapers: import("@cyanheads/mcp-ts-core").ToolD
|
|
|
25
25
|
page: z.ZodNumber;
|
|
26
26
|
pages: z.ZodNumber;
|
|
27
27
|
has_next: z.ZodBoolean;
|
|
28
|
-
message: z.ZodOptional<z.ZodString>;
|
|
29
28
|
}, z.core.$strip>, readonly [{
|
|
30
|
-
readonly reason: "empty_results";
|
|
31
|
-
readonly code: JsonRpcErrorCode.NotFound;
|
|
32
|
-
readonly when: "No newspaper pages matched the query and filters.";
|
|
33
|
-
readonly recovery: "Broaden the date range, remove the state filter, or try different keywords. OCR search is approximate — spelling variations in historical text are common.";
|
|
34
|
-
}, {
|
|
35
29
|
readonly reason: "rate_limit_exceeded";
|
|
36
30
|
readonly code: JsonRpcErrorCode.ServiceUnavailable;
|
|
37
31
|
readonly when: "LOC API rate limit exceeded; requests are blocked for approximately 1 hour.";
|
|
38
32
|
readonly recovery: "Wait approximately 1 hour before retrying. Reduce request frequency to stay under 20 req/min.";
|
|
39
|
-
}]
|
|
33
|
+
}], {
|
|
34
|
+
readonly effectiveQuery: z.ZodString;
|
|
35
|
+
readonly totalCount: z.ZodNumber;
|
|
36
|
+
readonly notice: z.ZodOptional<z.ZodString>;
|
|
37
|
+
}>;
|
|
40
38
|
//# sourceMappingURL=libofcongress-search-newspapers.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libofcongress-search-newspapers.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-search-newspapers.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAmB,MAAM,+BAA+B,CAAC;AAGlF,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"libofcongress-search-newspapers.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-search-newspapers.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAmB,MAAM,+BAA+B,CAAC;AAGlF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4L9B,CAAC"}
|
|
@@ -69,18 +69,23 @@ export const locSearchNewspapers = tool('libofcongress_search_newspapers', {
|
|
|
69
69
|
page: z.number().describe('Current 1-indexed page number.'),
|
|
70
70
|
pages: z.number().describe('Total number of pages available.'),
|
|
71
71
|
has_next: z.boolean().describe('True when more pages are available after this one.'),
|
|
72
|
-
|
|
72
|
+
}),
|
|
73
|
+
// Agent-facing success-path context — query echo, result count, and empty-result
|
|
74
|
+
// guidance. Reaches both structuredContent and content[] automatically; kept out of
|
|
75
|
+
// the domain output. Keys are disjoint from output (total vs totalCount).
|
|
76
|
+
enrichment: {
|
|
77
|
+
effectiveQuery: z
|
|
78
|
+
.string()
|
|
79
|
+
.describe('The keyword query as submitted to the Chronicling America API, after trimming.'),
|
|
80
|
+
totalCount: z
|
|
81
|
+
.number()
|
|
82
|
+
.describe('Total matching newspaper pages — mirrors output.total for agent reasoning.'),
|
|
83
|
+
notice: z
|
|
73
84
|
.string()
|
|
74
85
|
.optional()
|
|
75
|
-
.describe('Recovery hint when results are empty — echoes
|
|
76
|
-
}
|
|
86
|
+
.describe('Recovery hint when results are empty or a page is out of range — echoes applied filters and suggests how to broaden. Absent on successful result pages.'),
|
|
87
|
+
},
|
|
77
88
|
errors: [
|
|
78
|
-
{
|
|
79
|
-
reason: 'empty_results',
|
|
80
|
-
code: JsonRpcErrorCode.NotFound,
|
|
81
|
-
when: 'No newspaper pages matched the query and filters.',
|
|
82
|
-
recovery: 'Broaden the date range, remove the state filter, or try different keywords. OCR search is approximate — spelling variations in historical text are common.',
|
|
83
|
-
},
|
|
84
89
|
{
|
|
85
90
|
reason: 'rate_limit_exceeded',
|
|
86
91
|
code: JsonRpcErrorCode.ServiceUnavailable,
|
|
@@ -110,41 +115,25 @@ export const locSearchNewspapers = tool('libofcongress_search_newspapers', {
|
|
|
110
115
|
page: input.page,
|
|
111
116
|
}, ctx);
|
|
112
117
|
const { total, page, pages, hasNext } = result.pagination;
|
|
118
|
+
ctx.enrich.echo(input.query);
|
|
119
|
+
ctx.enrich.total(total);
|
|
113
120
|
if (result.items.length === 0) {
|
|
114
121
|
// pages === 0 is the sentinel for a LOC 400 (out-of-range page request).
|
|
115
122
|
if (pages === 0 && page > 1) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
total: 0,
|
|
119
|
-
page,
|
|
120
|
-
pages: 0,
|
|
121
|
-
has_next: false,
|
|
122
|
-
message: `Page ${page} is out of range for query "${input.query}". Try a smaller page number.`,
|
|
123
|
-
};
|
|
123
|
+
ctx.enrich.notice(`Page ${page} is out of range for query "${input.query}". Try a smaller page number.`);
|
|
124
|
+
return { items: [], total: 0, page, pages: 0, has_next: false };
|
|
124
125
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
(input.state ? ` in state "${input.state}"` : '') +
|
|
133
|
-
(input.date_start || input.date_end
|
|
134
|
-
? ` in dates ${input.date_start ?? ''}–${input.date_end ?? ''}`
|
|
135
|
-
: '') +
|
|
136
|
-
'. Try broadening the date range, removing the state filter, or using different keywords. Historical OCR is approximate — variant spellings are common.',
|
|
137
|
-
};
|
|
126
|
+
ctx.enrich.notice(`No newspaper pages matched "${input.query}"` +
|
|
127
|
+
(input.state ? ` in state "${input.state}"` : '') +
|
|
128
|
+
(input.date_start || input.date_end
|
|
129
|
+
? ` in dates ${input.date_start ?? ''}–${input.date_end ?? ''}`
|
|
130
|
+
: '') +
|
|
131
|
+
'. Try broadening the date range, removing the state filter, or using different keywords. Historical OCR is approximate — variant spellings are common.');
|
|
132
|
+
return { items: [], total: 0, page, pages: 0, has_next: false };
|
|
138
133
|
}
|
|
139
134
|
if (pages > 0 && page > pages) {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
total,
|
|
143
|
-
page,
|
|
144
|
-
pages,
|
|
145
|
-
has_next: false,
|
|
146
|
-
message: `No results on page ${page} — query has ${pages} page(s) total (${total} items). Use a page number between 1 and ${pages}.`,
|
|
147
|
-
};
|
|
135
|
+
ctx.enrich.notice(`No results on page ${page} — query has ${pages} page(s) total (${total} items). Use a page number between 1 and ${pages}.`);
|
|
136
|
+
return { items: [], total, page, pages, has_next: false };
|
|
148
137
|
}
|
|
149
138
|
return {
|
|
150
139
|
items: result.items,
|
|
@@ -157,8 +146,6 @@ export const locSearchNewspapers = tool('libofcongress_search_newspapers', {
|
|
|
157
146
|
format: (result) => {
|
|
158
147
|
const lines = [];
|
|
159
148
|
lines.push(`**Total:** ${result.total} | **Page:** ${result.page} of ${result.pages} | **has_next:** ${result.has_next}`);
|
|
160
|
-
if (result.message)
|
|
161
|
-
lines.push(`\n> ${result.message}`);
|
|
162
149
|
for (const item of result.items) {
|
|
163
150
|
lines.push(`\n## ${item.title}`);
|
|
164
151
|
if (item.newspaper_title)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libofcongress-search-newspapers.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-search-newspapers.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,iCAAiC,EAAE;IACzE,KAAK,EAAE,8BAA8B;IACrC,WAAW,EACT,6hBAA6hB;IAC/hB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IACxD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CAAC,wDAAwD,CAAC;QACrE,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,CAAC,8EAA8E,CAAC;QAC3F,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,CAAC,4EAA4E,CAAC;QACzF,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,qHAAqH,CACtH;QACH,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,mEAAmE,CAAC;QAChF,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CAAC,wCAAwC,CAAC;QACrD,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,CAAC,CAAC;aACV,QAAQ,CAAC,+CAA+C,CAAC;KAC7D,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC;aACL,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,GAAG,EAAE,CAAC;iBACH,MAAM,EAAE;iBACR,QAAQ,CACP,iGAAiG,CAClG;YACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAClD,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,yDAAyD,CAAC;YACtE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YAC/D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACjF,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;SAChF,CAAC;aACD,QAAQ,CAAC,wCAAwC,CAAC,CACtD;aACA,QAAQ,CAAC,+DAA+D,CAAC;QAC5E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;QACzF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC3D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC9D,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"libofcongress-search-newspapers.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-search-newspapers.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* @module mcp-server/tools/definitions/libofcongress-search-subjects.tool
|
|
4
4
|
*/
|
|
5
5
|
import { z } from '@cyanheads/mcp-ts-core';
|
|
6
|
-
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
7
6
|
export declare const locSearchSubjects: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
|
|
8
7
|
query: z.ZodString;
|
|
9
8
|
limit: z.ZodDefault<z.ZodNumber>;
|
|
@@ -14,11 +13,8 @@ export declare const locSearchSubjects: import("@cyanheads/mcp-ts-core").ToolDef
|
|
|
14
13
|
count: z.ZodOptional<z.ZodNumber>;
|
|
15
14
|
}, z.core.$strip>>;
|
|
16
15
|
total: z.ZodNumber;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
readonly
|
|
20
|
-
|
|
21
|
-
readonly when: "No LCSH headings matched the query.";
|
|
22
|
-
readonly recovery: "Try broader or different terms. LCSH uses inverted forms for many headings (e.g., \"Photography, Aerial\" not \"Aerial photography\").";
|
|
23
|
-
}]>;
|
|
16
|
+
}, z.core.$strip>, undefined, {
|
|
17
|
+
readonly effectiveQuery: z.ZodString;
|
|
18
|
+
readonly notice: z.ZodOptional<z.ZodString>;
|
|
19
|
+
}>;
|
|
24
20
|
//# sourceMappingURL=libofcongress-search-subjects.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libofcongress-search-subjects.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-search-subjects.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"libofcongress-search-subjects.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-search-subjects.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAGjD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;EA6F5B,CAAC"}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* @module mcp-server/tools/definitions/libofcongress-search-subjects.tool
|
|
4
4
|
*/
|
|
5
5
|
import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
6
|
-
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
7
6
|
import { getLcLinkedDataService } from '../../../services/lc-linked-data/lc-linked-data-service.js';
|
|
8
7
|
export const locSearchSubjects = tool('libofcongress_search_subjects', {
|
|
9
8
|
title: 'Search LC Subject Headings',
|
|
@@ -41,29 +40,26 @@ export const locSearchSubjects = tool('libofcongress_search_subjects', {
|
|
|
41
40
|
.describe('A single LCSH subject heading record.'))
|
|
42
41
|
.describe('LCSH subject headings matching the query, ordered by relevance.'),
|
|
43
42
|
total: z.number().describe('Number of subject headings returned.'),
|
|
44
|
-
|
|
43
|
+
}),
|
|
44
|
+
// Agent-facing success-path context — query echo and empty-result guidance. Reaches
|
|
45
|
+
// both structuredContent and content[] automatically; kept out of the domain output.
|
|
46
|
+
enrichment: {
|
|
47
|
+
effectiveQuery: z
|
|
48
|
+
.string()
|
|
49
|
+
.describe('The keyword query as submitted to the id.loc.gov suggest endpoint, after trimming.'),
|
|
50
|
+
notice: z
|
|
45
51
|
.string()
|
|
46
52
|
.optional()
|
|
47
|
-
.describe('Recovery hint when results are empty — suggests alternative search strategies. Absent on non-empty
|
|
48
|
-
}
|
|
49
|
-
errors: [
|
|
50
|
-
{
|
|
51
|
-
reason: 'empty_results',
|
|
52
|
-
code: JsonRpcErrorCode.NotFound,
|
|
53
|
-
when: 'No LCSH headings matched the query.',
|
|
54
|
-
recovery: 'Try broader or different terms. LCSH uses inverted forms for many headings (e.g., "Photography, Aerial" not "Aerial photography").',
|
|
55
|
-
},
|
|
56
|
-
],
|
|
53
|
+
.describe('Recovery hint when results are empty — suggests alternative LCSH search strategies. Absent on non-empty results.'),
|
|
54
|
+
},
|
|
57
55
|
async handler(input, ctx) {
|
|
58
56
|
ctx.log.info('libofcongress_search_subjects', { query: input.query, limit: input.limit });
|
|
59
57
|
const svc = getLcLinkedDataService();
|
|
60
58
|
const subjects = await svc.searchSubjects(input.query, input.limit, ctx);
|
|
59
|
+
ctx.enrich.echo(input.query);
|
|
61
60
|
if (subjects.length === 0) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
total: 0,
|
|
65
|
-
message: `No LCSH headings matched "${input.query}". Try broader or different terms. LCSH uses inverted forms for many headings — for example, "Photography, Aerial" instead of "Aerial photography", or "World War, 1939-1945" instead of "World War II".`,
|
|
66
|
-
};
|
|
61
|
+
ctx.enrich.notice(`No LCSH headings matched "${input.query}". Try broader or different terms. LCSH uses inverted forms for many headings — for example, "Photography, Aerial" instead of "Aerial photography", or "World War, 1939-1945" instead of "World War II".`);
|
|
62
|
+
return { subjects: [], total: 0 };
|
|
67
63
|
}
|
|
68
64
|
return {
|
|
69
65
|
subjects,
|
|
@@ -73,8 +69,6 @@ export const locSearchSubjects = tool('libofcongress_search_subjects', {
|
|
|
73
69
|
format: (result) => {
|
|
74
70
|
const lines = [];
|
|
75
71
|
lines.push(`**${result.total} subject heading(s) found**`);
|
|
76
|
-
if (result.message)
|
|
77
|
-
lines.push(`\n> ${result.message}`);
|
|
78
72
|
for (const s of result.subjects) {
|
|
79
73
|
lines.push(`\n## ${s.label}`);
|
|
80
74
|
lines.push(`**URI:** ${s.uri}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libofcongress-search-subjects.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-search-subjects.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"libofcongress-search-subjects.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-search-subjects.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,16 +35,14 @@ export declare const locSearch: import("@cyanheads/mcp-ts-core").ToolDefinition<
|
|
|
35
35
|
page: z.ZodNumber;
|
|
36
36
|
pages: z.ZodNumber;
|
|
37
37
|
has_next: z.ZodBoolean;
|
|
38
|
-
message: z.ZodOptional<z.ZodString>;
|
|
39
38
|
}, z.core.$strip>, readonly [{
|
|
40
|
-
readonly reason: "empty_results";
|
|
41
|
-
readonly code: JsonRpcErrorCode.NotFound;
|
|
42
|
-
readonly when: "No items matched the query and filters.";
|
|
43
|
-
readonly recovery: "Broaden the query, widen the date range, or use libofcongress_search_subjects to find the correct subject heading spelling.";
|
|
44
|
-
}, {
|
|
45
39
|
readonly reason: "rate_limit_exceeded";
|
|
46
40
|
readonly code: JsonRpcErrorCode.ServiceUnavailable;
|
|
47
41
|
readonly when: "LOC API rate limit exceeded; requests are blocked for approximately 1 hour.";
|
|
48
42
|
readonly recovery: "Wait approximately 1 hour before retrying. Reduce request frequency to stay under 20 req/min.";
|
|
49
|
-
}]
|
|
43
|
+
}], {
|
|
44
|
+
readonly effectiveQuery: z.ZodString;
|
|
45
|
+
readonly totalCount: z.ZodNumber;
|
|
46
|
+
readonly notice: z.ZodOptional<z.ZodString>;
|
|
47
|
+
}>;
|
|
50
48
|
//# sourceMappingURL=libofcongress-search.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libofcongress-search.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-search.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAmB,MAAM,+BAA+B,CAAC;AAGlF,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"libofcongress-search.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-search.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAmB,MAAM,+BAA+B,CAAC;AAGlF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqMpB,CAAC"}
|
|
@@ -73,18 +73,21 @@ export const locSearch = tool('libofcongress_search', {
|
|
|
73
73
|
page: z.number().describe('Current 1-indexed page number.'),
|
|
74
74
|
pages: z.number().describe('Total number of pages available.'),
|
|
75
75
|
has_next: z.boolean().describe('True when more pages are available after this one.'),
|
|
76
|
-
|
|
76
|
+
}),
|
|
77
|
+
// Agent-facing success-path context — query echo, result count, and empty-result
|
|
78
|
+
// guidance. Reaches both structuredContent and content[] automatically; kept out of
|
|
79
|
+
// the domain output. Keys are disjoint from output (total vs totalCount).
|
|
80
|
+
enrichment: {
|
|
81
|
+
effectiveQuery: z.string().describe('The query as submitted to the LOC API, after trimming.'),
|
|
82
|
+
totalCount: z
|
|
83
|
+
.number()
|
|
84
|
+
.describe('Total matching items across all pages — mirrors output.total for agent reasoning.'),
|
|
85
|
+
notice: z
|
|
77
86
|
.string()
|
|
78
87
|
.optional()
|
|
79
|
-
.describe('Recovery hint when results are empty — echoes
|
|
80
|
-
}
|
|
88
|
+
.describe('Recovery hint when results are empty or a page is out of range — echoes applied filters and suggests how to broaden. Absent on successful result pages.'),
|
|
89
|
+
},
|
|
81
90
|
errors: [
|
|
82
|
-
{
|
|
83
|
-
reason: 'empty_results',
|
|
84
|
-
code: JsonRpcErrorCode.NotFound,
|
|
85
|
-
when: 'No items matched the query and filters.',
|
|
86
|
-
recovery: 'Broaden the query, widen the date range, or use libofcongress_search_subjects to find the correct subject heading spelling.',
|
|
87
|
-
},
|
|
88
91
|
{
|
|
89
92
|
reason: 'rate_limit_exceeded',
|
|
90
93
|
code: JsonRpcErrorCode.ServiceUnavailable,
|
|
@@ -115,43 +118,27 @@ export const locSearch = tool('libofcongress_search', {
|
|
|
115
118
|
page: input.page,
|
|
116
119
|
}, ctx);
|
|
117
120
|
const { total, page, pages, hasNext } = result.pagination;
|
|
121
|
+
ctx.enrich.echo(input.query);
|
|
122
|
+
ctx.enrich.total(total);
|
|
118
123
|
if (result.items.length === 0) {
|
|
119
124
|
// pages === 0 is the sentinel for a LOC 400 (out-of-range page request).
|
|
120
125
|
if (pages === 0 && page > 1) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
total: 0,
|
|
124
|
-
page,
|
|
125
|
-
pages: 0,
|
|
126
|
-
has_next: false,
|
|
127
|
-
message: `Page ${page} is out of range for query "${input.query}". Try a smaller page number.`,
|
|
128
|
-
};
|
|
126
|
+
ctx.enrich.notice(`Page ${page} is out of range for query "${input.query}". Try a smaller page number.`);
|
|
127
|
+
return { items: [], total: 0, page, pages: 0, has_next: false };
|
|
129
128
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
(input.format ? ` with format "${input.format}"` : '') +
|
|
138
|
-
(input.date_start || input.date_end
|
|
139
|
-
? ` in dates ${input.date_start ?? ''}–${input.date_end ?? ''}`
|
|
140
|
-
: '') +
|
|
141
|
-
'. Try broadening the query, widening the date range, or running libofcongress_search_subjects to find the exact subject heading.',
|
|
142
|
-
};
|
|
129
|
+
ctx.enrich.notice(`No items matched "${input.query}"` +
|
|
130
|
+
(input.format ? ` with format "${input.format}"` : '') +
|
|
131
|
+
(input.date_start || input.date_end
|
|
132
|
+
? ` in dates ${input.date_start ?? ''}–${input.date_end ?? ''}`
|
|
133
|
+
: '') +
|
|
134
|
+
'. Try broadening the query, widening the date range, or running libofcongress_search_subjects to find the exact subject heading.');
|
|
135
|
+
return { items: [], total: 0, page, pages: 0, has_next: false };
|
|
143
136
|
}
|
|
144
137
|
// Detect contradictory pagination: LOC sometimes returns items on out-of-range pages.
|
|
145
138
|
// Surface a clear message rather than a confusing "Page 999 of 26" display.
|
|
146
139
|
if (pages > 0 && page > pages) {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
total,
|
|
150
|
-
page,
|
|
151
|
-
pages,
|
|
152
|
-
has_next: false,
|
|
153
|
-
message: `No results on page ${page} — query has ${pages} page(s) total (${total} items). Use a page number between 1 and ${pages}.`,
|
|
154
|
-
};
|
|
140
|
+
ctx.enrich.notice(`No results on page ${page} — query has ${pages} page(s) total (${total} items). Use a page number between 1 and ${pages}.`);
|
|
141
|
+
return { items: [], total, page, pages, has_next: false };
|
|
155
142
|
}
|
|
156
143
|
return {
|
|
157
144
|
items: result.items,
|
|
@@ -164,8 +151,6 @@ export const locSearch = tool('libofcongress_search', {
|
|
|
164
151
|
format: (result) => {
|
|
165
152
|
const lines = [];
|
|
166
153
|
lines.push(`**Total:** ${result.total} | **Page:** ${result.page} of ${result.pages} | **has_next:** ${result.has_next}`);
|
|
167
|
-
if (result.message)
|
|
168
|
-
lines.push(`\n> ${result.message}`);
|
|
169
154
|
for (const item of result.items) {
|
|
170
155
|
lines.push(`\n## ${item.title}`);
|
|
171
156
|
lines.push(`**ID:** ${item.id}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libofcongress-search.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-search.tool.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"libofcongress-search.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/libofcongress-search.tool.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyanheads/libofcongress-mcp-server",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"mcpName": "io.github.cyanheads/libofcongress-mcp-server",
|
|
5
5
|
"description": "Search LOC digital collections, browse Chronicling America newspapers with full OCR text, and look up LC Subject Headings via MCP. STDIO or Streamable HTTP.",
|
|
6
6
|
"type": "module",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"access": "public"
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
|
-
"@cyanheads/mcp-ts-core": "^0.9.
|
|
78
|
+
"@cyanheads/mcp-ts-core": "^0.9.16",
|
|
79
79
|
"pino-pretty": "^13.1.3",
|
|
80
80
|
"zod": "^4.4.3"
|
|
81
81
|
},
|
package/server.json
CHANGED
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
"url": "https://github.com/cyanheads/libofcongress-mcp-server",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.2.
|
|
9
|
+
"version": "0.2.6",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
14
14
|
"identifier": "@cyanheads/libofcongress-mcp-server",
|
|
15
15
|
"runtimeHint": "bun",
|
|
16
|
-
"version": "0.2.
|
|
16
|
+
"version": "0.2.6",
|
|
17
17
|
"packageArguments": [
|
|
18
18
|
{
|
|
19
19
|
"type": "positional",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"description": "User-Agent header sent with LOC API requests. LOC recommends a descriptive value for polite access.",
|
|
31
31
|
"format": "string",
|
|
32
32
|
"isRequired": false,
|
|
33
|
-
"default": "libofcongress-mcp-server/0.2.
|
|
33
|
+
"default": "libofcongress-mcp-server/0.2.6"
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
36
|
"name": "LOC_REQUEST_DELAY_MS",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
57
57
|
"identifier": "@cyanheads/libofcongress-mcp-server",
|
|
58
58
|
"runtimeHint": "bun",
|
|
59
|
-
"version": "0.2.
|
|
59
|
+
"version": "0.2.6",
|
|
60
60
|
"packageArguments": [
|
|
61
61
|
{
|
|
62
62
|
"type": "positional",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"description": "User-Agent header sent with LOC API requests. LOC recommends a descriptive value for polite access.",
|
|
74
74
|
"format": "string",
|
|
75
75
|
"isRequired": false,
|
|
76
|
-
"default": "libofcongress-mcp-server/0.2.
|
|
76
|
+
"default": "libofcongress-mcp-server/0.2.6"
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
"name": "LOC_REQUEST_DELAY_MS",
|