@cyanheads/wikidata-mcp-server 0.1.11 → 0.1.13

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 CHANGED
@@ -1,8 +1,8 @@
1
1
  # Developer Protocol
2
2
 
3
3
  **Server:** @cyanheads/wikidata-mcp-server
4
- **Version:** 0.1.11
5
- **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.21`
4
+ **Version:** 0.1.13
5
+ **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.6`
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
@@ -45,7 +45,7 @@ Tailor suggestions to what's actually missing or stale — don't recite the full
45
45
  - **Logic throws, framework catches.** Tool/resource handlers are pure — throw on failure, no `try/catch`. Plain `Error` is fine; the framework catches, classifies, and formats. Use error factories (`notFound()`, `validationError()`, etc.) when the error code matters.
46
46
  - **Use `ctx.log`** for request-scoped logging. No `console` calls.
47
47
  - **Use `ctx.state`** for tenant-scoped storage. Never access persistence directly.
48
- - **Check `ctx.elicit` / `ctx.sample`** for presence before calling.
48
+ - **Check `ctx.elicit`** for presence before calling.
49
49
  - **Secrets in env vars only** — never hardcoded.
50
50
  - **Close the loop on issues.** When implementing work tracked by a GitHub issue, comment on the issue with what landed and close it. Do both — a comment without a close leaves stale issues open; a close without a comment leaves no record of what shipped. The comment is for future readers — state the concrete changes, not the conversation that produced them.
51
51
 
@@ -159,8 +159,7 @@ Handlers receive a unified `ctx` object. Key properties:
159
159
  |:---------|:------------|
160
160
  | `ctx.log` | Request-scoped logger — `.debug()`, `.info()`, `.notice()`, `.warning()`, `.error()`. Auto-correlates requestId, traceId, tenantId. |
161
161
  | `ctx.state` | Tenant-scoped KV — `.get(key)`, `.set(key, value, { ttl? })`, `.delete(key)`, `.list(prefix, { cursor, limit })`. Accepts any serializable value. |
162
- | `ctx.elicit` | Ask user for structured input. **Check for presence first:** `if (ctx.elicit) { ... }` |
163
- | `ctx.sample` | Request LLM completion from the client. **Check for presence first:** `if (ctx.sample) { ... }` |
162
+ | `ctx.elicit` | Ask user for structured input — form call `(message, schema)` or `.url(message, url)` for an external link. **Check for presence first:** `if (ctx.elicit) { ... }` |
164
163
  | `ctx.signal` | `AbortSignal` for cancellation. |
165
164
  | `ctx.progress` | Task progress (present when `task: true`) — `.setTotal(n)`, `.increment()`, `.update(message)`. |
166
165
  | `ctx.requestId` | Unique request ID. |
@@ -312,13 +311,13 @@ When you complete a skill's checklist, check the boxes and add a completion time
312
311
  | `npm run start:http` | Production mode (HTTP) |
313
312
  | `npm run changelog:build` | Regenerate `CHANGELOG.md` from `changelog/*.md` |
314
313
  | `npm run changelog:check` | Verify `CHANGELOG.md` is in sync (used by devcheck) |
315
- | `npm run bundle` | Build and pack as `.mcpb` for one-click Claude Desktop install |
314
+ | `npm run bundle` | Build, pack, and clean a `.mcpb` for one-click Claude Desktop install |
316
315
 
317
316
  ---
318
317
 
319
318
  ## Bundling
320
319
 
321
- `npm run bundle` produces a `.mcpb` extension bundle for one-click install in Claude Desktop. MCPB is stdio-only — HTTP and Cloudflare Workers deployments are unaffected. Consumers who don't need it can delete `manifest.json` and `.mcpbignore`; `lint:packaging` skips cleanly.
320
+ `npm run bundle` produces a `.mcpb` extension bundle for one-click install in Claude Desktop. The pack step is followed by `scripts/clean-mcpb.ts`, which prunes dev dependencies (`mcpb clean`) and strips dependency-shipped agent docs (`node_modules/**` `skills/`, `.claude/`, `.agents/`, `SKILL.md`) that root-anchored `.mcpbignore` patterns cannot reach. MCPB is stdio-only — HTTP and Cloudflare Workers deployments are unaffected. Consumers who don't need it can delete `manifest.json` and `.mcpbignore`; `lint:packaging` skips cleanly.
322
321
 
