@automatelab/citation-intelligence 0.7.0 → 0.8.1
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/dist/index.js +201 -2
- package/dist/index.js.map +1 -1
- package/dist/output-schemas.d.ts +926 -0
- package/dist/output-schemas.d.ts.map +1 -0
- package/dist/output-schemas.js +512 -0
- package/dist/output-schemas.js.map +1 -0
- package/package.json +4 -2
package/dist/index.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// Citation Intelligence MCP - entrypoint.
|
|
3
3
|
// All logging goes to stderr. stdout is reserved for JSON-RPC transport.
|
|
4
|
+
import { readFileSync } from "node:fs";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
6
|
+
import { dirname, join } from "node:path";
|
|
4
7
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
8
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
9
|
+
// Read version from package.json at runtime so the handshake string and
|
|
10
|
+
// the npm-published version never drift. dist/index.js sits at <pkg>/dist/.
|
|
11
|
+
const SERVER_VERSION = JSON.parse(readFileSync(join(dirname(fileURLToPath(import.meta.url)), "..", "package.json"), "utf8")).version;
|
|
6
12
|
import { checkCitations, checkCitationsInputSchema, } from "./tools/check-citations.js";
|
|
7
13
|
import { amICited, amICitedInputSchema } from "./tools/am-i-cited.js";
|
|
8
14
|
import { aiOverview, aiOverviewInputSchema } from "./tools/ai-overview.js";
|
|
@@ -31,9 +37,10 @@ import { registerPrompts } from "./prompts.js";
|
|
|
31
37
|
import { registerResources } from "./resources.js";
|
|
32
38
|
import { ToolFetchError } from "./lib/fetch.js";
|
|
33
39
|
import { log } from "./lib/log.js";
|
|
40
|
+
import { checkCitationsOutputShape, amICitedOutputShape, aiOverviewOutputShape, citedForOutputShape, predictCitationOutputShape, trackQueriesOutputShape, runPanelOutputShape, citationTrendOutputShape, compareDomainsOutputShape, wikipediaMentionsOutputShape, auditSitemapOutputShape, competeForQueryOutputShape, citationFreshnessScoreOutputShape, citedForDiffOutputShape, gscCitationGapOutputShape, schemaAuditOutputShape, llmsTxtGeneratorOutputShape, answerBoxPositionOutputShape, citationProvenanceOutputShape, citationEvidenceOutputShape, crawlerAccessAuditOutputShape, sitemapCitationMapOutputShape, canonicalCompetitorSetOutputShape, structuredDataRepairOutputShape, } from "./output-schemas.js";
|
|
34
41
|
const server = new McpServer({
|
|
35
42
|
name: "@automatelab/citation-intelligence",
|
|
36
|
-
version:
|
|
43
|
+
version: SERVER_VERSION,
|
|
37
44
|
});
|
|
38
45
|
function toolError(err) {
|
|
39
46
|
return {
|
|
@@ -60,105 +67,297 @@ function wrapHandler(handler) {
|
|
|
60
67
|
server.registerTool("check_citations", {
|
|
61
68
|
description: "Return URLs cited by an AI engine (Perplexity, Claude, ChatGPT, Gemini, or Bing) for a query. Use this when an agent or user wants to see what sources an AI search engine grounds answers on. Requires at least one engine API key; auto-picks the first available.",
|
|
62
69
|
inputSchema: checkCitationsInputSchema,
|
|
70
|
+
outputSchema: checkCitationsOutputShape,
|
|
71
|
+
annotations: {
|
|
72
|
+
title: "Check AI engine citations",
|
|
73
|
+
readOnlyHint: false,
|
|
74
|
+
destructiveHint: false,
|
|
75
|
+
idempotentHint: true,
|
|
76
|
+
openWorldHint: true,
|
|
77
|
+
},
|
|
63
78
|
}, (args) => wrapHandler(() => checkCitations(args)));
|
|
64
79
|
server.registerTool("am_i_cited", {
|
|
65
80
|
description: "Check whether a domain is cited by an AI engine across a cluster of queries. Returns per-query presence, rank, and a citation-rate summary. Use to measure visibility for a brand, product, or content site in AI search.",
|
|
66
81
|
inputSchema: amICitedInputSchema,
|
|
82
|
+
outputSchema: amICitedOutputShape,
|
|
83
|
+
annotations: {
|
|
84
|
+
title: "Check domain citation presence",
|
|
85
|
+
readOnlyHint: false,
|
|
86
|
+
destructiveHint: false,
|
|
87
|
+
idempotentHint: true,
|
|
88
|
+
openWorldHint: true,
|
|
89
|
+
},
|
|
67
90
|
}, (args) => wrapHandler(() => amICited(args)));
|
|
68
91
|
server.registerTool("ai_overview", {
|
|
69
92
|
description: "Check whether Google shows an AI Overview for a query, and which URLs it cites. Uses SerpAPI (free tier: 100/month). Set SERPAPI_KEY.",
|
|
70
93
|
inputSchema: aiOverviewInputSchema,
|
|
94
|
+
outputSchema: aiOverviewOutputShape,
|
|
95
|
+
annotations: {
|
|
96
|
+
title: "Check Google AI Overview presence",
|
|
97
|
+
readOnlyHint: false,
|
|
98
|
+
destructiveHint: false,
|
|
99
|
+
idempotentHint: true,
|
|
100
|
+
openWorldHint: true,
|
|
101
|
+
},
|
|
71
102
|
}, (args) => wrapHandler(() => aiOverview(args)));
|
|
72
103
|
server.registerTool("cited_for", {
|
|
73
104
|
description: "List queries that the given domain has been cited for, served from the local cache. Build up a corpus by calling check_citations or am_i_cited first; cited_for queries it without spending API budget.",
|
|
74
105
|
inputSchema: citedForInputSchema,
|
|
106
|
+
outputSchema: citedForOutputShape,
|
|
107
|
+
annotations: {
|
|
108
|
+
title: "List cached queries domain was cited for",
|
|
109
|
+
readOnlyHint: true,
|
|
110
|
+
destructiveHint: false,
|
|
111
|
+
idempotentHint: true,
|
|
112
|
+
openWorldHint: false,
|
|
113
|
+
},
|
|
75
114
|
}, (args) => wrapHandler(() => citedFor(args)));
|
|
76
115
|
server.registerTool("predict_citation", {
|
|
77
116
|
description: "Score citation likelihood for a URL from public signals (Wikipedia link presence, schema.org markup, /llms.txt, GitHub and Reddit references, canonical hygiene, HTTPS). No LLM fired - all heuristic. Returns 0-100 score, grade, signal breakdown, and ranked fixes.",
|
|
78
117
|
inputSchema: predictCitationInputSchema,
|
|
118
|
+
outputSchema: predictCitationOutputShape,
|
|
119
|
+
annotations: {
|
|
120
|
+
title: "Predict citation likelihood for a URL",
|
|
121
|
+
readOnlyHint: true,
|
|
122
|
+
destructiveHint: false,
|
|
123
|
+
idempotentHint: true,
|
|
124
|
+
openWorldHint: true,
|
|
125
|
+
},
|
|
79
126
|
}, (args) => wrapHandler(() => predictCitation(args)));
|
|
80
127
|
server.registerTool("track_queries", {
|
|
81
128
|
description: "Save, load, or list named query panels. A panel is a persisted set of queries you want to monitor over time (e.g. editorial-watchlist). Use action=save with queries[] to create, action=load to read, action=list to enumerate. Panels live under <config>/panels/<name>.json.",
|
|
82
129
|
inputSchema: trackQueriesInputSchema,
|
|
130
|
+
outputSchema: trackQueriesOutputShape,
|
|
131
|
+
annotations: {
|
|
132
|
+
title: "Save or load a query panel",
|
|
133
|
+
readOnlyHint: false,
|
|
134
|
+
destructiveHint: false,
|
|
135
|
+
idempotentHint: true,
|
|
136
|
+
openWorldHint: false,
|
|
137
|
+
},
|
|
83
138
|
}, (args) => wrapHandler(() => trackQueries(args)));
|
|
84
139
|
server.registerTool("run_panel", {
|
|
85
140
|
description: "Run a saved panel through am_i_cited and append a timestamped snapshot. Snapshots live under <config>/snapshots/<panel>/<iso>.json. Feeds citation_trend.",
|
|
86
141
|
inputSchema: runPanelInputSchema,
|
|
142
|
+
outputSchema: runPanelOutputShape,
|
|
143
|
+
annotations: {
|
|
144
|
+
title: "Run panel and save snapshot",
|
|
145
|
+
readOnlyHint: false,
|
|
146
|
+
destructiveHint: false,
|
|
147
|
+
idempotentHint: true,
|
|
148
|
+
openWorldHint: true,
|
|
149
|
+
},
|
|
87
150
|
}, (args) => wrapHandler(() => runPanel(args)));
|
|
88
151
|
server.registerTool("citation_trend", {
|
|
89
152
|
description: "Report citation rate over time for a panel from stored snapshots. Returns the series of citation_rate per snapshot plus per-query deltas (gained/lost/unchanged) between first and last snapshot.",
|
|
90
153
|
inputSchema: citationTrendInputSchema,
|
|
154
|
+
outputSchema: citationTrendOutputShape,
|
|
155
|
+
annotations: {
|
|
156
|
+
title: "Report citation trend over time",
|
|
157
|
+
readOnlyHint: true,
|
|
158
|
+
destructiveHint: false,
|
|
159
|
+
idempotentHint: true,
|
|
160
|
+
openWorldHint: false,
|
|
161
|
+
},
|
|
91
162
|
}, (args) => wrapHandler(() => citationTrend(args)));
|
|
92
163
|
server.registerTool("compare_domains", {
|
|
93
164
|
description: "Run predict_citation on 2-10 URLs and return a side-by-side signal table plus a list of signals where the URLs diverge. Use to compare your URL to top-cited competitors for the same query.",
|
|
94
165
|
inputSchema: compareDomainsInputSchema,
|
|
166
|
+
outputSchema: compareDomainsOutputShape,
|
|
167
|
+
annotations: {
|
|
168
|
+
title: "Compare citation signals across URLs",
|
|
169
|
+
readOnlyHint: true,
|
|
170
|
+
destructiveHint: false,
|
|
171
|
+
idempotentHint: true,
|
|
172
|
+
openWorldHint: true,
|
|
173
|
+
},
|
|
95
174
|
}, (args) => wrapHandler(() => compareDomains(args)));
|
|
96
175
|
server.registerTool("wikipedia_mentions", {
|
|
97
176
|
description: "List Wikipedia articles that reference the given domain. Wikipedia citation is the highest-lift signal for LLM training corpora. Zero keys required.",
|
|
98
177
|
inputSchema: wikipediaMentionsInputSchema,
|
|
178
|
+
outputSchema: wikipediaMentionsOutputShape,
|
|
179
|
+
annotations: {
|
|
180
|
+
title: "Find Wikipedia articles citing a domain",
|
|
181
|
+
readOnlyHint: true,
|
|
182
|
+
destructiveHint: false,
|
|
183
|
+
idempotentHint: true,
|
|
184
|
+
openWorldHint: true,
|
|
185
|
+
},
|
|
99
186
|
}, (args) => wrapHandler(() => wikipediaMentions(args)));
|
|
100
187
|
server.registerTool("audit_sitemap", {
|
|
101
188
|
description: "Fetch a sitemap.xml (or sitemap index) and run predict_citation on every URL. Returns results sorted worst-score-first. Surfaces systemic issues across a whole site in one pass. Zero engine keys needed.",
|
|
102
189
|
inputSchema: auditSitemapInputSchema,
|
|
190
|
+
outputSchema: auditSitemapOutputShape,
|
|
191
|
+
annotations: {
|
|
192
|
+
title: "Audit all URLs in a sitemap",
|
|
193
|
+
readOnlyHint: true,
|
|
194
|
+
destructiveHint: false,
|
|
195
|
+
idempotentHint: true,
|
|
196
|
+
openWorldHint: true,
|
|
197
|
+
},
|
|
103
198
|
}, (args) => wrapHandler(() => auditSitemap(args)));
|
|
104
199
|
server.registerTool("compete_for_query", {
|
|
105
200
|
description: "End-to-end competitive snapshot for a single query. Calls check_citations to get the cited URLs, then runs compare_domains on your_url vs the top cited competitors. Returns your score, the average competitor score, and the gap.",
|
|
106
201
|
inputSchema: competeForQueryInputSchema,
|
|
202
|
+
outputSchema: competeForQueryOutputShape,
|
|
203
|
+
annotations: {
|
|
204
|
+
title: "Competitive citation snapshot for a query",
|
|
205
|
+
readOnlyHint: true,
|
|
206
|
+
destructiveHint: false,
|
|
207
|
+
idempotentHint: true,
|
|
208
|
+
openWorldHint: true,
|
|
209
|
+
},
|
|
107
210
|
}, (args) => wrapHandler(() => competeForQuery(args)));
|
|
108
211
|
server.registerTool("citation_freshness_score", {
|
|
109
212
|
description: "Score how recent the pages cited for a query are. Calls check_citations, then collects dateModified for each cited URL, returns a 0-100 recency_score (halflife=365d) plus per-URL freshness bucket (fresh/current/stale/ancient/unknown). Surfaces queries where AI cites old content - opportunity to ship fresher.",
|
|
110
213
|
inputSchema: citationFreshnessScoreInputSchema,
|
|
214
|
+
outputSchema: citationFreshnessScoreOutputShape,
|
|
215
|
+
annotations: {
|
|
216
|
+
title: "Score freshness of AI-cited pages",
|
|
217
|
+
readOnlyHint: true,
|
|
218
|
+
destructiveHint: false,
|
|
219
|
+
idempotentHint: true,
|
|
220
|
+
openWorldHint: true,
|
|
221
|
+
},
|
|
111
222
|
}, (args) => wrapHandler(() => citationFreshnessScore(args)));
|
|
112
223
|
server.registerTool("cited_for_diff", {
|
|
113
224
|
description: "Diff cited_for between two time windows for a domain. Returns queries gained (cited now, not before baseline_until) and queries lost (cited before, not since current_since). Cache-only, no API spend. Use to track citation drift over time after publishing or migrating content.",
|
|
114
225
|
inputSchema: citedForDiffInputSchema,
|
|
226
|
+
outputSchema: citedForDiffOutputShape,
|
|
227
|
+
annotations: {
|
|
228
|
+
title: "Diff citation changes between time windows",
|
|
229
|
+
readOnlyHint: true,
|
|
230
|
+
destructiveHint: false,
|
|
231
|
+
idempotentHint: true,
|
|
232
|
+
openWorldHint: false,
|
|
233
|
+
},
|
|
115
234
|
}, (args) => wrapHandler(() => citedForDiff(args)));
|
|
116
235
|
server.registerTool("gsc_citation_gap", {
|
|
117
236
|
description: "Join Google Search Console performance with am_i_cited per query. Surfaces queries where the domain ranks well in Google but is not cited in AI - the closest editorial wins. Requires GCP service account creds (credentials_path or GOOGLE_APPLICATION_CREDENTIALS env).",
|
|
118
237
|
inputSchema: gscCitationGapInputSchema,
|
|
238
|
+
outputSchema: gscCitationGapOutputShape,
|
|
239
|
+
annotations: {
|
|
240
|
+
title: "Find GSC queries not cited by AI",
|
|
241
|
+
readOnlyHint: true,
|
|
242
|
+
destructiveHint: false,
|
|
243
|
+
idempotentHint: true,
|
|
244
|
+
openWorldHint: true,
|
|
245
|
+
},
|
|
119
246
|
}, (args) => wrapHandler(() => gscCitationGap(args)));
|
|
120
247
|
server.registerTool("schema_audit", {
|
|
121
248
|
description: "Deep schema.org validation for a URL. Parses every JSON-LD block and microdata node, checks required fields per @type (Article needs headline+author+datePublished, FAQPage needs mainEntity, HowTo needs step, etc.), and flags missing fields and malformed JSON-LD. Returns issues list and a valid/invalid verdict. Use to fix structured-data bugs that predict_citation flags but can't explain.",
|
|
122
249
|
inputSchema: schemaAuditInputSchema,
|
|
250
|
+
outputSchema: schemaAuditOutputShape,
|
|
251
|
+
annotations: {
|
|
252
|
+
title: "Audit schema.org structured data",
|
|
253
|
+
readOnlyHint: true,
|
|
254
|
+
destructiveHint: false,
|
|
255
|
+
idempotentHint: true,
|
|
256
|
+
openWorldHint: true,
|
|
257
|
+
},
|
|
123
258
|
}, (args) => wrapHandler(() => schemaAudit(args)));
|
|
124
259
|
server.registerTool("llms_txt_generator", {
|
|
125
260
|
description: "Generate an llms.txt file (https://llmstxt.org spec) from a sitemap. Parses sitemap.xml + nested indexes, groups URLs by top-level path, and emits a Markdown document with H1+description+sectioned link lists. Set fetch_titles=true to pull <title> per URL (slower, richer output).",
|
|
126
261
|
inputSchema: llmsTxtGeneratorInputSchema,
|
|
262
|
+
outputSchema: llmsTxtGeneratorOutputShape,
|
|
263
|
+
annotations: {
|
|
264
|
+
title: "Generate llms.txt from sitemap",
|
|
265
|
+
readOnlyHint: true,
|
|
266
|
+
destructiveHint: false,
|
|
267
|
+
idempotentHint: true,
|
|
268
|
+
openWorldHint: true,
|
|
269
|
+
},
|
|
127
270
|
}, (args) => wrapHandler(() => llmsTxtGenerator(args)));
|
|
128
271
|
server.registerTool("answer_box_position", {
|
|
129
272
|
description: "Locate where each cited URL appears in the AI's raw answer text. Calls check_citations, finds the first mention of each citation's URL (or hostname) in raw_answer, and bins by char position into early/middle/late thirds. Surfaces whether your URL is cited up-front or buried near the end. Returns 'unknown' for engines without raw_answer (Bing, Brave).",
|
|
130
273
|
inputSchema: answerBoxPositionInputSchema,
|
|
274
|
+
outputSchema: answerBoxPositionOutputShape,
|
|
275
|
+
annotations: {
|
|
276
|
+
title: "Locate citation positions in AI answer",
|
|
277
|
+
readOnlyHint: true,
|
|
278
|
+
destructiveHint: false,
|
|
279
|
+
idempotentHint: true,
|
|
280
|
+
openWorldHint: true,
|
|
281
|
+
},
|
|
131
282
|
}, (args) => wrapHandler(() => answerBoxPosition(args)));
|
|
132
283
|
server.registerTool("citation_provenance", {
|
|
133
284
|
description: "Fan a query out across multiple AI engines and report per-URL cross-engine consensus. Returns each unique cited URL with the list of engines that cited it, plus a consensus_urls list (URLs cited by ALL engines). High engine_count = strong cross-engine citation signal; engine_count=1 = engine-specific.",
|
|
134
285
|
inputSchema: citationProvenanceInputSchema,
|
|
286
|
+
outputSchema: citationProvenanceOutputShape,
|
|
287
|
+
annotations: {
|
|
288
|
+
title: "Cross-engine citation provenance",
|
|
289
|
+
readOnlyHint: true,
|
|
290
|
+
destructiveHint: false,
|
|
291
|
+
idempotentHint: true,
|
|
292
|
+
openWorldHint: true,
|
|
293
|
+
},
|
|
135
294
|
}, (args) => wrapHandler(() => citationProvenance(args)));
|
|
136
295
|
server.registerTool("citation_evidence", {
|
|
137
296
|
description: "Extract the cited snippet from the AI engine's raw answer for each citation. Calls check_citations, then for each returned URL finds the first mention in raw_answer and returns a context window plus the nearest quoted span or containing sentence. Use to see *why* an engine cited a URL, not just *that* it did. Returns 'not found' for engines without raw_answer (Bing, Brave).",
|
|
138
297
|
inputSchema: citationEvidenceInputSchema,
|
|
298
|
+
outputSchema: citationEvidenceOutputShape,
|
|
299
|
+
annotations: {
|
|
300
|
+
title: "Extract citation evidence from AI answer",
|
|
301
|
+
readOnlyHint: true,
|
|
302
|
+
destructiveHint: false,
|
|
303
|
+
idempotentHint: true,
|
|
304
|
+
openWorldHint: true,
|
|
305
|
+
},
|
|
139
306
|
}, (args) => wrapHandler(() => citationEvidence(args)));
|
|
140
307
|
server.registerTool("crawler_access_audit", {
|
|
141
308
|
description: "Verify that major AI crawlers (GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, CCBot, Google-Extended, Applebot-Extended, Bytespider, Meta-ExternalAgent, plus real-time fetch UAs) can fetch a URL. Parses robots.txt and does a live GET with each bot's User-Agent. Surfaces robots.txt blocks AND UA-based gating that breaks AI citation.",
|
|
142
309
|
inputSchema: crawlerAccessAuditInputSchema,
|
|
310
|
+
outputSchema: crawlerAccessAuditOutputShape,
|
|
311
|
+
annotations: {
|
|
312
|
+
title: "Audit AI crawler access to a URL",
|
|
313
|
+
readOnlyHint: true,
|
|
314
|
+
destructiveHint: false,
|
|
315
|
+
idempotentHint: true,
|
|
316
|
+
openWorldHint: true,
|
|
317
|
+
},
|
|
143
318
|
}, (args) => wrapHandler(() => crawlerAccessAudit(args)));
|
|
144
319
|
server.registerTool("sitemap_citation_map", {
|
|
145
320
|
description: "Cross-reference a sitemap with the citation cache. For each sitemap URL, reports whether it appears in cached citations (and how many queries/engines cited it). Inverse of audit_sitemap: not 'how citable is each URL', but 'has each URL actually been cited yet'. Cache must be primed via check_citations or run_panel first.",
|
|
146
321
|
inputSchema: sitemapCitationMapInputSchema,
|
|
322
|
+
outputSchema: sitemapCitationMapOutputShape,
|
|
323
|
+
annotations: {
|
|
324
|
+
title: "Map sitemap URLs against citation cache",
|
|
325
|
+
readOnlyHint: true,
|
|
326
|
+
destructiveHint: false,
|
|
327
|
+
idempotentHint: true,
|
|
328
|
+
openWorldHint: false,
|
|
329
|
+
},
|
|
147
330
|
}, (args) => wrapHandler(() => sitemapCitationMap(args)));
|
|
148
331
|
server.registerTool("canonical_competitor_set", {
|
|
149
332
|
description: "Fan a query across engines and aggregate citations by registered domain (not URL). Returns top competitor domains ranked by cross-engine consensus, with per-engine breakdown and top URLs per domain. Use to identify the canonical competitor set for a query - the domains every engine treats as authoritative.",
|
|
150
333
|
inputSchema: canonicalCompetitorSetInputSchema,
|
|
334
|
+
outputSchema: canonicalCompetitorSetOutputShape,
|
|
335
|
+
annotations: {
|
|
336
|
+
title: "Identify canonical competitor domains for a query",
|
|
337
|
+
readOnlyHint: true,
|
|
338
|
+
destructiveHint: false,
|
|
339
|
+
idempotentHint: true,
|
|
340
|
+
openWorldHint: true,
|
|
341
|
+
},
|
|
151
342
|
}, (args) => wrapHandler(() => canonicalCompetitorSet(args)));
|
|
152
343
|
server.registerTool("structured_data_repair", {
|
|
153
344
|
description: "Suggest missing JSON-LD additions for a URL. Fetches the page, detects existing schema types, and returns ready-to-paste templates for types that are missing but signalled by page content (BlogPosting from og:type=article or bylines, FAQPage from Q&A pairs, HowTo from numbered steps, BreadcrumbList from nested paths, Organization on homepages). Templates are pre-filled from page metadata where possible; fields marked FILL: require manual completion.",
|
|
154
345
|
inputSchema: structuredDataRepairInputSchema,
|
|
346
|
+
outputSchema: structuredDataRepairOutputShape,
|
|
347
|
+
annotations: {
|
|
348
|
+
title: "Suggest missing JSON-LD for a URL",
|
|
349
|
+
readOnlyHint: true,
|
|
350
|
+
destructiveHint: false,
|
|
351
|
+
idempotentHint: true,
|
|
352
|
+
openWorldHint: true,
|
|
353
|
+
},
|
|
155
354
|
}, (args) => wrapHandler(() => structuredDataRepair(args)));
|
|
156
355
|
registerPrompts(server);
|
|
157
356
|
registerResources(server);
|
|
158
357
|
const transport = new StdioServerTransport();
|
|
159
358
|
await server.connect(transport);
|
|
160
359
|
log.info("server ready on stdio", {
|
|
161
|
-
version:
|
|
360
|
+
version: SERVER_VERSION,
|
|
162
361
|
log_level: log.level(),
|
|
163
362
|
tools: [
|
|
164
363
|
"check_citations",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|