open-museum-mcp 0.5.0 → 0.6.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.
- package/README.md +35 -5
- package/dist/core/cache.d.ts +20 -0
- package/dist/core/cache.js +2 -0
- package/dist/core/cache.js.map +1 -0
- package/dist/core/federation.d.ts +75 -0
- package/dist/core/federation.js +137 -0
- package/dist/core/federation.js.map +1 -0
- package/dist/core/index.d.ts +18 -0
- package/dist/core/index.js +19 -0
- package/dist/core/index.js.map +1 -0
- package/dist/dateParser.js +8 -2
- package/dist/dateParser.js.map +1 -1
- package/dist/fetchers/aic.js +11 -6
- package/dist/fetchers/aic.js.map +1 -1
- package/dist/server.js +32 -110
- package/dist/server.js.map +1 -1
- package/package.json +11 -4
package/README.md
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://github.com/cfpramod/open-museum-mcp/actions/workflows/ci.yml)
|
|
4
4
|
[](https://www.npmjs.com/package/open-museum-mcp)
|
|
5
|
+
[](https://glama.ai/mcp/servers/cfpramod/open-museum-mcp)
|
|
5
6
|
|
|
6
7
|
> One search across five open-access museum collections, with strict per-museum rights verification and ready-to-use citations.
|
|
7
8
|
|
|
@@ -87,7 +88,17 @@ A search call returns license-verified results in one normalized shape:
|
|
|
87
88
|
|
|
88
89
|
> **Want to see it work before installing?** [pramod.ch/open-museum-mcp](https://pramod.ch/open-museum-mcp) walks through the three core workflows with real records and citations.
|
|
89
90
|
|
|
90
|
-
|
|
91
|
+
### One-click
|
|
92
|
+
|
|
93
|
+
For supported clients, no JSON, no Node, no npm — pick your client:
|
|
94
|
+
|
|
95
|
+
- **Claude Desktop:** [Download `open-museum-mcp.mcpb`](https://github.com/cfpramod/open-museum-mcp/releases/latest/download/open-museum-mcp.mcpb) from the latest release and double-click it. Claude Desktop opens the bundle and installs the server in one step.
|
|
96
|
+
- **VS Code:** [Install in VS Code](vscode:mcp/install?%7B%22name%22%3A%22open-museum-mcp%22%2C%22type%22%3A%22stdio%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22open-museum-mcp%22%5D%7D) — opens VS Code with the install dialog prefilled (requires the GitHub Copilot Chat extension).
|
|
97
|
+
- **Cursor:** [Install in Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=open-museum-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIm9wZW4tbXVzZXVtLW1jcCJdfQ==) — same idea, Cursor-flavoured (MCP support is built in).
|
|
98
|
+
|
|
99
|
+
### JSON config (any MCP client)
|
|
100
|
+
|
|
101
|
+
For ChatGPT with MCP, Cline, Goose, Continue, Zed, or anything else: paste this into your client's MCP config and restart. `npx` fetches and runs the server on first launch.
|
|
91
102
|
|
|
92
103
|
```json
|
|
93
104
|
{
|
|
@@ -100,8 +111,6 @@ The package is on npm. The simplest setup is to add it directly to your MCP clie
|
|
|
100
111
|
}
|
|
101
112
|
```
|
|
102
113
|
|
|
103
|
-
That's it. Restart your MCP client and the tools below become available.
|
|
104
|
-
|
|
105
114
|
### From source (for contributors)
|
|
106
115
|
|
|
107
116
|
```bash
|
|
@@ -246,6 +255,14 @@ Highlights:
|
|
|
246
255
|
- `artist.attributionType` distinguishes `named` / `anonymous` / `workshop` / `after` / `attributed` / `circle` / `follower`.
|
|
247
256
|
- `imageOpenAccess` is held distinct from `metadataOpenAccess` because museums frequently publish open metadata for objects whose images are not openly licensed.
|
|
248
257
|
|
|
258
|
+
### Compatibility
|
|
259
|
+
|
|
260
|
+
`Artwork` field semantics are stable. New versions may add fields or tools, but won't repurpose or remove existing ones within a major version.
|
|
261
|
+
|
|
262
|
+
- **Backward-compatible.** New server versions may add fields to `Artwork`, add new tools, or add new optional arguments. A v0.5 client calling a v0.6 server will continue to work; it just ignores fields it doesn't know.
|
|
263
|
+
- **Forward-compatible.** A v0.6 client calling an older v0.5 server will get records that lack v0.6-only fields, but the records it does get will validate against the older client's schema.
|
|
264
|
+
- **SemVer.** While in v0.x, MINOR bumps may include backward-incompatible changes (per the [SemVer spec](https://semver.org/) for pre-1.0 versions). From v1.0 onwards, only MAJOR bumps may break compatibility.
|
|
265
|
+
|
|
249
266
|
## Non-goals
|
|
250
267
|
|
|
251
268
|
- **Not a full art-history ontology.** The dynasty and region tables cover the most-encountered cases; they are not exhaustive iconographic taxonomies.
|
|
@@ -257,13 +274,26 @@ Highlights:
|
|
|
257
274
|
|
|
258
275
|
- v0.1: Met adapter, dynasty-aware date parser, license gate, `cite` tool, MCP resources.
|
|
259
276
|
- v0.2: Cleveland and AIC adapters, `discover_random` with constraints, `list_traditions`.
|
|
260
|
-
- v0.3: Wikimedia Commons adapter (per-record rights model;
|
|
261
|
-
- v0.4: Europeana adapter (federated European institutions, opt-in via API key); `year_min`/`year_max` date-range filter on `search_artworks`.
|
|
277
|
+
- v0.3: Wikimedia Commons adapter (per-record rights model; covers works whose home museums lack public APIs).
|
|
278
|
+
- v0.4: Europeana adapter (federated European institutions, opt-in via API key); `year_min`/`year_max` date-range filter on `search_artworks`.
|
|
279
|
+
- v0.5: `.mcpb` Desktop Extension bundle (one-click Claude Desktop install); migration to Node 22+ `node:sqlite` (no native compile required). **(here)**
|
|
262
280
|
- v0.7: Wikidata enrichment (artist QIDs, movement, country, dedup across cache).
|
|
263
281
|
- v0.8: Dominant-colour extraction across museums (`color: "#3a5f7d"` discovery via `sharp`).
|
|
264
282
|
- v1.0: Artist-obscurity scoring (`object_count_total`, `museum_count`) for deliberate exploration of less-canonical work.
|
|
265
283
|
- v2.0: Smithsonian, Rijksmuseum direct integration, Walters Art Museum, more European institutions.
|
|
266
284
|
|
|
285
|
+
### Release cadence
|
|
286
|
+
|
|
287
|
+
This is a side project. New releases ship when one of three things happens: my own work needs a feature, a new museum is wired in, or a contributor's PR is merged. There is no fixed cadence. I do commit to reviewing and merging contributor PRs promptly.
|
|
288
|
+
|
|
289
|
+
### Project status
|
|
290
|
+
|
|
291
|
+
This is actively maintained as of the latest release. Because it is a side project, if active maintenance ever stops I will archive the repository and say so here, rather than leave it looking live. The published npm package, the adapters, and the `Artwork` schema remain usable either way, and the code is MIT-licensed, so anyone is free to fork and continue it. Governance and the path for new maintainers are described in [GOVERNANCE.md](GOVERNANCE.md).
|
|
292
|
+
|
|
293
|
+
### Changelog
|
|
294
|
+
|
|
295
|
+
[Releases](https://github.com/cfpramod/open-museum-mcp/releases) lists what shipped in each version, with notes.
|
|
296
|
+
|
|
267
297
|
## Contributing a museum adapter
|
|
268
298
|
|
|
269
299
|
See [CONTRIBUTING.md](CONTRIBUTING.md). The short version:
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Artwork } from '../types.js';
|
|
2
|
+
/** A value that may be returned synchronously or as a promise. */
|
|
3
|
+
export type Awaitable<T> = T | Promise<T>;
|
|
4
|
+
/**
|
|
5
|
+
* The minimal cache surface the federation engine depends on. Two methods for
|
|
6
|
+
* normalized objects, two for search-result ID lists.
|
|
7
|
+
*
|
|
8
|
+
* Implementations may be synchronous or asynchronous: the MCP server's
|
|
9
|
+
* `node:sqlite` cache returns values directly, while an edge deployment
|
|
10
|
+
* (e.g. Cloudflare KV) returns promises. The federation `await`s every call,
|
|
11
|
+
* so both satisfy this interface. Keeping the surface this small is what lets
|
|
12
|
+
* the same engine run on a stdio server and on a Workers runtime that cannot
|
|
13
|
+
* load `node:sqlite`.
|
|
14
|
+
*/
|
|
15
|
+
export interface CacheStore {
|
|
16
|
+
getObject(id: string): Awaitable<Artwork | null>;
|
|
17
|
+
upsertObject(art: Artwork): Awaitable<void>;
|
|
18
|
+
getQuery(cacheKey: string): Awaitable<string[] | null>;
|
|
19
|
+
putQuery(cacheKey: string, ids: string[]): Awaitable<void>;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type CiteStyle } from '../cite.js';
|
|
3
|
+
import type { Fetcher } from '../fetchers/types.js';
|
|
4
|
+
import type { Artwork } from '../types.js';
|
|
5
|
+
import type { CacheStore } from './cache.js';
|
|
6
|
+
export declare const ID_REGEX: RegExp;
|
|
7
|
+
/**
|
|
8
|
+
* Parsed parameters for a federation search. Shared by every front door (MCP
|
|
9
|
+
* tool, HTTP endpoint) so validation lives in one place. The date bounds gate
|
|
10
|
+
* the *result set*, not the upstream search call — each museum's free-text
|
|
11
|
+
* search runs unchanged, and records whose [yearStart, yearEnd] fall outside
|
|
12
|
+
* the window are dropped after the fact. BCE is a negative integer.
|
|
13
|
+
*/
|
|
14
|
+
export declare const SearchParamsSchema: z.ZodObject<{
|
|
15
|
+
query: z.ZodString;
|
|
16
|
+
museum: z.ZodOptional<z.ZodString>;
|
|
17
|
+
has_image: z.ZodDefault<z.ZodBoolean>;
|
|
18
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
19
|
+
year_min: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
year_max: z.ZodOptional<z.ZodNumber>;
|
|
21
|
+
}, z.core.$strip>;
|
|
22
|
+
export type SearchParams = z.infer<typeof SearchParamsSchema>;
|
|
23
|
+
export interface SearchResult {
|
|
24
|
+
count: number;
|
|
25
|
+
results: Artwork[];
|
|
26
|
+
}
|
|
27
|
+
export type FetchOutcome = {
|
|
28
|
+
ok: true;
|
|
29
|
+
artwork: Artwork;
|
|
30
|
+
} | {
|
|
31
|
+
ok: false;
|
|
32
|
+
reason: string;
|
|
33
|
+
};
|
|
34
|
+
export type CiteOutcome = {
|
|
35
|
+
ok: true;
|
|
36
|
+
citation: string;
|
|
37
|
+
} | {
|
|
38
|
+
ok: false;
|
|
39
|
+
reason: string;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Thrown when a search or lookup names a museum code that is not in the
|
|
43
|
+
* registry. Hosts catch this to render their own error shape (MCP error
|
|
44
|
+
* result, HTTP 400, etc.) rather than leaking an empty result set.
|
|
45
|
+
*/
|
|
46
|
+
export declare class UnknownMuseumError extends Error {
|
|
47
|
+
readonly museum: string;
|
|
48
|
+
constructor(museum: string);
|
|
49
|
+
}
|
|
50
|
+
export interface FederationOptions {
|
|
51
|
+
fetchers: Record<string, Fetcher>;
|
|
52
|
+
cache: CacheStore;
|
|
53
|
+
/** Override the per-museum fetch concurrency cap (default 8). */
|
|
54
|
+
concurrency?: number;
|
|
55
|
+
/**
|
|
56
|
+
* Invoked when a fetched record is rejected by its rights gate. Rejections
|
|
57
|
+
* are expected — strict-default-deny is the project's spine — so this is a
|
|
58
|
+
* diagnostic hook, not an error path. The MCP server logs to stderr here.
|
|
59
|
+
*/
|
|
60
|
+
onReject?: (id: string, reason: string) => void;
|
|
61
|
+
}
|
|
62
|
+
export interface Federation {
|
|
63
|
+
readonly fetchers: Record<string, Fetcher>;
|
|
64
|
+
search(params: SearchParams): Promise<SearchResult>;
|
|
65
|
+
getArtwork(id: string): Promise<FetchOutcome>;
|
|
66
|
+
cite(id: string, style: CiteStyle): Promise<CiteOutcome>;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Build a federation over a set of museum fetchers and a cache. This is the
|
|
70
|
+
* shared engine behind every front door: the MCP server wraps it for stdio
|
|
71
|
+
* JSON-RPC; an HTTP service wraps it for the web. All rights-gate enforcement
|
|
72
|
+
* lives in `fetcher.normalize`, so a rejected record never reaches the cache
|
|
73
|
+
* or a caller — regardless of which front door asked.
|
|
74
|
+
*/
|
|
75
|
+
export declare function createFederation(opts: FederationOptions): Federation;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { cite as citeArtwork } from '../cite.js';
|
|
3
|
+
import { dedupeWikimediaUploads } from '../dedupe.js';
|
|
4
|
+
import { filterByYearRange } from '../yearFilter.js';
|
|
5
|
+
// Museum IDs follow `<code>:<segment>(/<segment>)*`. Each segment is
|
|
6
|
+
// alphanumeric, underscore, or hyphen. The four numeric-ID museums (Met,
|
|
7
|
+
// Cleveland, AIC, Wikimedia) match a single all-digit segment; Europeana's
|
|
8
|
+
// hierarchical IDs (`9200338/BibliographicResource_3000093834108`) match
|
|
9
|
+
// multiple slash-separated segments. The negative lookahead blocks `..`
|
|
10
|
+
// path-traversal attempts cleanly.
|
|
11
|
+
export const ID_REGEX = /^[a-z]+:(?!.*\.\.)[A-Za-z0-9_-]+(?:\/[A-Za-z0-9_-]+)*$/;
|
|
12
|
+
// Cap concurrent fetches to one museum's API. The Met has no batch endpoint,
|
|
13
|
+
// so a search of limit 50 fans out into up to 50 object fetches; without a
|
|
14
|
+
// cap, we'd hammer the upstream and risk rate-limit errors. 8 is empirically
|
|
15
|
+
// gentle and keeps wall-clock time within the same order of magnitude.
|
|
16
|
+
const DEFAULT_FETCH_CONCURRENCY = 8;
|
|
17
|
+
/**
|
|
18
|
+
* Parsed parameters for a federation search. Shared by every front door (MCP
|
|
19
|
+
* tool, HTTP endpoint) so validation lives in one place. The date bounds gate
|
|
20
|
+
* the *result set*, not the upstream search call — each museum's free-text
|
|
21
|
+
* search runs unchanged, and records whose [yearStart, yearEnd] fall outside
|
|
22
|
+
* the window are dropped after the fact. BCE is a negative integer.
|
|
23
|
+
*/
|
|
24
|
+
export const SearchParamsSchema = z.object({
|
|
25
|
+
query: z.string().min(1),
|
|
26
|
+
museum: z.string().optional(),
|
|
27
|
+
has_image: z.boolean().default(true),
|
|
28
|
+
limit: z.number().int().min(1).max(50).default(10),
|
|
29
|
+
year_min: z.number().int().optional(),
|
|
30
|
+
year_max: z.number().int().optional(),
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* Thrown when a search or lookup names a museum code that is not in the
|
|
34
|
+
* registry. Hosts catch this to render their own error shape (MCP error
|
|
35
|
+
* result, HTTP 400, etc.) rather than leaking an empty result set.
|
|
36
|
+
*/
|
|
37
|
+
export class UnknownMuseumError extends Error {
|
|
38
|
+
museum;
|
|
39
|
+
constructor(museum) {
|
|
40
|
+
super(`unknown museum: ${museum}`);
|
|
41
|
+
this.museum = museum;
|
|
42
|
+
this.name = 'UnknownMuseumError';
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async function withConcurrency(items, limit, fn) {
|
|
46
|
+
const results = new Array(items.length);
|
|
47
|
+
let next = 0;
|
|
48
|
+
const workers = Array.from({ length: Math.min(limit, items.length) }, async () => {
|
|
49
|
+
while (true) {
|
|
50
|
+
const idx = next++;
|
|
51
|
+
if (idx >= items.length)
|
|
52
|
+
return;
|
|
53
|
+
results[idx] = await fn(items[idx]);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
await Promise.all(workers);
|
|
57
|
+
return results;
|
|
58
|
+
}
|
|
59
|
+
// The cache key includes the overfetch count, not the user-facing `limit`.
|
|
60
|
+
// That means limit:5 and limit:6 produce different keys (since 5*2=10 vs
|
|
61
|
+
// 6*2=12). The trade-off: more cache rows, but each row is guaranteed to
|
|
62
|
+
// hold enough IDs to satisfy a request at its overfetch tier even after
|
|
63
|
+
// rights-gate rejections. Bucketing would need explicit refill logic.
|
|
64
|
+
function searchCacheKey(query, museum, hasImage, overFetch) {
|
|
65
|
+
return JSON.stringify({ q: query, m: museum ?? '*', hi: hasImage, of: overFetch });
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Build a federation over a set of museum fetchers and a cache. This is the
|
|
69
|
+
* shared engine behind every front door: the MCP server wraps it for stdio
|
|
70
|
+
* JSON-RPC; an HTTP service wraps it for the web. All rights-gate enforcement
|
|
71
|
+
* lives in `fetcher.normalize`, so a rejected record never reaches the cache
|
|
72
|
+
* or a caller — regardless of which front door asked.
|
|
73
|
+
*/
|
|
74
|
+
export function createFederation(opts) {
|
|
75
|
+
const { fetchers, cache } = opts;
|
|
76
|
+
const concurrency = opts.concurrency ?? DEFAULT_FETCH_CONCURRENCY;
|
|
77
|
+
const onReject = opts.onReject;
|
|
78
|
+
async function getArtwork(id) {
|
|
79
|
+
if (!ID_REGEX.test(id)) {
|
|
80
|
+
return { ok: false, reason: `invalid artwork id: ${id}` };
|
|
81
|
+
}
|
|
82
|
+
const cached = await cache.getObject(id);
|
|
83
|
+
if (cached)
|
|
84
|
+
return { ok: true, artwork: cached };
|
|
85
|
+
// ID_REGEX guarantees a non-empty `[a-z]+` segment before ':'.
|
|
86
|
+
const code = id.slice(0, id.indexOf(':'));
|
|
87
|
+
const fetcher = fetchers[code];
|
|
88
|
+
if (!fetcher)
|
|
89
|
+
return { ok: false, reason: `unknown museum code: ${code}` };
|
|
90
|
+
const raw = await fetcher.getRaw(id);
|
|
91
|
+
const result = fetcher.normalize(raw);
|
|
92
|
+
if (result.status === 'rejected') {
|
|
93
|
+
onReject?.(id, result.rejection.reason);
|
|
94
|
+
return { ok: false, reason: result.rejection.reason };
|
|
95
|
+
}
|
|
96
|
+
await cache.upsertObject(result.artwork);
|
|
97
|
+
return { ok: true, artwork: result.artwork };
|
|
98
|
+
}
|
|
99
|
+
async function search(params) {
|
|
100
|
+
const fetcherList = params.museum
|
|
101
|
+
? fetchers[params.museum]
|
|
102
|
+
? [fetchers[params.museum]]
|
|
103
|
+
: []
|
|
104
|
+
: Object.values(fetchers);
|
|
105
|
+
if (fetcherList.length === 0) {
|
|
106
|
+
throw new UnknownMuseumError(params.museum ?? '');
|
|
107
|
+
}
|
|
108
|
+
const overFetch = params.has_image ? params.limit * 2 : params.limit;
|
|
109
|
+
const cacheKey = searchCacheKey(params.query, params.museum, params.has_image, overFetch);
|
|
110
|
+
let allIds = await cache.getQuery(cacheKey);
|
|
111
|
+
if (!allIds) {
|
|
112
|
+
const idLists = await Promise.all(fetcherList.map((f) => f.search(params.query, overFetch, { hasImage: params.has_image }).catch(() => [])));
|
|
113
|
+
allIds = idLists.flat();
|
|
114
|
+
await cache.putQuery(cacheKey, allIds);
|
|
115
|
+
}
|
|
116
|
+
const fetched = await withConcurrency(allIds, concurrency, (id) => getArtwork(id).catch((err) => ({
|
|
117
|
+
ok: false,
|
|
118
|
+
reason: err instanceof Error ? err.message : 'fetch failed',
|
|
119
|
+
})));
|
|
120
|
+
const accepted = fetched
|
|
121
|
+
.filter((r) => r.ok)
|
|
122
|
+
.map((r) => r.artwork);
|
|
123
|
+
const filtered = accepted.filter((a) => !params.has_image || Boolean(a.imageUrls.full));
|
|
124
|
+
const deduped = dedupeWikimediaUploads(filtered);
|
|
125
|
+
const dated = filterByYearRange(deduped, params.year_min, params.year_max);
|
|
126
|
+
const results = dated.slice(0, params.limit);
|
|
127
|
+
return { count: results.length, results };
|
|
128
|
+
}
|
|
129
|
+
async function cite(id, style) {
|
|
130
|
+
const out = await getArtwork(id);
|
|
131
|
+
if (!out.ok)
|
|
132
|
+
return { ok: false, reason: out.reason };
|
|
133
|
+
return { ok: true, citation: citeArtwork(out.artwork, style) };
|
|
134
|
+
}
|
|
135
|
+
return { fetchers, search, getArtwork, cite };
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=federation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"federation.js","sourceRoot":"","sources":["../../src/core/federation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public entry point for the federation engine — the shared core behind both
|
|
3
|
+
* the MCP server and any HTTP/edge front door. It carries no transport and no
|
|
4
|
+
* storage: callers inject a {@link CacheStore} and a set of {@link Fetcher}s,
|
|
5
|
+
* and get back a {@link Federation} whose every result has already passed the
|
|
6
|
+
* per-museum rights gate. Deliberately free of `node:sqlite` and the MCP SDK
|
|
7
|
+
* so it runs unchanged on a Cloudflare Workers runtime.
|
|
8
|
+
*/
|
|
9
|
+
export { createFederation, SearchParamsSchema, ID_REGEX, UnknownMuseumError, type Federation, type FederationOptions, type SearchParams, type SearchResult, type FetchOutcome, type CiteOutcome, } from './federation.js';
|
|
10
|
+
export type { CacheStore, Awaitable } from './cache.js';
|
|
11
|
+
export { cite, type CiteStyle } from '../cite.js';
|
|
12
|
+
export type { Artwork, ArtworkImages, ArtworkSource, ArtworkLicense, ValidationResult } from '../types.js';
|
|
13
|
+
export type { Fetcher, SearchOptions } from '../fetchers/types.js';
|
|
14
|
+
export { metFetcher } from '../fetchers/met.js';
|
|
15
|
+
export { clevelandFetcher } from '../fetchers/cleveland.js';
|
|
16
|
+
export { aicFetcher } from '../fetchers/aic.js';
|
|
17
|
+
export { wikimediaFetcher } from '../fetchers/wikimedia.js';
|
|
18
|
+
export { europeanaFetcher } from '../fetchers/europeana.js';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public entry point for the federation engine — the shared core behind both
|
|
3
|
+
* the MCP server and any HTTP/edge front door. It carries no transport and no
|
|
4
|
+
* storage: callers inject a {@link CacheStore} and a set of {@link Fetcher}s,
|
|
5
|
+
* and get back a {@link Federation} whose every result has already passed the
|
|
6
|
+
* per-museum rights gate. Deliberately free of `node:sqlite` and the MCP SDK
|
|
7
|
+
* so it runs unchanged on a Cloudflare Workers runtime.
|
|
8
|
+
*/
|
|
9
|
+
export { createFederation, SearchParamsSchema, ID_REGEX, UnknownMuseumError, } from './federation.js';
|
|
10
|
+
// Pure helpers a front door commonly needs alongside the federation.
|
|
11
|
+
export { cite } from '../cite.js';
|
|
12
|
+
// Built-in museum fetchers, so a host can assemble its own registry (and
|
|
13
|
+
// decide which to enable based on available API keys).
|
|
14
|
+
export { metFetcher } from '../fetchers/met.js';
|
|
15
|
+
export { clevelandFetcher } from '../fetchers/cleveland.js';
|
|
16
|
+
export { aicFetcher } from '../fetchers/aic.js';
|
|
17
|
+
export { wikimediaFetcher } from '../fetchers/wikimedia.js';
|
|
18
|
+
export { europeanaFetcher } from '../fetchers/europeana.js';
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,kBAAkB,GAOnB,MAAM,iBAAiB,CAAC;AAIzB,qEAAqE;AACrE,OAAO,EAAE,IAAI,EAAkB,MAAM,YAAY,CAAC;AAIlD,yEAAyE;AACzE,uDAAuD;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/dateParser.js
CHANGED
|
@@ -19,6 +19,11 @@ const flatDynasties = (() => {
|
|
|
19
19
|
// ("three kingdoms", "delhi sultanate") match before any prefix overlap with
|
|
20
20
|
// shorter keys. Re-sorting on every tryDynasty call was wasted work.
|
|
21
21
|
const FLAT_DYNASTY_KEYS_LONGEST_FIRST = Object.keys(flatDynasties).sort((a, b) => b.length - a.length);
|
|
22
|
+
// Parallel array of word-boundary regexes — one per dynasty key. Pre-compiled
|
|
23
|
+
// at module load so tryDynasty doesn't pay regex-construction cost per call.
|
|
24
|
+
// Word-boundary anchoring (`\b`) prevents false-positives like "Hanka" hitting
|
|
25
|
+
// the "han" key, "Tangerine" hitting "tang", etc. (#21).
|
|
26
|
+
const FLAT_DYNASTY_REGEXES_LONGEST_FIRST = FLAT_DYNASTY_KEYS_LONGEST_FIRST.map((key) => new RegExp(`\\b${key.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\b`, 'i'));
|
|
22
27
|
const QUALIFIER_RE = /\b(early|mid|middle|late)\b/;
|
|
23
28
|
const ROMAN = {
|
|
24
29
|
i: 1, ii: 2, iii: 3, iv: 4, v: 5, vi: 6, vii: 7, viii: 8, ix: 9, x: 10,
|
|
@@ -232,9 +237,10 @@ function tryCentury(s) {
|
|
|
232
237
|
function tryDynasty(s) {
|
|
233
238
|
const lower = s.toLowerCase();
|
|
234
239
|
const qualifier = lower.match(QUALIFIER_RE)?.[1];
|
|
235
|
-
for (
|
|
236
|
-
if (!
|
|
240
|
+
for (let i = 0; i < FLAT_DYNASTY_KEYS_LONGEST_FIRST.length; i++) {
|
|
241
|
+
if (!FLAT_DYNASTY_REGEXES_LONGEST_FIRST[i].test(lower))
|
|
237
242
|
continue;
|
|
243
|
+
const period = FLAT_DYNASTY_KEYS_LONGEST_FIRST[i];
|
|
238
244
|
const [start, end] = flatDynasties[period];
|
|
239
245
|
const span = end - start;
|
|
240
246
|
if (qualifier === 'early') {
|
package/dist/dateParser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dateParser.js","sourceRoot":"","sources":["../src/dateParser.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAGxE,MAAM,SAAS,GAAG,aAA4E,CAAC;AAE/F,MAAM,aAAa,GAAqC,CAAC,GAAG,EAAE;IAC5D,MAAM,GAAG,GAAqC,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACjE,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,sDAAsD,GAAG,yCAAyC,CAAC,CAAC;YACnH,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC,EAAE,CAAC;AAEL,yEAAyE;AACzE,6EAA6E;AAC7E,qEAAqE;AACrE,MAAM,+BAA+B,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CACrE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAC9B,CAAC;AAEF,MAAM,YAAY,GAAG,6BAA6B,CAAC;AAEnD,MAAM,KAAK,GAA2B;IACpC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;IACtE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;IACxE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;CACzB,CAAC;AAEF,MAAM,aAAa,GAA2B;IAC5C,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;IACxE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE;IACzE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE;IAC7D,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE;CAClE,CAAC;AAEF,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,6EAA6E;IAC7E,wEAAwE;IACxE,yBAAyB;IACzB,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACrD,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1D,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AACzC,CAAC;AAED,mEAAmE;AACnE,yEAAyE;AACzE,yEAAyE;AACzE,kDAAkD;AAClD,SAAS,YAAY,CAAC,CAAS,EAAE,GAAiB,EAAE,SAAkB;IACpE,IAAI,KAAa,EAAE,GAAW,CAAC;IAC/B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QAC1B,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAChB,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QAC3B,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC;IACzB,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClD,OAAO;YACL,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;YACvC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;SACpC,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IACjE,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAC5C,CAAC;AAED,wEAAwE;AACxE,gEAAgE;AAChE,4CAA4C;AAC5C,SAAS,YAAY,CAAC,CAAS;IAC7B,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAS;IACjC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,IAAI,CAAC,EAAE,CAAC;QACN,OAAO;YACL,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC9B,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;SAC5B,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,2EAA2E;AAC3E,2BAA2B;AAC3B,2EAA2E;AAC3E,0EAA0E;AAC1E,uEAAuE;AACvE,gFAAgF;AAChF,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,SAAS,aAAa,CAAC,CAAS;IAC9B,IAAI,YAAY,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjC,yEAAyE;IACzE,mEAAmE;IACnE,sEAAsE;IACtE,yEAAyE;IACzE,gCAAgC;IAChC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,IAAI,CAAC,EAAE,CAAC;QACN,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAEhC,gEAAgE;QAChE,gEAAgE;QAChE,kEAAkE;QAClE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAElE,MAAM,qBAAqB,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;QACjF,MAAM,mBAAmB,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QAE7G,yEAAyE;QACzE,uEAAuE;QACvE,qEAAqE;QACrE,8CAA8C;QAC9C,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,qBAAqB,IAAI,mBAAmB,EAAE,CAAC;YAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YAC1C,MAAM,eAAe,GAAG,MAAM,GAAG,CAAC,CAAC;YACnC,MAAM,gBAAgB,GAAG,OAAO,GAAG,CAAC,CAAC;YACrC,IAAI,QAAgB,CAAC;YACrB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,QAAQ,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC;YAC9E,CAAC;YACD,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACT,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;aAAM,IACL,CAAC,GAAG,kBAAkB;YACtB,CAAC,GAAG,kBAAkB;YACtB,CAAC,GAAG,kBAAkB;YACtB,CAAC,GAAG,kBAAkB,EACtB,CAAC;YACD,qEAAqE;YACrE,oEAAoE;YACpE,8DAA8D;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAChE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,CAAS;IAChC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAC7F,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,MAAM,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAClD,MAAM,GAAG,GAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAU,EAAE,QAAQ,CAAC,SAAU,CAAC;QAC/D,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAQ,EAAE,QAAQ,CAAC,OAAQ,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,CAAC;QACN,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,CAAS;IAC9B,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACzD,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChC,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAC1D,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9B,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACxF,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9C,CAAC;IAED,gDAAgD;IAChD,uEAAuE;IACvE,sEAAsE;IACtE,iDAAiD;IACjD,uEAAuE;IACvE,yEAAyE;IACzE,wEAAwE;IACxE,6DAA6D;IAC7D,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC5D,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3D,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAE9E,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAClF,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpB,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,GAAG,GAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,KAAK,MAAM,MAAM,IAAI,+BAA+B,EAAE,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,SAAS;QACtC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC;QACzB,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC1B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;QACrE,CAAC;QACD,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClD,OAAO;gBACL,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;gBACvC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;aACpC,CAAC;QACJ,CAAC;QACD,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QACjE,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAgC;IAC/D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;IACD,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAElD,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,iBAAiB,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,iBAAiB;QAAE,OAAO,iBAAiB,CAAC;IAEhD,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC5C,CAAC"}
|
|
1
|
+
{"version":3,"file":"dateParser.js","sourceRoot":"","sources":["../src/dateParser.ts"],"names":[],"mappings":"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"}
|
package/dist/fetchers/aic.js
CHANGED
|
@@ -51,14 +51,19 @@ export const aicFetcher = {
|
|
|
51
51
|
async search(query, limit, options = {}) {
|
|
52
52
|
const url = new URL(`${AIC_API}/artworks/search`);
|
|
53
53
|
url.searchParams.set('q', query);
|
|
54
|
-
//
|
|
55
|
-
//
|
|
56
|
-
//
|
|
57
|
-
|
|
54
|
+
// AIC proxies the `query[...]` params straight into Elasticsearch. Multiple
|
|
55
|
+
// filter clauses must be combined under a single bool/must array; two
|
|
56
|
+
// sibling clauses in one query object (e.g. `query[term]` + `query[exists]`)
|
|
57
|
+
// is invalid ES and AIC rejects the whole request with HTTP 400 (#28).
|
|
58
|
+
//
|
|
59
|
+
// Push the rights filter to AIC server-side via the term clause, so the gate
|
|
60
|
+
// has fewer rejections to handle. Defense in depth: validateAicLicense still
|
|
61
|
+
// re-checks each fetched record.
|
|
62
|
+
url.searchParams.set('query[bool][must][0][term][is_public_domain]', 'true');
|
|
58
63
|
if (options.hasImage !== false) {
|
|
59
|
-
// exists
|
|
64
|
+
// exists clause against image_id keeps records without IIIF imagery
|
|
60
65
|
// out of the candidate list.
|
|
61
|
-
url.searchParams.set('query[exists][field]', 'image_id');
|
|
66
|
+
url.searchParams.set('query[bool][must][1][exists][field]', 'image_id');
|
|
62
67
|
}
|
|
63
68
|
url.searchParams.set('limit', String(limit));
|
|
64
69
|
url.searchParams.set('fields', 'id');
|
package/dist/fetchers/aic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aic.js","sourceRoot":"","sources":["../../src/fetchers/aic.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"aic.js","sourceRoot":"","sources":["../../src/fetchers/aic.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -6,16 +6,14 @@ import dotenv from 'dotenv';
|
|
|
6
6
|
import { homedir } from 'node:os';
|
|
7
7
|
import { join } from 'node:path';
|
|
8
8
|
import { z } from 'zod';
|
|
9
|
-
import {
|
|
9
|
+
import { createFederation, ID_REGEX, SearchParamsSchema, UnknownMuseumError, } from './core/index.js';
|
|
10
10
|
import { Cache } from './db.js';
|
|
11
|
-
import { dedupeWikimediaUploads } from './dedupe.js';
|
|
12
11
|
import { buildSeedQueryFromConstraints } from './discoverSeed.js';
|
|
13
12
|
import { aicFetcher } from './fetchers/aic.js';
|
|
14
13
|
import { clevelandFetcher } from './fetchers/cleveland.js';
|
|
15
14
|
import { europeanaFetcher } from './fetchers/europeana.js';
|
|
16
15
|
import { metFetcher } from './fetchers/met.js';
|
|
17
16
|
import { wikimediaFetcher } from './fetchers/wikimedia.js';
|
|
18
|
-
import { filterByYearRange } from './yearFilter.js';
|
|
19
17
|
// Load env vars before reading any keys. Cwd `.env` (developer flow) wins
|
|
20
18
|
// over `~/.open-museum-mcp/.env` (production / MCP-client-launched flow);
|
|
21
19
|
// dotenv ignores files that don't exist, so missing-file is not an error.
|
|
@@ -41,44 +39,16 @@ else {
|
|
|
41
39
|
}
|
|
42
40
|
const CACHE_PATH = process.env.OMM_CACHE_PATH ?? join(homedir(), '.open-museum-mcp', 'cache.db');
|
|
43
41
|
const cache = new Cache({ path: CACHE_PATH });
|
|
44
|
-
//
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
//
|
|
48
|
-
//
|
|
49
|
-
//
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
// gentle and keeps wall-clock time within the same order of magnitude.
|
|
55
|
-
const FETCH_CONCURRENCY = 8;
|
|
56
|
-
async function withConcurrency(items, limit, fn) {
|
|
57
|
-
const results = new Array(items.length);
|
|
58
|
-
let next = 0;
|
|
59
|
-
const workers = Array.from({ length: Math.min(limit, items.length) }, async () => {
|
|
60
|
-
while (true) {
|
|
61
|
-
const idx = next++;
|
|
62
|
-
if (idx >= items.length)
|
|
63
|
-
return;
|
|
64
|
-
results[idx] = await fn(items[idx]);
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
await Promise.all(workers);
|
|
68
|
-
return results;
|
|
69
|
-
}
|
|
70
|
-
const SearchInput = z.object({
|
|
71
|
-
query: z.string().min(1),
|
|
72
|
-
museum: z.string().optional(),
|
|
73
|
-
has_image: z.boolean().default(true),
|
|
74
|
-
limit: z.number().int().min(1).max(50).default(10),
|
|
75
|
-
// Optional date-range constraint. Either bound may be omitted. BCE is
|
|
76
|
-
// expressed as a negative integer (e.g. year_min: -500 for 500 BCE).
|
|
77
|
-
// The bounds gate the *result set*, not the upstream search call —
|
|
78
|
-
// each museum's free-text search runs unchanged, and we drop accepted
|
|
79
|
-
// records whose [yearStart, yearEnd] falls outside the window.
|
|
80
|
-
year_min: z.number().int().optional(),
|
|
81
|
-
year_max: z.number().int().optional(),
|
|
42
|
+
// The federation engine is transport-agnostic. The MCP server is one front
|
|
43
|
+
// door over it (stdio JSON-RPC); the web app is another (HTTP + KV cache).
|
|
44
|
+
// Rejections are logged to stderr — stdout is the MCP protocol channel — so
|
|
45
|
+
// operators can diagnose "why did my search return fewer results than
|
|
46
|
+
// expected?". The strict-default-deny gate lives inside each fetcher's
|
|
47
|
+
// `normalize`, so no rejected record ever reaches the cache or the wire.
|
|
48
|
+
const federation = createFederation({
|
|
49
|
+
fetchers: FETCHERS,
|
|
50
|
+
cache,
|
|
51
|
+
onReject: (id, reason) => console.error(`[open-museum-mcp] rejected ${id}: ${reason}`),
|
|
82
52
|
});
|
|
83
53
|
const GetInput = z.object({
|
|
84
54
|
id: z.string().regex(ID_REGEX),
|
|
@@ -93,31 +63,7 @@ const DiscoverInput = z.object({
|
|
|
93
63
|
not_artist: z.array(z.string().min(1)).optional(),
|
|
94
64
|
museum: z.string().min(1).optional(),
|
|
95
65
|
});
|
|
96
|
-
|
|
97
|
-
if (!ID_REGEX.test(id)) {
|
|
98
|
-
return { ok: false, reason: `invalid artwork id: ${id}` };
|
|
99
|
-
}
|
|
100
|
-
const cached = cache.getObject(id);
|
|
101
|
-
if (cached)
|
|
102
|
-
return { ok: true, artwork: cached };
|
|
103
|
-
// ID_REGEX guarantees a non-empty `[a-z]+` segment before ':'.
|
|
104
|
-
const code = id.slice(0, id.indexOf(':'));
|
|
105
|
-
const fetcher = FETCHERS[code];
|
|
106
|
-
if (!fetcher)
|
|
107
|
-
return { ok: false, reason: `unknown museum code: ${code}` };
|
|
108
|
-
const raw = await fetcher.getRaw(id);
|
|
109
|
-
const result = fetcher.normalize(raw);
|
|
110
|
-
if (result.status === 'rejected') {
|
|
111
|
-
// Rejections are expected — strict-default-deny is the project's spine.
|
|
112
|
-
// Log to stderr (stdout is the MCP protocol channel) so operators can
|
|
113
|
-
// diagnose "why did my search return fewer results than expected?".
|
|
114
|
-
console.error(`[open-museum-mcp] rejected ${id}: ${result.rejection.reason}`);
|
|
115
|
-
return { ok: false, reason: result.rejection.reason };
|
|
116
|
-
}
|
|
117
|
-
cache.upsertObject(result.artwork);
|
|
118
|
-
return { ok: true, artwork: result.artwork };
|
|
119
|
-
}
|
|
120
|
-
const server = new Server({ name: 'open-museum-mcp', version: '0.5.0' }, {
|
|
66
|
+
const server = new Server({ name: 'open-museum-mcp', version: '0.6.0' }, {
|
|
121
67
|
capabilities: {
|
|
122
68
|
tools: {},
|
|
123
69
|
resources: {},
|
|
@@ -220,63 +166,39 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
220
166
|
function errorResult(message) {
|
|
221
167
|
return { content: [{ type: 'text', text: message }], isError: true };
|
|
222
168
|
}
|
|
223
|
-
// The cache key includes the overfetch count, not the user-facing `limit`.
|
|
224
|
-
// That means limit:5 and limit:6 produce different keys (since 5*2=10 vs
|
|
225
|
-
// 6*2=12). The trade-off: more cache rows, but each row is guaranteed to
|
|
226
|
-
// hold enough IDs to satisfy a request at its overfetch tier even after
|
|
227
|
-
// rights-gate rejections. Bucketing would need explicit refill logic.
|
|
228
|
-
function searchCacheKey(query, museum, hasImage, overFetch) {
|
|
229
|
-
return JSON.stringify({ q: query, m: museum ?? '*', hi: hasImage, of: overFetch });
|
|
230
|
-
}
|
|
231
169
|
async function handleSearch(args) {
|
|
232
|
-
const
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
170
|
+
const params = SearchParamsSchema.parse(args);
|
|
171
|
+
try {
|
|
172
|
+
const result = await federation.search(params);
|
|
173
|
+
return {
|
|
174
|
+
content: [
|
|
175
|
+
{
|
|
176
|
+
type: 'text',
|
|
177
|
+
text: JSON.stringify(result, null, 2),
|
|
178
|
+
},
|
|
179
|
+
],
|
|
180
|
+
};
|
|
238
181
|
}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
allIds = idLists.flat();
|
|
245
|
-
cache.putQuery(cacheKey, allIds);
|
|
182
|
+
catch (err) {
|
|
183
|
+
if (err instanceof UnknownMuseumError) {
|
|
184
|
+
return errorResult(`unknown museum: ${err.museum}`);
|
|
185
|
+
}
|
|
186
|
+
throw err;
|
|
246
187
|
}
|
|
247
|
-
const fetched = await withConcurrency(allIds, FETCH_CONCURRENCY, (id) => fetchAndCache(id).catch((err) => ({
|
|
248
|
-
ok: false,
|
|
249
|
-
reason: err instanceof Error ? err.message : 'fetch failed',
|
|
250
|
-
})));
|
|
251
|
-
const accepted = fetched
|
|
252
|
-
.filter((r) => r.ok)
|
|
253
|
-
.map((r) => r.artwork);
|
|
254
|
-
const filtered = accepted.filter((a) => !input.has_image || Boolean(a.imageUrls.full));
|
|
255
|
-
const deduped = dedupeWikimediaUploads(filtered);
|
|
256
|
-
const dated = filterByYearRange(deduped, input.year_min, input.year_max);
|
|
257
|
-
const results = dated.slice(0, input.limit);
|
|
258
|
-
return {
|
|
259
|
-
content: [
|
|
260
|
-
{
|
|
261
|
-
type: 'text',
|
|
262
|
-
text: JSON.stringify({ count: results.length, results }, null, 2),
|
|
263
|
-
},
|
|
264
|
-
],
|
|
265
|
-
};
|
|
266
188
|
}
|
|
267
189
|
async function handleGet(args) {
|
|
268
190
|
const input = GetInput.parse(args);
|
|
269
|
-
const out = await
|
|
191
|
+
const out = await federation.getArtwork(input.id);
|
|
270
192
|
if (!out.ok)
|
|
271
193
|
return errorResult(out.reason);
|
|
272
194
|
return { content: [{ type: 'text', text: JSON.stringify(out.artwork, null, 2) }] };
|
|
273
195
|
}
|
|
274
196
|
async function handleCite(args) {
|
|
275
197
|
const input = CiteInput.parse(args);
|
|
276
|
-
const out = await
|
|
198
|
+
const out = await federation.cite(input.id, input.style);
|
|
277
199
|
if (!out.ok)
|
|
278
200
|
return errorResult(out.reason);
|
|
279
|
-
return { content: [{ type: 'text', text:
|
|
201
|
+
return { content: [{ type: 'text', text: out.citation }] };
|
|
280
202
|
}
|
|
281
203
|
async function handleDiscoverRandom(args) {
|
|
282
204
|
const input = DiscoverInput.parse(args);
|
|
@@ -358,7 +280,7 @@ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
|
|
|
358
280
|
if (!ID_REGEX.test(id)) {
|
|
359
281
|
throw new Error(`invalid museum URI: ${uri} (id must match ${ID_REGEX})`);
|
|
360
282
|
}
|
|
361
|
-
const out = await
|
|
283
|
+
const out = await federation.getArtwork(id);
|
|
362
284
|
if (!out.ok) {
|
|
363
285
|
throw new Error(`cannot resolve ${uri}: ${out.reason}`);
|
|
364
286
|
}
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "open-museum-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "MCP server for license-verified search across open-access museum collections (The Met, Cleveland, AIC, Wikimedia Commons, Europeana).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/server.js",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": "./dist/server.js",
|
|
9
|
+
"./core": {
|
|
10
|
+
"types": "./dist/core/index.d.ts",
|
|
11
|
+
"default": "./dist/core/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
7
14
|
"bin": {
|
|
8
15
|
"open-museum-mcp": "dist/server.js"
|
|
9
16
|
},
|
|
@@ -50,12 +57,12 @@
|
|
|
50
57
|
"dependencies": {
|
|
51
58
|
"@modelcontextprotocol/sdk": "^1.0.4",
|
|
52
59
|
"dotenv": "^17.4.2",
|
|
53
|
-
"zod": "^3.
|
|
60
|
+
"zod": "^4.3.6"
|
|
54
61
|
},
|
|
55
62
|
"devDependencies": {
|
|
56
|
-
"@types/node": "^
|
|
63
|
+
"@types/node": "^25.6.0",
|
|
57
64
|
"tsx": "^4.19.2",
|
|
58
|
-
"typescript": "^
|
|
65
|
+
"typescript": "^6.0.3",
|
|
59
66
|
"vitest": "^4.1.5"
|
|
60
67
|
}
|
|
61
68
|
}
|