323
322
  **Adding an env var requires both files:** `server.json` (registry discovery, `environmentVariables[]`) and `manifest.json` (bundle install UX, `mcp_config.env` + `user_config`). `lint:packaging` (run by `devcheck`) verifies the env var names match.
324
323
 
package/Dockerfile CHANGED
@@ -8,7 +8,7 @@ FROM oven/bun:1.3 AS build
8
8
 
9
9
  WORKDIR /usr/src/app
10
10
 
11
- # Install node for tsx-based build scripts
11
+ # Install node for npm (delegates to bun scripts)
12
12
  RUN apt-get update -qq && apt-get install -y --no-install-recommends nodejs npm && rm -rf /var/lib/apt/lists/*
13
13
 
14
14
  # Copy dependency manifests for optimized layer caching
@@ -20,7 +20,7 @@ RUN bun install --frozen-lockfile
20
20
  # Copy the rest of the source code
21
21
  COPY . .
22
22
 
23
- # Build the application (npm invokes node/tsx rather than bun for script runner)
23
+ # Build the application
24
24
  RUN npm run build
25
25
 
26
26
 
@@ -39,11 +39,14 @@ WORKDIR /usr/src/app
39
39
  # production dependencies are installed.
40
40
  ENV NODE_ENV=production
41
41
 
42
+ ARG APP_VERSION
43
+
42
44
  # OCI image metadata (https://github.com/opencontainers/image-spec/blob/main/annotations.md)
43
45
  LABEL org.opencontainers.image.title="@cyanheads/wikidata-mcp-server"
44
46
  LABEL org.opencontainers.image.description="Search and fetch Wikidata entities, execute SPARQL queries, and resolve external identifiers via MCP. STDIO or Streamable HTTP."
45
47
  LABEL org.opencontainers.image.licenses="Apache-2.0"
46
48
  LABEL org.opencontainers.image.source="https://github.com/cyanheads/wikidata-mcp-server"
49
+ LABEL org.opencontainers.image.version="${APP_VERSION}"
47
50
 
48
51
  # Copy dependency manifests
49
52
  COPY package.json bun.lock ./
@@ -98,5 +101,8 @@ ENV MCP_FORCE_CONSOLE_LOGGING="true"
98
101
  # Expose the port the server listens on
99
102
  EXPOSE ${MCP_HTTP_PORT}
100
103
 
104
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
105
+ CMD bun -e "fetch('http://localhost:'+process.env.MCP_HTTP_PORT+'/healthz').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"
106
+
101
107
  # The command to start the server
102
108
  CMD ["bun", "run", "dist/index.js"]
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  <div align="center">
9
9
 
10
- [![Version](https://img.shields.io/badge/Version-0.1.11-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/wikidata-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/wikidata-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/wikidata-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^6.0.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.2-blueviolet.svg?style=flat-square)](https://bun.sh/)
10
+ [![Version](https://img.shields.io/badge/Version-0.1.13-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/wikidata-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/wikidata-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/wikidata-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^6.0.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.2-blueviolet.svg?style=flat-square)](https://bun.sh/)
11
11
 
12
12
  </div>
13
13
 
package/dist/index.js CHANGED
@@ -15,6 +15,14 @@ import { wikidataSparqlQuery } from './mcp-server/tools/definitions/sparql-query
15
15
  import { initWikidataRestService } from './services/wikidata/wikidata-rest-service.js';
16
16
  import { initWikidataSparqlService } from './services/wikidata/wikidata-sparql-service.js';
17
17
  await createApp({
18
+ name: 'wikidata-mcp-server',
19
+ title: 'wikidata-mcp-server',
20
+ instructions: 'Use the wikidata_* tools to query the Wikidata knowledge graph (REST API + Query Service). No API key required. ' +
21
+ 'Items are addressed by Q-IDs (e.g. Q76), properties by P-IDs (e.g. P31). IDs are not names — resolve a name to an ID with ' +
22
+ 'wikidata_search_entities first, then fetch with wikidata_get_entity, wikidata_get_statements, or wikidata_get_sitelinks. ' +
23
+ 'Use wikidata_resolve_external_id to enter the graph from a DOI, PMID, ORCID, or OpenAlex ID. ' +
24
+ 'wikidata_sparql_query is the escape hatch for graph traversals and aggregations the curated tools cannot express (SELECT only, rate-limited); ' +
25
+ 'pair it with wikidata_get_labels to humanize the QIDs it returns.',
18
26
  tools: [
19
27
  wikidataSearchEntities,
20
28
  wikidataGetEntity,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,4DAA4D,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAE3F,MAAM,SAAS,CAAC;IACd,KAAK,EAAE;QACL,sBAAsB;QACtB,iBAAiB;QACjB,iBAAiB;QACjB,qBAAqB;QACrB,oBAAoB;QACpB,mBAAmB;QACnB,yBAAyB;KAC1B;IACD,SAAS,EAAE,CAAC,sBAAsB,CAAC;IACnC,OAAO,EAAE,EAAE;IACX,iFAAiF;IACjF,kFAAkF;IAClF,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;IAC/B,KAAK,CAAC,IAAI;QACR,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,4DAA4D,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAE3F,MAAM,SAAS,CAAC;IACd,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,qBAAqB;IAC5B,YAAY,EACV,kHAAkH;QAClH,4HAA4H;QAC5H,2HAA2H;QAC3H,+FAA+F;QAC/F,gJAAgJ;QAChJ,mEAAmE;IACrE,KAAK,EAAE;QACL,sBAAsB;QACtB,iBAAiB;QACjB,iBAAiB;QACjB,qBAAqB;QACrB,oBAAoB;QACpB,mBAAmB;QACnB,yBAAyB;KAC1B;IACD,SAAS,EAAE,CAAC,sBAAsB,CAAC;IACnC,OAAO,EAAE,EAAE;IACX,iFAAiF;IACjF,kFAAkF;IAClF,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;IAC/B,KAAK,CAAC,IAAI;QACR,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;CACF,CAAC,CAAC"}
@@ -26,7 +26,9 @@ export declare const wikidataSearchEntities: import("@cyanheads/mcp-ts-core").To
26
26
  readonly effectiveQuery: z.ZodString;
27
27
  readonly searchType: z.ZodString;
28
28
  readonly language: z.ZodString;
29
- readonly resultCount: z.ZodNumber;
29
+ readonly shown: z.ZodNumber;
30
+ readonly cap: z.ZodNumber;
31
+ readonly truncated: z.ZodOptional<z.ZodBoolean>;
30
32
  readonly notice: z.ZodOptional<z.ZodString>;
31
33
  }>;
32
34
  //# sourceMappingURL=search-entities.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-entities.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-entities.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAGjD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;EAkJjC,CAAC"}
1
+ {"version":3,"file":"search-entities.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-entities.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAGjD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8JjC,CAAC"}
@@ -62,12 +62,17 @@ export const wikidataSearchEntities = tool('wikidata_search_entities', {
62
62
  .describe('Ranked list of matching entities. Empty when no results found.'),
63
63
  }),
64
64
  // Agent-facing search context — the query as executed, type, language, pagination counts,
65
- // and recovery guidance for empty results. Reaches both structuredContent and content[].
65
+ // truncation disclosure, and recovery guidance for empty results. Reaches both structuredContent and content[].
66
66
  enrichment: {
67
67
  effectiveQuery: z.string().describe('The search query that was executed.'),
68
68
  searchType: z.string().describe('The entity type that was searched ("item" or "property").'),
69
69
  language: z.string().describe('The language used for label and description display.'),
70
- resultCount: z.number().describe('Number of results returned on this page.'),
70
+ shown: z.number().describe('Number of results returned on this page.'),
71
+ cap: z.number().describe('The limit parameter in effect.'),
72
+ truncated: z
73
+ .boolean()
74
+ .optional()
75
+ .describe('True when results were capped at the limit. The Wikidata search API returns no total count — use offset pagination to retrieve more.'),
71
76
  notice: z
72
77
  .string()
73
78
  .optional()
@@ -92,11 +97,17 @@ export const wikidataSearchEntities = tool('wikidata_search_entities', {
92
97
  language: r.match?.language ?? input.language,
93
98
  },
94
99
  }));
100
+ const atCap = results.length >= input.limit;
101
+ if (atCap) {
102
+ ctx.enrich.truncated({ shown: results.length, cap: input.limit });
103
+ }
104
+ else {
105
+ ctx.enrich({ shown: results.length, cap: input.limit });
106
+ }
95
107
  ctx.enrich({
96
108
  effectiveQuery: input.query,
97
109
  searchType: input.type,
98
110
  language: input.language,
99
- resultCount: results.length,
100
111
  });
101
112
  if (results.length === 0) {
102
113
  ctx.enrich.notice(`No ${input.type}s matched "${input.query}" in language "${input.language}". Try broader terms or a different language code.`);
@@ -1 +1 @@
1
- {"version":3,"file":"search-entities.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-entities.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-entities.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-entities.tool.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/wikidata-mcp-server",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "mcpName": "io.github.cyanheads/wikidata-mcp-server",
5
5
  "description": "Search and fetch Wikidata entities, execute SPARQL queries, and resolve external identifiers via MCP. STDIO or Streamable HTTP.",
6
6
  "type": "module",
@@ -22,7 +22,7 @@
22
22
  "format:unsafe": "biome check --write --unsafe .",
23
23
  "lint:mcp": "bun run scripts/lint-mcp.ts",
24
24
  "lint:packaging": "bun run scripts/lint-packaging.ts",
25
- "bundle": "bun run build && npx -y @anthropic-ai/mcpb pack . dist/wikidata-mcp-server.mcpb",
25
+ "bundle": "bun run build && npx -y @anthropic-ai/mcpb pack . dist/wikidata-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/wikidata-mcp-server.mcpb",
26
26
  "changelog:build": "bun run scripts/build-changelog.ts",
27
27
  "changelog:check": "bun run scripts/build-changelog.ts --check",
28
28
  "release:github": "bun run scripts/release-github.ts",
@@ -75,18 +75,18 @@
75
75
  "access": "public"
76
76
  },
77
77
  "dependencies": {
78
- "@cyanheads/mcp-ts-core": "^0.9.21",
78
+ "@cyanheads/mcp-ts-core": "^0.10.6",
79
79
  "pino-pretty": "^13.1.3",
80
80
  "zod": "^4.4.3"
81
81
  },
82
82
  "devDependencies": {
83
- "@biomejs/biome": "^2.4.16",
84
- "@types/node": "^25.9.1",
83
+ "@biomejs/biome": "^2.5.0",
84
+ "@types/node": "^25.9.3",
85
85
  "depcheck": "^1.4.7",
86
86
  "ignore": "^7.0.5",
87
87
  "tsc-alias": "^1.8.17",
88
88
  "tsx": "^4.22.4",
89
89
  "typescript": "^6.0.3",
90
- "vitest": "^4.1.8"
90
+ "vitest": "^4.1.9"
91
91
  }
92
92
  }
package/server.json CHANGED
@@ -12,14 +12,14 @@
12
12
  "url": "https://wikidata.caseyjhand.com/mcp"
13
13
  }
14
14
  ],
15
- "version": "0.1.11",
15
+ "version": "0.1.13",
16
16
  "packages": [
17
17
  {
18
18
  "registryType": "npm",
19
19
  "registryBaseUrl": "https://registry.npmjs.org",
20
20
  "identifier": "@cyanheads/wikidata-mcp-server",
21
21
  "runtimeHint": "bun",
22
- "version": "0.1.11",
22
+ "version": "0.1.13",
23
23
  "packageArguments": [
24
24
  {
25
25
  "type": "positional",
@@ -69,7 +69,7 @@
69
69
  "registryBaseUrl": "https://registry.npmjs.org",
70
70
  "identifier": "@cyanheads/wikidata-mcp-server",
71
71
  "runtimeHint": "bun",
72
- "version": "0.1.11",
72
+ "version": "0.1.13",
73
73
  "packageArguments": [
74
74
  {
75
75
  "type": "positional",