@intlayer/mcp 5.5.7 → 5.5.9

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 CHANGED
@@ -41,7 +41,7 @@ yarn add @intlayer/dictionary-entry
41
41
  ## Read about Intlayer
42
42
 
43
43
  - [Intlayer Website](https://intlayer.org)
44
- - [Intlayer Documentation](https://intlayer.org/docs)
44
+ - [Intlayer Documentation](https://intlayer.org/doc)
45
45
  - [Intlayer GitHub](https://github.com/aymericzip/intlayer)
46
46
 
47
- - [Ask your questions to our smart documentation](https://intlayer.org/docs/chat)
47
+ - [Ask your questions to our smart documentation](https://intlayer.org/docchat)
@@ -23,6 +23,7 @@ __export(index_exports, {
23
23
  module.exports = __toCommonJS(index_exports);
24
24
  var import_cli = require("@intlayer/cli");
25
25
  var import_config = require("@intlayer/config");
26
+ var import_docs = require("@intlayer/docs");
26
27
  var import_mcp = require("@modelcontextprotocol/sdk/server/mcp.js");
27
28
  var import_stdio = require("@modelcontextprotocol/sdk/server/stdio.js");
28
29
  var import_fs = require("fs");
@@ -250,11 +251,22 @@ server.tool(
250
251
  }
251
252
  }
252
253
  );
253
- server.tool("test", { a: import_zod.z.number(), b: import_zod.z.number() }, async ({ a, b }) => {
254
+ server.tool("get-doc-list", {}, async ({}) => {
255
+ const docList = Object.keys((0, import_docs.getDocs)());
254
256
  return {
255
- content: [{ type: "text", text: String(a + b) }]
257
+ content: docList.map((doc) => ({ type: "text", text: doc }))
256
258
  };
257
259
  });
260
+ server.tool(
261
+ "get-doc",
262
+ { docName: import_zod.z.string(), lang: import_zod.z.nativeEnum(import_config.Locales) },
263
+ async ({ docName, lang }) => {
264
+ const doc = (0, import_docs.getDoc)(docName, "en");
265
+ return {
266
+ content: [{ type: "text", text: doc }]
267
+ };
268
+ }
269
+ );
258
270
  const main = async () => {
259
271
  const transport = new import_stdio.StdioServerTransport();
260
272
  await server.connect(transport);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import { build, fill, pull, push } from '@intlayer/cli';\nimport { isESModule, Locales, type LogConfig } from '@intlayer/config';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport { readFileSync } from 'fs';\nimport { dirname as pathDirname, resolve } from 'path';\nimport { fileURLToPath } from 'url';\nimport { z } from 'zod';\n\nexport const dirname = isESModule\n ? pathDirname(fileURLToPath(import.meta.url))\n : __dirname;\n\nconst packageJson = JSON.parse(\n readFileSync(resolve(dirname, '../../package.json'), 'utf8')\n);\n\nconst buildToolSchema = {\n watch: z.boolean().optional().describe('Watch for changes'),\n baseDir: z.string().optional().describe('Base directory'),\n env: z.string().optional().describe('Environment'),\n envFile: z.string().optional().describe('Environment file'),\n verbose: z.boolean().optional().describe('Verbose output'),\n prefix: z.string().optional().describe('Log prefix'),\n};\n\ntype BuildToolProps = z.infer<z.ZodObject<typeof buildToolSchema>>;\n\nconst fillToolSchema = {\n sourceLocale: z.nativeEnum(Locales).optional().describe('Source locale'),\n outputLocales: z\n .union([z.nativeEnum(Locales), z.array(z.nativeEnum(Locales))])\n .optional()\n .describe('Output locales'),\n file: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('File path'),\n mode: z.enum(['complete', 'review']).optional().describe('Fill mode'),\n keys: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('Keys to include'),\n excludedKeys: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('Keys to exclude'),\n pathFilter: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('Path filter'),\n gitOptions: z\n .object({\n gitDiff: z.boolean().optional(),\n gitDiffBase: z.string().optional(),\n gitDiffCurrent: z.string().optional(),\n uncommitted: z.boolean().optional(),\n unpushed: z.boolean().optional(),\n untracked: z.boolean().optional(),\n })\n .optional()\n .describe('Git options'),\n aiOptions: z\n .object({\n provider: z.string().optional(),\n temperature: z.number().optional(),\n model: z.string().optional(),\n apiKey: z.string().optional(),\n customPrompt: z.string().optional(),\n applicationContext: z.string().optional(),\n })\n .optional()\n .describe('AI options'),\n};\n\ntype FillToolProps = z.infer<z.ZodObject<typeof fillToolSchema>>;\n\nconst pushToolSchema = {\n deleteLocaleDictionary: z\n .boolean()\n .optional()\n .describe('Delete local dictionary after push'),\n keepLocaleDictionary: z\n .boolean()\n .optional()\n .describe('Keep local dictionary after push'),\n dictionaries: z\n .array(z.string())\n .optional()\n .describe('List of dictionaries to push'),\n gitOptions: z\n .object({\n gitDiff: z.boolean().optional(),\n gitDiffBase: z.string().optional(),\n gitDiffCurrent: z.string().optional(),\n uncommitted: z.boolean().optional(),\n unpushed: z.boolean().optional(),\n untracked: z.boolean().optional(),\n })\n .optional()\n .describe('Git options'),\n};\n\ntype PushToolProps = z.infer<z.ZodObject<typeof pushToolSchema>>;\n\nconst pullToolSchema = {\n dictionaries: z\n .array(z.string())\n .optional()\n .describe('List of dictionaries to pull'),\n newDictionariesPath: z\n .string()\n .optional()\n .describe('Path to save new dictionaries'),\n};\n\ntype PullToolProps = z.infer<z.ZodObject<typeof pullToolSchema>>;\n\nconst server = new McpServer({\n name: 'intlayer',\n version: packageJson.version,\n capabilities: {\n resources: {},\n },\n});\n\nserver.tool(\n 'intlayer-build',\n {\n description: 'Build the dictionaries',\n ...buildToolSchema,\n },\n async ({ watch, baseDir, env, envFile, verbose, prefix }: BuildToolProps) => {\n try {\n const log: Partial<LogConfig> = {};\n if (verbose) {\n log.mode = 'verbose';\n }\n if (prefix) {\n log.prefix = prefix;\n }\n\n await build({\n watch,\n configOptions: {\n baseDir,\n env,\n envFile,\n override: {\n log,\n },\n },\n });\n\n return {\n content: [\n {\n type: 'text',\n text: 'Build successful.',\n },\n ],\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'An unknown error occurred';\n return {\n content: [\n {\n type: 'text',\n text: `Build failed: ${errorMessage}`,\n },\n ],\n };\n }\n }\n);\n\nserver.tool(\n 'intlayer-fill',\n {\n description: 'Fill the dictionaries with missing translations',\n ...fillToolSchema,\n },\n async (props: FillToolProps) => {\n try {\n const { gitOptions, ...rest } = props;\n const fillOptions: any = { ...rest, gitOptions: undefined };\n\n if (gitOptions) {\n const { gitDiff, uncommitted, unpushed, untracked, ...restGit } =\n gitOptions;\n const mode = [];\n if (gitDiff) mode.push('gitDiff');\n if (uncommitted) mode.push('uncommitted');\n if (unpushed) mode.push('unpushed');\n if (untracked) mode.push('untracked');\n\n fillOptions.gitOptions = { ...restGit, mode };\n }\n\n await fill(fillOptions);\n\n return {\n content: [\n {\n type: 'text',\n text: 'Fill successful.',\n },\n ],\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'An unknown error occurred';\n return {\n content: [\n {\n type: 'text',\n text: `Fill failed: ${errorMessage}`,\n },\n ],\n };\n }\n }\n);\n\nserver.tool(\n 'intlayer-push',\n {\n description: 'Push dictionaries to the server',\n ...pushToolSchema,\n },\n async (props: PushToolProps) => {\n try {\n const { gitOptions, ...rest } = props;\n const pushOptions: any = { ...rest, gitOptions: undefined };\n\n if (gitOptions) {\n const { gitDiff, uncommitted, unpushed, untracked, ...restGit } =\n gitOptions;\n const mode = [];\n if (gitDiff) mode.push('gitDiff');\n if (uncommitted) mode.push('uncommitted');\n if (unpushed) mode.push('unpushed');\n if (untracked) mode.push('untracked');\n\n pushOptions.gitOptions = { ...restGit, mode };\n }\n\n await push(pushOptions);\n\n return {\n content: [\n {\n type: 'text',\n text: 'Push successful.',\n },\n ],\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'An unknown error occurred';\n return {\n content: [\n {\n type: 'text',\n text: `Push failed: ${errorMessage}`,\n },\n ],\n };\n }\n }\n);\n\nserver.tool(\n 'intlayer-pull',\n {\n description: 'Pull dictionaries from the server',\n ...pullToolSchema,\n },\n async (props: PullToolProps) => {\n try {\n await pull(props);\n\n return {\n content: [\n {\n type: 'text',\n text: 'Pull successful.',\n },\n ],\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'An unknown error occurred';\n return {\n content: [\n {\n type: 'text',\n text: `Pull failed: ${errorMessage}`,\n },\n ],\n };\n }\n }\n);\n\nserver.tool('test', { a: z.number(), b: z.number() }, async ({ a, b }) => {\n return {\n content: [{ type: 'text', text: String(a + b) }],\n };\n});\n\nconst main = async () => {\n const transport = new StdioServerTransport();\n await server.connect(transport);\n console.error('Intlayer MCP Server running on stdio');\n};\n\nmain().catch((error) => {\n console.error('Fatal error in main():', error);\n process.exit(1);\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAwC;AACxC,oBAAoD;AACpD,iBAA0B;AAC1B,mBAAqC;AACrC,gBAA6B;AAC7B,kBAAgD;AAChD,iBAA8B;AAC9B,iBAAkB;AAPlB;AASO,MAAM,UAAU,+BACnB,YAAAA,aAAY,0BAAc,YAAY,GAAG,CAAC,IAC1C;AAEJ,MAAM,cAAc,KAAK;AAAA,MACvB,4BAAa,qBAAQ,SAAS,oBAAoB,GAAG,MAAM;AAC7D;AAEA,MAAM,kBAAkB;AAAA,EACtB,OAAO,aAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA,EAC1D,SAAS,aAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gBAAgB;AAAA,EACxD,KAAK,aAAE,OAAO,EAAE,SAAS,EAAE,SAAS,aAAa;AAAA,EACjD,SAAS,aAAE,OAAO,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAAA,EAC1D,SAAS,aAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,gBAAgB;AAAA,EACzD,QAAQ,aAAE,OAAO,EAAE,SAAS,EAAE,SAAS,YAAY;AACrD;AAIA,MAAM,iBAAiB;AAAA,EACrB,cAAc,aAAE,WAAW,qBAAO,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA,EACvE,eAAe,aACZ,MAAM,CAAC,aAAE,WAAW,qBAAO,GAAG,aAAE,MAAM,aAAE,WAAW,qBAAO,CAAC,CAAC,CAAC,EAC7D,SAAS,EACT,SAAS,gBAAgB;AAAA,EAC5B,MAAM,aACH,MAAM,CAAC,aAAE,OAAO,GAAG,aAAE,MAAM,aAAE,OAAO,CAAC,CAAC,CAAC,EACvC,SAAS,EACT,SAAS,WAAW;AAAA,EACvB,MAAM,aAAE,KAAK,CAAC,YAAY,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,WAAW;AAAA,EACpE,MAAM,aACH,MAAM,CAAC,aAAE,OAAO,GAAG,aAAE,MAAM,aAAE,OAAO,CAAC,CAAC,CAAC,EACvC,SAAS,EACT,SAAS,iBAAiB;AAAA,EAC7B,cAAc,aACX,MAAM,CAAC,aAAE,OAAO,GAAG,aAAE,MAAM,aAAE,OAAO,CAAC,CAAC,CAAC,EACvC,SAAS,EACT,SAAS,iBAAiB;AAAA,EAC7B,YAAY,aACT,MAAM,CAAC,aAAE,OAAO,GAAG,aAAE,MAAM,aAAE,OAAO,CAAC,CAAC,CAAC,EACvC,SAAS,EACT,SAAS,aAAa;AAAA,EACzB,YAAY,aACT,OAAO;AAAA,IACN,SAAS,aAAE,QAAQ,EAAE,SAAS;AAAA,IAC9B,aAAa,aAAE,OAAO,EAAE,SAAS;AAAA,IACjC,gBAAgB,aAAE,OAAO,EAAE,SAAS;AAAA,IACpC,aAAa,aAAE,QAAQ,EAAE,SAAS;AAAA,IAClC,UAAU,aAAE,QAAQ,EAAE,SAAS;AAAA,IAC/B,WAAW,aAAE,QAAQ,EAAE,SAAS;AAAA,EAClC,CAAC,EACA,SAAS,EACT,SAAS,aAAa;AAAA,EACzB,WAAW,aACR,OAAO;AAAA,IACN,UAAU,aAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,aAAa,aAAE,OAAO,EAAE,SAAS;AAAA,IACjC,OAAO,aAAE,OAAO,EAAE,SAAS;AAAA,IAC3B,QAAQ,aAAE,OAAO,EAAE,SAAS;AAAA,IAC5B,cAAc,aAAE,OAAO,EAAE,SAAS;AAAA,IAClC,oBAAoB,aAAE,OAAO,EAAE,SAAS;AAAA,EAC1C,CAAC,EACA,SAAS,EACT,SAAS,YAAY;AAC1B;AAIA,MAAM,iBAAiB;AAAA,EACrB,wBAAwB,aACrB,QAAQ,EACR,SAAS,EACT,SAAS,oCAAoC;AAAA,EAChD,sBAAsB,aACnB,QAAQ,EACR,SAAS,EACT,SAAS,kCAAkC;AAAA,EAC9C,cAAc,aACX,MAAM,aAAE,OAAO,CAAC,EAChB,SAAS,EACT,SAAS,8BAA8B;AAAA,EAC1C,YAAY,aACT,OAAO;AAAA,IACN,SAAS,aAAE,QAAQ,EAAE,SAAS;AAAA,IAC9B,aAAa,aAAE,OAAO,EAAE,SAAS;AAAA,IACjC,gBAAgB,aAAE,OAAO,EAAE,SAAS;AAAA,IACpC,aAAa,aAAE,QAAQ,EAAE,SAAS;AAAA,IAClC,UAAU,aAAE,QAAQ,EAAE,SAAS;AAAA,IAC/B,WAAW,aAAE,QAAQ,EAAE,SAAS;AAAA,EAClC,CAAC,EACA,SAAS,EACT,SAAS,aAAa;AAC3B;AAIA,MAAM,iBAAiB;AAAA,EACrB,cAAc,aACX,MAAM,aAAE,OAAO,CAAC,EAChB,SAAS,EACT,SAAS,8BAA8B;AAAA,EAC1C,qBAAqB,aAClB,OAAO,EACP,SAAS,EACT,SAAS,+BAA+B;AAC7C;AAIA,MAAM,SAAS,IAAI,qBAAU;AAAA,EAC3B,MAAM;AAAA,EACN,SAAS,YAAY;AAAA,EACrB,cAAc;AAAA,IACZ,WAAW,CAAC;AAAA,EACd;AACF,CAAC;AAED,OAAO;AAAA,EACL;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,GAAG;AAAA,EACL;AAAA,EACA,OAAO,EAAE,OAAO,SAAS,KAAK,SAAS,SAAS,OAAO,MAAsB;AAC3E,QAAI;AACF,YAAM,MAA0B,CAAC;AACjC,UAAI,SAAS;AACX,YAAI,OAAO;AAAA,MACb;AACA,UAAI,QAAQ;AACV,YAAI,SAAS;AAAA,MACf;AAEA,gBAAM,kBAAM;AAAA,QACV;AAAA,QACA,eAAe;AAAA,UACb;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAU;AAAA,YACR;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAC;AAED,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,YAAM,eACJ,iBAAiB,QAAQ,MAAM,UAAU;AAC3C,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM,iBAAiB,YAAY;AAAA,UACrC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,OAAO;AAAA,EACL;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,GAAG;AAAA,EACL;AAAA,EACA,OAAO,UAAyB;AAC9B,QAAI;AACF,YAAM,EAAE,YAAY,GAAG,KAAK,IAAI;AAChC,YAAM,cAAmB,EAAE,GAAG,MAAM,YAAY,OAAU;AAE1D,UAAI,YAAY;AACd,cAAM,EAAE,SAAS,aAAa,UAAU,WAAW,GAAG,QAAQ,IAC5D;AACF,cAAM,OAAO,CAAC;AACd,YAAI,QAAS,MAAK,KAAK,SAAS;AAChC,YAAI,YAAa,MAAK,KAAK,aAAa;AACxC,YAAI,SAAU,MAAK,KAAK,UAAU;AAClC,YAAI,UAAW,MAAK,KAAK,WAAW;AAEpC,oBAAY,aAAa,EAAE,GAAG,SAAS,KAAK;AAAA,MAC9C;AAEA,gBAAM,iBAAK,WAAW;AAEtB,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,YAAM,eACJ,iBAAiB,QAAQ,MAAM,UAAU;AAC3C,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM,gBAAgB,YAAY;AAAA,UACpC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,OAAO;AAAA,EACL;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,GAAG;AAAA,EACL;AAAA,EACA,OAAO,UAAyB;AAC9B,QAAI;AACF,YAAM,EAAE,YAAY,GAAG,KAAK,IAAI;AAChC,YAAM,cAAmB,EAAE,GAAG,MAAM,YAAY,OAAU;AAE1D,UAAI,YAAY;AACd,cAAM,EAAE,SAAS,aAAa,UAAU,WAAW,GAAG,QAAQ,IAC5D;AACF,cAAM,OAAO,CAAC;AACd,YAAI,QAAS,MAAK,KAAK,SAAS;AAChC,YAAI,YAAa,MAAK,KAAK,aAAa;AACxC,YAAI,SAAU,MAAK,KAAK,UAAU;AAClC,YAAI,UAAW,MAAK,KAAK,WAAW;AAEpC,oBAAY,aAAa,EAAE,GAAG,SAAS,KAAK;AAAA,MAC9C;AAEA,gBAAM,iBAAK,WAAW;AAEtB,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,YAAM,eACJ,iBAAiB,QAAQ,MAAM,UAAU;AAC3C,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM,gBAAgB,YAAY;AAAA,UACpC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,OAAO;AAAA,EACL;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,GAAG;AAAA,EACL;AAAA,EACA,OAAO,UAAyB;AAC9B,QAAI;AACF,gBAAM,iBAAK,KAAK;AAEhB,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,YAAM,eACJ,iBAAiB,QAAQ,MAAM,UAAU;AAC3C,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM,gBAAgB,YAAY;AAAA,UACpC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,OAAO,KAAK,QAAQ,EAAE,GAAG,aAAE,OAAO,GAAG,GAAG,aAAE,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM;AACxE,SAAO;AAAA,IACL,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,OAAO,IAAI,CAAC,EAAE,CAAC;AAAA,EACjD;AACF,CAAC;AAED,MAAM,OAAO,YAAY;AACvB,QAAM,YAAY,IAAI,kCAAqB;AAC3C,QAAM,OAAO,QAAQ,SAAS;AAC9B,UAAQ,MAAM,sCAAsC;AACtD;AAEA,KAAK,EAAE,MAAM,CAAC,UAAU;AACtB,UAAQ,MAAM,0BAA0B,KAAK;AAC7C,UAAQ,KAAK,CAAC;AAChB,CAAC;","names":["pathDirname"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import { build, fill, pull, push } from '@intlayer/cli';\nimport { isESModule, Locales, type LogConfig } from '@intlayer/config';\nimport { getDoc, getDocs } from '@intlayer/docs';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport { readFileSync } from 'fs';\nimport { dirname as pathDirname, resolve } from 'path';\nimport { fileURLToPath } from 'url';\nimport { z } from 'zod';\n\nexport const dirname = isESModule\n ? pathDirname(fileURLToPath(import.meta.url))\n : __dirname;\n\nconst packageJson = JSON.parse(\n readFileSync(resolve(dirname, '../../package.json'), 'utf8')\n);\n\nconst buildToolSchema = {\n watch: z.boolean().optional().describe('Watch for changes'),\n baseDir: z.string().optional().describe('Base directory'),\n env: z.string().optional().describe('Environment'),\n envFile: z.string().optional().describe('Environment file'),\n verbose: z.boolean().optional().describe('Verbose output'),\n prefix: z.string().optional().describe('Log prefix'),\n};\n\ntype BuildToolProps = z.infer<z.ZodObject<typeof buildToolSchema>>;\n\nconst fillToolSchema = {\n sourceLocale: z.nativeEnum(Locales).optional().describe('Source locale'),\n outputLocales: z\n .union([z.nativeEnum(Locales), z.array(z.nativeEnum(Locales))])\n .optional()\n .describe('Output locales'),\n file: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('File path'),\n mode: z.enum(['complete', 'review']).optional().describe('Fill mode'),\n keys: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('Keys to include'),\n excludedKeys: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('Keys to exclude'),\n pathFilter: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('Path filter'),\n gitOptions: z\n .object({\n gitDiff: z.boolean().optional(),\n gitDiffBase: z.string().optional(),\n gitDiffCurrent: z.string().optional(),\n uncommitted: z.boolean().optional(),\n unpushed: z.boolean().optional(),\n untracked: z.boolean().optional(),\n })\n .optional()\n .describe('Git options'),\n aiOptions: z\n .object({\n provider: z.string().optional(),\n temperature: z.number().optional(),\n model: z.string().optional(),\n apiKey: z.string().optional(),\n customPrompt: z.string().optional(),\n applicationContext: z.string().optional(),\n })\n .optional()\n .describe('AI options'),\n};\n\ntype FillToolProps = z.infer<z.ZodObject<typeof fillToolSchema>>;\n\nconst pushToolSchema = {\n deleteLocaleDictionary: z\n .boolean()\n .optional()\n .describe('Delete local dictionary after push'),\n keepLocaleDictionary: z\n .boolean()\n .optional()\n .describe('Keep local dictionary after push'),\n dictionaries: z\n .array(z.string())\n .optional()\n .describe('List of dictionaries to push'),\n gitOptions: z\n .object({\n gitDiff: z.boolean().optional(),\n gitDiffBase: z.string().optional(),\n gitDiffCurrent: z.string().optional(),\n uncommitted: z.boolean().optional(),\n unpushed: z.boolean().optional(),\n untracked: z.boolean().optional(),\n })\n .optional()\n .describe('Git options'),\n};\n\ntype PushToolProps = z.infer<z.ZodObject<typeof pushToolSchema>>;\n\nconst pullToolSchema = {\n dictionaries: z\n .array(z.string())\n .optional()\n .describe('List of dictionaries to pull'),\n newDictionariesPath: z\n .string()\n .optional()\n .describe('Path to save new dictionaries'),\n};\n\ntype PullToolProps = z.infer<z.ZodObject<typeof pullToolSchema>>;\n\nconst server = new McpServer({\n name: 'intlayer',\n version: packageJson.version,\n capabilities: {\n resources: {},\n },\n});\n\nserver.tool(\n 'intlayer-build',\n {\n description: 'Build the dictionaries',\n ...buildToolSchema,\n },\n async ({ watch, baseDir, env, envFile, verbose, prefix }: BuildToolProps) => {\n try {\n const log: Partial<LogConfig> = {};\n if (verbose) {\n log.mode = 'verbose';\n }\n if (prefix) {\n log.prefix = prefix;\n }\n\n await build({\n watch,\n configOptions: {\n baseDir,\n env,\n envFile,\n override: {\n log,\n },\n },\n });\n\n return {\n content: [\n {\n type: 'text',\n text: 'Build successful.',\n },\n ],\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'An unknown error occurred';\n return {\n content: [\n {\n type: 'text',\n text: `Build failed: ${errorMessage}`,\n },\n ],\n };\n }\n }\n);\n\nserver.tool(\n 'intlayer-fill',\n {\n description: 'Fill the dictionaries with missing translations',\n ...fillToolSchema,\n },\n async (props: FillToolProps) => {\n try {\n const { gitOptions, ...rest } = props;\n const fillOptions: any = { ...rest, gitOptions: undefined };\n\n if (gitOptions) {\n const { gitDiff, uncommitted, unpushed, untracked, ...restGit } =\n gitOptions;\n const mode = [];\n if (gitDiff) mode.push('gitDiff');\n if (uncommitted) mode.push('uncommitted');\n if (unpushed) mode.push('unpushed');\n if (untracked) mode.push('untracked');\n\n fillOptions.gitOptions = { ...restGit, mode };\n }\n\n await fill(fillOptions);\n\n return {\n content: [\n {\n type: 'text',\n text: 'Fill successful.',\n },\n ],\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'An unknown error occurred';\n return {\n content: [\n {\n type: 'text',\n text: `Fill failed: ${errorMessage}`,\n },\n ],\n };\n }\n }\n);\n\nserver.tool(\n 'intlayer-push',\n {\n description: 'Push dictionaries to the server',\n ...pushToolSchema,\n },\n async (props: PushToolProps) => {\n try {\n const { gitOptions, ...rest } = props;\n const pushOptions: any = { ...rest, gitOptions: undefined };\n\n if (gitOptions) {\n const { gitDiff, uncommitted, unpushed, untracked, ...restGit } =\n gitOptions;\n const mode = [];\n if (gitDiff) mode.push('gitDiff');\n if (uncommitted) mode.push('uncommitted');\n if (unpushed) mode.push('unpushed');\n if (untracked) mode.push('untracked');\n\n pushOptions.gitOptions = { ...restGit, mode };\n }\n\n await push(pushOptions);\n\n return {\n content: [\n {\n type: 'text',\n text: 'Push successful.',\n },\n ],\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'An unknown error occurred';\n return {\n content: [\n {\n type: 'text',\n text: `Push failed: ${errorMessage}`,\n },\n ],\n };\n }\n }\n);\n\nserver.tool(\n 'intlayer-pull',\n {\n description: 'Pull dictionaries from the server',\n ...pullToolSchema,\n },\n async (props: PullToolProps) => {\n try {\n await pull(props);\n\n return {\n content: [\n {\n type: 'text',\n text: 'Pull successful.',\n },\n ],\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'An unknown error occurred';\n return {\n content: [\n {\n type: 'text',\n text: `Pull failed: ${errorMessage}`,\n },\n ],\n };\n }\n }\n);\n\nserver.tool('get-doc-list', {}, async ({}) => {\n const docList = Object.keys(getDocs());\n return {\n content: docList.map((doc) => ({ type: 'text', text: doc })),\n };\n});\n\nserver.tool(\n 'get-doc',\n { docName: z.string(), lang: z.nativeEnum(Locales) },\n async ({ docName, lang }) => {\n const doc = getDoc(docName as any, 'en');\n return {\n content: [{ type: 'text', text: doc }],\n };\n }\n);\n\nconst main = async () => {\n const transport = new StdioServerTransport();\n await server.connect(transport);\n console.error('Intlayer MCP Server running on stdio');\n};\n\nmain().catch((error) => {\n console.error('Fatal error in main():', error);\n process.exit(1);\n});\n"],"mappings":"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","names":["pathDirname"]}
@@ -1,5 +1,6 @@
1
1
  import { build, fill, pull, push } from "@intlayer/cli";
2
2
  import { isESModule, Locales } from "@intlayer/config";
3
+ import { getDoc, getDocs } from "@intlayer/docs";
3
4
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
4
5
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
5
6
  import { readFileSync } from "fs";
@@ -226,11 +227,22 @@ server.tool(
226
227
  }
227
228
  }
228
229
  );
229
- server.tool("test", { a: z.number(), b: z.number() }, async ({ a, b }) => {
230
+ server.tool("get-doc-list", {}, async ({}) => {
231
+ const docList = Object.keys(getDocs());
230
232
  return {
231
- content: [{ type: "text", text: String(a + b) }]
233
+ content: docList.map((doc) => ({ type: "text", text: doc }))
232
234
  };
233
235
  });
236
+ server.tool(
237
+ "get-doc",
238
+ { docName: z.string(), lang: z.nativeEnum(Locales) },
239
+ async ({ docName, lang }) => {
240
+ const doc = getDoc(docName, "en");
241
+ return {
242
+ content: [{ type: "text", text: doc }]
243
+ };
244
+ }
245
+ );
234
246
  const main = async () => {
235
247
  const transport = new StdioServerTransport();
236
248
  await server.connect(transport);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import { build, fill, pull, push } from '@intlayer/cli';\nimport { isESModule, Locales, type LogConfig } from '@intlayer/config';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport { readFileSync } from 'fs';\nimport { dirname as pathDirname, resolve } from 'path';\nimport { fileURLToPath } from 'url';\nimport { z } from 'zod';\n\nexport const dirname = isESModule\n ? pathDirname(fileURLToPath(import.meta.url))\n : __dirname;\n\nconst packageJson = JSON.parse(\n readFileSync(resolve(dirname, '../../package.json'), 'utf8')\n);\n\nconst buildToolSchema = {\n watch: z.boolean().optional().describe('Watch for changes'),\n baseDir: z.string().optional().describe('Base directory'),\n env: z.string().optional().describe('Environment'),\n envFile: z.string().optional().describe('Environment file'),\n verbose: z.boolean().optional().describe('Verbose output'),\n prefix: z.string().optional().describe('Log prefix'),\n};\n\ntype BuildToolProps = z.infer<z.ZodObject<typeof buildToolSchema>>;\n\nconst fillToolSchema = {\n sourceLocale: z.nativeEnum(Locales).optional().describe('Source locale'),\n outputLocales: z\n .union([z.nativeEnum(Locales), z.array(z.nativeEnum(Locales))])\n .optional()\n .describe('Output locales'),\n file: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('File path'),\n mode: z.enum(['complete', 'review']).optional().describe('Fill mode'),\n keys: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('Keys to include'),\n excludedKeys: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('Keys to exclude'),\n pathFilter: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('Path filter'),\n gitOptions: z\n .object({\n gitDiff: z.boolean().optional(),\n gitDiffBase: z.string().optional(),\n gitDiffCurrent: z.string().optional(),\n uncommitted: z.boolean().optional(),\n unpushed: z.boolean().optional(),\n untracked: z.boolean().optional(),\n })\n .optional()\n .describe('Git options'),\n aiOptions: z\n .object({\n provider: z.string().optional(),\n temperature: z.number().optional(),\n model: z.string().optional(),\n apiKey: z.string().optional(),\n customPrompt: z.string().optional(),\n applicationContext: z.string().optional(),\n })\n .optional()\n .describe('AI options'),\n};\n\ntype FillToolProps = z.infer<z.ZodObject<typeof fillToolSchema>>;\n\nconst pushToolSchema = {\n deleteLocaleDictionary: z\n .boolean()\n .optional()\n .describe('Delete local dictionary after push'),\n keepLocaleDictionary: z\n .boolean()\n .optional()\n .describe('Keep local dictionary after push'),\n dictionaries: z\n .array(z.string())\n .optional()\n .describe('List of dictionaries to push'),\n gitOptions: z\n .object({\n gitDiff: z.boolean().optional(),\n gitDiffBase: z.string().optional(),\n gitDiffCurrent: z.string().optional(),\n uncommitted: z.boolean().optional(),\n unpushed: z.boolean().optional(),\n untracked: z.boolean().optional(),\n })\n .optional()\n .describe('Git options'),\n};\n\ntype PushToolProps = z.infer<z.ZodObject<typeof pushToolSchema>>;\n\nconst pullToolSchema = {\n dictionaries: z\n .array(z.string())\n .optional()\n .describe('List of dictionaries to pull'),\n newDictionariesPath: z\n .string()\n .optional()\n .describe('Path to save new dictionaries'),\n};\n\ntype PullToolProps = z.infer<z.ZodObject<typeof pullToolSchema>>;\n\nconst server = new McpServer({\n name: 'intlayer',\n version: packageJson.version,\n capabilities: {\n resources: {},\n },\n});\n\nserver.tool(\n 'intlayer-build',\n {\n description: 'Build the dictionaries',\n ...buildToolSchema,\n },\n async ({ watch, baseDir, env, envFile, verbose, prefix }: BuildToolProps) => {\n try {\n const log: Partial<LogConfig> = {};\n if (verbose) {\n log.mode = 'verbose';\n }\n if (prefix) {\n log.prefix = prefix;\n }\n\n await build({\n watch,\n configOptions: {\n baseDir,\n env,\n envFile,\n override: {\n log,\n },\n },\n });\n\n return {\n content: [\n {\n type: 'text',\n text: 'Build successful.',\n },\n ],\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'An unknown error occurred';\n return {\n content: [\n {\n type: 'text',\n text: `Build failed: ${errorMessage}`,\n },\n ],\n };\n }\n }\n);\n\nserver.tool(\n 'intlayer-fill',\n {\n description: 'Fill the dictionaries with missing translations',\n ...fillToolSchema,\n },\n async (props: FillToolProps) => {\n try {\n const { gitOptions, ...rest } = props;\n const fillOptions: any = { ...rest, gitOptions: undefined };\n\n if (gitOptions) {\n const { gitDiff, uncommitted, unpushed, untracked, ...restGit } =\n gitOptions;\n const mode = [];\n if (gitDiff) mode.push('gitDiff');\n if (uncommitted) mode.push('uncommitted');\n if (unpushed) mode.push('unpushed');\n if (untracked) mode.push('untracked');\n\n fillOptions.gitOptions = { ...restGit, mode };\n }\n\n await fill(fillOptions);\n\n return {\n content: [\n {\n type: 'text',\n text: 'Fill successful.',\n },\n ],\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'An unknown error occurred';\n return {\n content: [\n {\n type: 'text',\n text: `Fill failed: ${errorMessage}`,\n },\n ],\n };\n }\n }\n);\n\nserver.tool(\n 'intlayer-push',\n {\n description: 'Push dictionaries to the server',\n ...pushToolSchema,\n },\n async (props: PushToolProps) => {\n try {\n const { gitOptions, ...rest } = props;\n const pushOptions: any = { ...rest, gitOptions: undefined };\n\n if (gitOptions) {\n const { gitDiff, uncommitted, unpushed, untracked, ...restGit } =\n gitOptions;\n const mode = [];\n if (gitDiff) mode.push('gitDiff');\n if (uncommitted) mode.push('uncommitted');\n if (unpushed) mode.push('unpushed');\n if (untracked) mode.push('untracked');\n\n pushOptions.gitOptions = { ...restGit, mode };\n }\n\n await push(pushOptions);\n\n return {\n content: [\n {\n type: 'text',\n text: 'Push successful.',\n },\n ],\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'An unknown error occurred';\n return {\n content: [\n {\n type: 'text',\n text: `Push failed: ${errorMessage}`,\n },\n ],\n };\n }\n }\n);\n\nserver.tool(\n 'intlayer-pull',\n {\n description: 'Pull dictionaries from the server',\n ...pullToolSchema,\n },\n async (props: PullToolProps) => {\n try {\n await pull(props);\n\n return {\n content: [\n {\n type: 'text',\n text: 'Pull successful.',\n },\n ],\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'An unknown error occurred';\n return {\n content: [\n {\n type: 'text',\n text: `Pull failed: ${errorMessage}`,\n },\n ],\n };\n }\n }\n);\n\nserver.tool('test', { a: z.number(), b: z.number() }, async ({ a, b }) => {\n return {\n content: [{ type: 'text', text: String(a + b) }],\n };\n});\n\nconst main = async () => {\n const transport = new StdioServerTransport();\n await server.connect(transport);\n console.error('Intlayer MCP Server running on stdio');\n};\n\nmain().catch((error) => {\n console.error('Fatal error in main():', error);\n process.exit(1);\n});\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import { build, fill, pull, push } from '@intlayer/cli';\nimport { isESModule, Locales, type LogConfig } from '@intlayer/config';\nimport { getDoc, getDocs } from '@intlayer/docs';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport { readFileSync } from 'fs';\nimport { dirname as pathDirname, resolve } from 'path';\nimport { fileURLToPath } from 'url';\nimport { z } from 'zod';\n\nexport const dirname = isESModule\n ? pathDirname(fileURLToPath(import.meta.url))\n : __dirname;\n\nconst packageJson = JSON.parse(\n readFileSync(resolve(dirname, '../../package.json'), 'utf8')\n);\n\nconst buildToolSchema = {\n watch: z.boolean().optional().describe('Watch for changes'),\n baseDir: z.string().optional().describe('Base directory'),\n env: z.string().optional().describe('Environment'),\n envFile: z.string().optional().describe('Environment file'),\n verbose: z.boolean().optional().describe('Verbose output'),\n prefix: z.string().optional().describe('Log prefix'),\n};\n\ntype BuildToolProps = z.infer<z.ZodObject<typeof buildToolSchema>>;\n\nconst fillToolSchema = {\n sourceLocale: z.nativeEnum(Locales).optional().describe('Source locale'),\n outputLocales: z\n .union([z.nativeEnum(Locales), z.array(z.nativeEnum(Locales))])\n .optional()\n .describe('Output locales'),\n file: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('File path'),\n mode: z.enum(['complete', 'review']).optional().describe('Fill mode'),\n keys: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('Keys to include'),\n excludedKeys: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('Keys to exclude'),\n pathFilter: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('Path filter'),\n gitOptions: z\n .object({\n gitDiff: z.boolean().optional(),\n gitDiffBase: z.string().optional(),\n gitDiffCurrent: z.string().optional(),\n uncommitted: z.boolean().optional(),\n unpushed: z.boolean().optional(),\n untracked: z.boolean().optional(),\n })\n .optional()\n .describe('Git options'),\n aiOptions: z\n .object({\n provider: z.string().optional(),\n temperature: z.number().optional(),\n model: z.string().optional(),\n apiKey: z.string().optional(),\n customPrompt: z.string().optional(),\n applicationContext: z.string().optional(),\n })\n .optional()\n .describe('AI options'),\n};\n\ntype FillToolProps = z.infer<z.ZodObject<typeof fillToolSchema>>;\n\nconst pushToolSchema = {\n deleteLocaleDictionary: z\n .boolean()\n .optional()\n .describe('Delete local dictionary after push'),\n keepLocaleDictionary: z\n .boolean()\n .optional()\n .describe('Keep local dictionary after push'),\n dictionaries: z\n .array(z.string())\n .optional()\n .describe('List of dictionaries to push'),\n gitOptions: z\n .object({\n gitDiff: z.boolean().optional(),\n gitDiffBase: z.string().optional(),\n gitDiffCurrent: z.string().optional(),\n uncommitted: z.boolean().optional(),\n unpushed: z.boolean().optional(),\n untracked: z.boolean().optional(),\n })\n .optional()\n .describe('Git options'),\n};\n\ntype PushToolProps = z.infer<z.ZodObject<typeof pushToolSchema>>;\n\nconst pullToolSchema = {\n dictionaries: z\n .array(z.string())\n .optional()\n .describe('List of dictionaries to pull'),\n newDictionariesPath: z\n .string()\n .optional()\n .describe('Path to save new dictionaries'),\n};\n\ntype PullToolProps = z.infer<z.ZodObject<typeof pullToolSchema>>;\n\nconst server = new McpServer({\n name: 'intlayer',\n version: packageJson.version,\n capabilities: {\n resources: {},\n },\n});\n\nserver.tool(\n 'intlayer-build',\n {\n description: 'Build the dictionaries',\n ...buildToolSchema,\n },\n async ({ watch, baseDir, env, envFile, verbose, prefix }: BuildToolProps) => {\n try {\n const log: Partial<LogConfig> = {};\n if (verbose) {\n log.mode = 'verbose';\n }\n if (prefix) {\n log.prefix = prefix;\n }\n\n await build({\n watch,\n configOptions: {\n baseDir,\n env,\n envFile,\n override: {\n log,\n },\n },\n });\n\n return {\n content: [\n {\n type: 'text',\n text: 'Build successful.',\n },\n ],\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'An unknown error occurred';\n return {\n content: [\n {\n type: 'text',\n text: `Build failed: ${errorMessage}`,\n },\n ],\n };\n }\n }\n);\n\nserver.tool(\n 'intlayer-fill',\n {\n description: 'Fill the dictionaries with missing translations',\n ...fillToolSchema,\n },\n async (props: FillToolProps) => {\n try {\n const { gitOptions, ...rest } = props;\n const fillOptions: any = { ...rest, gitOptions: undefined };\n\n if (gitOptions) {\n const { gitDiff, uncommitted, unpushed, untracked, ...restGit } =\n gitOptions;\n const mode = [];\n if (gitDiff) mode.push('gitDiff');\n if (uncommitted) mode.push('uncommitted');\n if (unpushed) mode.push('unpushed');\n if (untracked) mode.push('untracked');\n\n fillOptions.gitOptions = { ...restGit, mode };\n }\n\n await fill(fillOptions);\n\n return {\n content: [\n {\n type: 'text',\n text: 'Fill successful.',\n },\n ],\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'An unknown error occurred';\n return {\n content: [\n {\n type: 'text',\n text: `Fill failed: ${errorMessage}`,\n },\n ],\n };\n }\n }\n);\n\nserver.tool(\n 'intlayer-push',\n {\n description: 'Push dictionaries to the server',\n ...pushToolSchema,\n },\n async (props: PushToolProps) => {\n try {\n const { gitOptions, ...rest } = props;\n const pushOptions: any = { ...rest, gitOptions: undefined };\n\n if (gitOptions) {\n const { gitDiff, uncommitted, unpushed, untracked, ...restGit } =\n gitOptions;\n const mode = [];\n if (gitDiff) mode.push('gitDiff');\n if (uncommitted) mode.push('uncommitted');\n if (unpushed) mode.push('unpushed');\n if (untracked) mode.push('untracked');\n\n pushOptions.gitOptions = { ...restGit, mode };\n }\n\n await push(pushOptions);\n\n return {\n content: [\n {\n type: 'text',\n text: 'Push successful.',\n },\n ],\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'An unknown error occurred';\n return {\n content: [\n {\n type: 'text',\n text: `Push failed: ${errorMessage}`,\n },\n ],\n };\n }\n }\n);\n\nserver.tool(\n 'intlayer-pull',\n {\n description: 'Pull dictionaries from the server',\n ...pullToolSchema,\n },\n async (props: PullToolProps) => {\n try {\n await pull(props);\n\n return {\n content: [\n {\n type: 'text',\n text: 'Pull successful.',\n },\n ],\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'An unknown error occurred';\n return {\n content: [\n {\n type: 'text',\n text: `Pull failed: ${errorMessage}`,\n },\n ],\n };\n }\n }\n);\n\nserver.tool('get-doc-list', {}, async ({}) => {\n const docList = Object.keys(getDocs());\n return {\n content: docList.map((doc) => ({ type: 'text', text: doc })),\n };\n});\n\nserver.tool(\n 'get-doc',\n { docName: z.string(), lang: z.nativeEnum(Locales) },\n async ({ docName, lang }) => {\n const doc = getDoc(docName as any, 'en');\n return {\n content: [{ type: 'text', text: doc }],\n };\n }\n);\n\nconst main = async () => {\n const transport = new StdioServerTransport();\n await server.connect(transport);\n console.error('Intlayer MCP Server running on stdio');\n};\n\nmain().catch((error) => {\n console.error('Fatal error in main():', error);\n process.exit(1);\n});\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,OAAO,QAEP,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,OAAO,QAEP,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/mcp",
3
- "version": "5.5.7",
3
+ "version": "5.5.9",
4
4
  "private": false,
5
5
  "description": "Intlayer MCP server. Handle MCP to help IDE to use Intlayer. It build, fill, pull, push, dictionaries",
6
6
  "keywords": [
@@ -55,8 +55,9 @@
55
55
  "dependencies": {
56
56
  "@modelcontextprotocol/sdk": "^1.9.0",
57
57
  "zod": "^3.25.56",
58
- "@intlayer/cli": "5.5.7",
59
- "@intlayer/docs": "5.5.7"
58
+ "@intlayer/cli": "5.5.9",
59
+ "@intlayer/config": "5.5.9",
60
+ "@intlayer/docs": "5.5.9"
60
61
  },
61
62
  "devDependencies": {
62
63
  "@modelcontextprotocol/inspector": "^0.14.0",
@@ -71,13 +72,13 @@
71
72
  "typescript": "^5.8.3",
72
73
  "@utils/eslint-config": "1.0.4",
73
74
  "@utils/ts-config": "1.0.4",
74
- "@utils/tsup-config": "1.0.4",
75
- "@utils/ts-config-types": "1.0.4"
75
+ "@utils/ts-config-types": "1.0.4",
76
+ "@utils/tsup-config": "1.0.4"
76
77
  },
77
78
  "peerDependencies": {
78
- "@intlayer/docs": "5.5.7",
79
- "@intlayer/cli": "5.5.7",
80
- "@intlayer/api": "5.5.7"
79
+ "@intlayer/cli": "5.5.9",
80
+ "@intlayer/config": "5.5.9",
81
+ "@intlayer/docs": "5.5.9"
81
82
  },
82
83
  "engines": {
83
84
  "node": ">=14.18"