@intlayer/mcp 5.5.12 → 5.7.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 +107 -78
- package/dist/cjs/client/client.cjs +44 -0
- package/dist/cjs/client/client.cjs.map +1 -0
- package/dist/cjs/client/sse.cjs +61 -0
- package/dist/cjs/client/sse.cjs.map +1 -0
- package/dist/cjs/server/server.cjs +56 -0
- package/dist/cjs/server/server.cjs.map +1 -0
- package/dist/cjs/server/sse.cjs +123 -0
- package/dist/cjs/server/sse.cjs.map +1 -0
- package/dist/cjs/server/stdio.cjs +15 -0
- package/dist/cjs/server/stdio.cjs.map +1 -0
- package/dist/cjs/tools/cli.cjs +188 -0
- package/dist/cjs/tools/cli.cjs.map +1 -0
- package/dist/cjs/tools/docs.cjs +148 -0
- package/dist/cjs/tools/docs.cjs.map +1 -0
- package/dist/esm/client/client.mjs +18 -0
- package/dist/esm/client/client.mjs.map +1 -0
- package/dist/esm/client/sse.mjs +60 -0
- package/dist/esm/client/sse.mjs.map +1 -0
- package/dist/esm/server/server.mjs +30 -0
- package/dist/esm/server/server.mjs.map +1 -0
- package/dist/esm/server/sse.mjs +100 -0
- package/dist/esm/server/sse.mjs.map +1 -0
- package/dist/esm/server/stdio.mjs +14 -0
- package/dist/esm/server/stdio.mjs.map +1 -0
- package/dist/esm/tools/cli.mjs +154 -0
- package/dist/esm/tools/cli.mjs.map +1 -0
- package/dist/esm/tools/docs.mjs +114 -0
- package/dist/esm/tools/docs.mjs.map +1 -0
- package/dist/types/client/client.d.ts +26 -0
- package/dist/types/client/client.d.ts.map +1 -0
- package/dist/types/client/sse.d.ts +2 -0
- package/dist/types/client/sse.d.ts.map +1 -0
- package/dist/types/server/server.d.ts +4 -0
- package/dist/types/server/server.d.ts.map +1 -0
- package/dist/types/server/sse.d.ts +3 -0
- package/dist/types/server/sse.d.ts.map +1 -0
- package/dist/types/server/stdio.d.ts +3 -0
- package/dist/types/server/stdio.d.ts.map +1 -0
- package/dist/types/tools/cli.d.ts +3 -0
- package/dist/types/tools/cli.d.ts.map +1 -0
- package/dist/types/tools/docs.d.ts +3 -0
- package/dist/types/tools/docs.d.ts.map +1 -0
- package/package.json +32 -23
- package/dist/cjs/index.cjs +0 -358
- package/dist/cjs/index.cjs.map +0 -1
- package/dist/esm/index.mjs +0 -323
- package/dist/esm/index.mjs.map +0 -1
- package/dist/types/index.d.ts +0 -3
- package/dist/types/index.d.ts.map +0 -1
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { fill, pull, push } from "@intlayer/cli";
|
|
2
|
+
import { Locales } from "@intlayer/config";
|
|
3
|
+
import z from "zod";
|
|
4
|
+
const loadCLITools = async (server) => {
|
|
5
|
+
server.tool(
|
|
6
|
+
"intlayer-fill",
|
|
7
|
+
"Fill the dictionaries with missing translations / review translations using Intlayer servers",
|
|
8
|
+
{
|
|
9
|
+
sourceLocale: z.nativeEnum(Locales).optional().describe("Source locale"),
|
|
10
|
+
outputLocales: z.union([z.nativeEnum(Locales), z.array(z.nativeEnum(Locales))]).optional().describe("Output locales"),
|
|
11
|
+
file: z.union([z.string(), z.array(z.string())]).optional().describe("File path"),
|
|
12
|
+
mode: z.enum(["complete", "review"]).optional().describe("Fill mode"),
|
|
13
|
+
keys: z.union([z.string(), z.array(z.string())]).optional().describe("Keys to include"),
|
|
14
|
+
excludedKeys: z.union([z.string(), z.array(z.string())]).optional().describe("Keys to exclude"),
|
|
15
|
+
pathFilter: z.union([z.string(), z.array(z.string())]).optional().describe("Path filter"),
|
|
16
|
+
gitOptions: z.object({
|
|
17
|
+
gitDiff: z.boolean().optional(),
|
|
18
|
+
gitDiffBase: z.string().optional(),
|
|
19
|
+
gitDiffCurrent: z.string().optional(),
|
|
20
|
+
uncommitted: z.boolean().optional(),
|
|
21
|
+
unpushed: z.boolean().optional(),
|
|
22
|
+
untracked: z.boolean().optional()
|
|
23
|
+
}).optional().describe("Git options"),
|
|
24
|
+
aiOptions: z.object({
|
|
25
|
+
provider: z.string().optional(),
|
|
26
|
+
temperature: z.number().optional(),
|
|
27
|
+
model: z.string().optional(),
|
|
28
|
+
apiKey: z.string().optional(),
|
|
29
|
+
customPrompt: z.string().optional(),
|
|
30
|
+
applicationContext: z.string().optional()
|
|
31
|
+
}).optional().describe("AI options")
|
|
32
|
+
},
|
|
33
|
+
async (props) => {
|
|
34
|
+
try {
|
|
35
|
+
const { gitOptions, ...rest } = props;
|
|
36
|
+
const fillOptions = { ...rest, gitOptions: void 0 };
|
|
37
|
+
if (gitOptions) {
|
|
38
|
+
const { gitDiff, uncommitted, unpushed, untracked, ...restGit } = gitOptions;
|
|
39
|
+
const mode = [];
|
|
40
|
+
if (gitDiff) mode.push("gitDiff");
|
|
41
|
+
if (uncommitted) mode.push("uncommitted");
|
|
42
|
+
if (unpushed) mode.push("unpushed");
|
|
43
|
+
if (untracked) mode.push("untracked");
|
|
44
|
+
fillOptions.gitOptions = { ...restGit, mode };
|
|
45
|
+
}
|
|
46
|
+
await fill(fillOptions);
|
|
47
|
+
return {
|
|
48
|
+
content: [
|
|
49
|
+
{
|
|
50
|
+
type: "text",
|
|
51
|
+
text: "Fill successful."
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
};
|
|
55
|
+
} catch (error) {
|
|
56
|
+
const errorMessage = error instanceof Error ? error.message : "An unknown error occurred";
|
|
57
|
+
return {
|
|
58
|
+
content: [
|
|
59
|
+
{
|
|
60
|
+
type: "text",
|
|
61
|
+
text: `Fill failed: ${errorMessage}`
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
server.tool(
|
|
69
|
+
"intlayer-push",
|
|
70
|
+
"Push locale dictionaries to the server",
|
|
71
|
+
{
|
|
72
|
+
deleteLocaleDictionary: z.boolean().optional().describe("Delete local dictionary after push"),
|
|
73
|
+
keepLocaleDictionary: z.boolean().optional().describe("Keep local dictionary after push"),
|
|
74
|
+
dictionaries: z.array(z.string()).optional().describe("List of dictionaries to push"),
|
|
75
|
+
gitOptions: z.object({
|
|
76
|
+
gitDiff: z.boolean().optional(),
|
|
77
|
+
gitDiffBase: z.string().optional(),
|
|
78
|
+
gitDiffCurrent: z.string().optional(),
|
|
79
|
+
uncommitted: z.boolean().optional(),
|
|
80
|
+
unpushed: z.boolean().optional(),
|
|
81
|
+
untracked: z.boolean().optional()
|
|
82
|
+
}).optional().describe("Git options")
|
|
83
|
+
},
|
|
84
|
+
async (props) => {
|
|
85
|
+
try {
|
|
86
|
+
const { gitOptions, ...rest } = props;
|
|
87
|
+
const pushOptions = { ...rest, gitOptions: void 0 };
|
|
88
|
+
if (gitOptions) {
|
|
89
|
+
const { gitDiff, uncommitted, unpushed, untracked, ...restGit } = gitOptions;
|
|
90
|
+
const mode = [];
|
|
91
|
+
if (gitDiff) mode.push("gitDiff");
|
|
92
|
+
if (uncommitted) mode.push("uncommitted");
|
|
93
|
+
if (unpushed) mode.push("unpushed");
|
|
94
|
+
if (untracked) mode.push("untracked");
|
|
95
|
+
pushOptions.gitOptions = { ...restGit, mode };
|
|
96
|
+
}
|
|
97
|
+
await push(pushOptions);
|
|
98
|
+
return {
|
|
99
|
+
content: [
|
|
100
|
+
{
|
|
101
|
+
type: "text",
|
|
102
|
+
text: "Push successful."
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
};
|
|
106
|
+
} catch (error) {
|
|
107
|
+
const errorMessage = error instanceof Error ? error.message : "An unknown error occurred";
|
|
108
|
+
return {
|
|
109
|
+
content: [
|
|
110
|
+
{
|
|
111
|
+
type: "text",
|
|
112
|
+
text: `Push failed: ${errorMessage}`
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
);
|
|
119
|
+
server.tool(
|
|
120
|
+
"intlayer-pull",
|
|
121
|
+
"Pull dictionaries from the CMS",
|
|
122
|
+
{
|
|
123
|
+
dictionaries: z.array(z.string()).optional().describe("List of dictionaries to pull"),
|
|
124
|
+
newDictionariesPath: z.string().optional().describe("Path to save new dictionaries")
|
|
125
|
+
},
|
|
126
|
+
async (props) => {
|
|
127
|
+
try {
|
|
128
|
+
await pull(props);
|
|
129
|
+
return {
|
|
130
|
+
content: [
|
|
131
|
+
{
|
|
132
|
+
type: "text",
|
|
133
|
+
text: "Pull successful."
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
};
|
|
137
|
+
} catch (error) {
|
|
138
|
+
const errorMessage = error instanceof Error ? error.message : "An unknown error occurred";
|
|
139
|
+
return {
|
|
140
|
+
content: [
|
|
141
|
+
{
|
|
142
|
+
type: "text",
|
|
143
|
+
text: `Pull failed: ${errorMessage}`
|
|
144
|
+
}
|
|
145
|
+
]
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
);
|
|
150
|
+
};
|
|
151
|
+
export {
|
|
152
|
+
loadCLITools
|
|
153
|
+
};
|
|
154
|
+
//# sourceMappingURL=cli.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/cli.ts"],"sourcesContent":["import { fill, pull, push } from '@intlayer/cli';\nimport { Locales } from '@intlayer/config';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport z from 'zod';\n\nexport const loadCLITools = async (server: McpServer) => {\n server.tool(\n 'intlayer-fill',\n 'Fill the dictionaries with missing translations / review translations using Intlayer servers',\n {\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 async (props) => {\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\n server.tool(\n 'intlayer-push',\n 'Push locale dictionaries to the server',\n {\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 async (props) => {\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\n server.tool(\n 'intlayer-pull',\n 'Pull dictionaries from the CMS',\n {\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 async (props) => {\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};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { build } from "@intlayer/cli";
|
|
2
|
+
import { Locales } from "@intlayer/config";
|
|
3
|
+
import { getDoc, getDocBySlug, getDocMetadataRecord } from "@intlayer/docs";
|
|
4
|
+
import z from "zod";
|
|
5
|
+
const loadDocsTools = async (server) => {
|
|
6
|
+
server.tool(
|
|
7
|
+
"intlayer-build",
|
|
8
|
+
"Build the dictionaries. List all content declarations files `.content.{ts,tsx,js,json,...}` to update the content callable using the `useIntlayer` hook.",
|
|
9
|
+
{
|
|
10
|
+
watch: z.boolean().optional().describe("Watch for changes"),
|
|
11
|
+
baseDir: z.string().optional().describe("Base directory"),
|
|
12
|
+
env: z.string().optional().describe("Environment"),
|
|
13
|
+
envFile: z.string().optional().describe("Environment file"),
|
|
14
|
+
verbose: z.boolean().optional().describe("Verbose output"),
|
|
15
|
+
prefix: z.string().optional().describe("Log prefix")
|
|
16
|
+
},
|
|
17
|
+
async ({ watch, baseDir, env, envFile, verbose, prefix }) => {
|
|
18
|
+
try {
|
|
19
|
+
const log = {};
|
|
20
|
+
if (verbose) {
|
|
21
|
+
log.mode = "verbose";
|
|
22
|
+
}
|
|
23
|
+
if (prefix) {
|
|
24
|
+
log.prefix = prefix;
|
|
25
|
+
}
|
|
26
|
+
await build({
|
|
27
|
+
watch,
|
|
28
|
+
configOptions: {
|
|
29
|
+
baseDir,
|
|
30
|
+
env,
|
|
31
|
+
envFile,
|
|
32
|
+
override: {
|
|
33
|
+
log
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
return {
|
|
38
|
+
content: [
|
|
39
|
+
{
|
|
40
|
+
type: "text",
|
|
41
|
+
text: "Build successful."
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
};
|
|
45
|
+
} catch (error) {
|
|
46
|
+
const errorMessage = error instanceof Error ? error.message : "An unknown error occurred";
|
|
47
|
+
return {
|
|
48
|
+
content: [
|
|
49
|
+
{
|
|
50
|
+
type: "text",
|
|
51
|
+
text: `Build failed: ${errorMessage}`
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
server.tool(
|
|
59
|
+
"get-doc-list",
|
|
60
|
+
"Get the list of docs names and their metadata to get more details about what doc to retrieve",
|
|
61
|
+
{
|
|
62
|
+
lang: z.nativeEnum(Locales).optional().describe("Language of the docs")
|
|
63
|
+
},
|
|
64
|
+
async ({ lang }) => {
|
|
65
|
+
const docsMetadataRecord = await getDocMetadataRecord(lang);
|
|
66
|
+
return {
|
|
67
|
+
content: [
|
|
68
|
+
{
|
|
69
|
+
type: "text",
|
|
70
|
+
text: JSON.stringify(docsMetadataRecord, null, 2)
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
);
|
|
76
|
+
server.tool(
|
|
77
|
+
"get-doc",
|
|
78
|
+
"Get a doc by his key. Example: `./docs/en/getting-started.md`. List all docs metadata first to get more details about what doc key to retrieve.",
|
|
79
|
+
{
|
|
80
|
+
docKey: z.string(),
|
|
81
|
+
lang: z.nativeEnum(Locales).optional().describe("Language of the docs")
|
|
82
|
+
},
|
|
83
|
+
async ({ docKey, lang }) => {
|
|
84
|
+
const doc = await getDoc(docKey, lang);
|
|
85
|
+
return {
|
|
86
|
+
content: [{ type: "text", text: doc }]
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
server.tool(
|
|
91
|
+
"get-doc-by-slug",
|
|
92
|
+
"Get an array of docs by their slugs. If not slug is provided, return all docs (1.2Mb). List all docs metadata first to get more details about what doc to retrieve.",
|
|
93
|
+
{
|
|
94
|
+
slug: z.union([z.string(), z.array(z.string())]).optional().describe(
|
|
95
|
+
"Slug of the docs. If not provided, return all docs. If not provided, return all docs."
|
|
96
|
+
),
|
|
97
|
+
lang: z.nativeEnum(Locales).optional().describe("Language of the docs"),
|
|
98
|
+
strict: z.boolean().optional().describe(
|
|
99
|
+
"Strict mode - only return docs that match all slugs, by excluding additional slugs"
|
|
100
|
+
),
|
|
101
|
+
description: "Get an array of docs by their slugs"
|
|
102
|
+
},
|
|
103
|
+
async ({ slug, lang, strict }) => {
|
|
104
|
+
const doc = await getDocBySlug(slug, lang, strict);
|
|
105
|
+
return {
|
|
106
|
+
content: doc.map((d) => ({ type: "text", text: d }))
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
);
|
|
110
|
+
};
|
|
111
|
+
export {
|
|
112
|
+
loadDocsTools
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=docs.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/docs.ts"],"sourcesContent":["import { build } from '@intlayer/cli';\nimport { Locales, LogConfig } from '@intlayer/config';\nimport { getDoc, getDocBySlug, getDocMetadataRecord } from '@intlayer/docs';\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport z from 'zod';\n\nexport const loadDocsTools = async (server: McpServer) => {\n server.tool(\n 'intlayer-build',\n 'Build the dictionaries. List all content declarations files `.content.{ts,tsx,js,json,...}` to update the content callable using the `useIntlayer` hook.',\n {\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 async ({ watch, baseDir, env, envFile, verbose, prefix }) => {\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\n server.tool(\n 'get-doc-list',\n 'Get the list of docs names and their metadata to get more details about what doc to retrieve',\n {\n lang: z.nativeEnum(Locales).optional().describe('Language of the docs'),\n },\n async ({ lang }) => {\n const docsMetadataRecord = await getDocMetadataRecord(lang);\n\n return {\n content: [\n {\n type: 'text',\n text: JSON.stringify(docsMetadataRecord, null, 2),\n },\n ],\n };\n }\n );\n\n server.tool(\n 'get-doc',\n 'Get a doc by his key. Example: `./docs/en/getting-started.md`. List all docs metadata first to get more details about what doc key to retrieve.',\n {\n docKey: z.string(),\n lang: z.nativeEnum(Locales).optional().describe('Language of the docs'),\n },\n async ({ docKey, lang }) => {\n const doc = await getDoc(docKey as any, lang);\n return {\n content: [{ type: 'text', text: doc }],\n };\n }\n );\n\n server.tool(\n 'get-doc-by-slug',\n 'Get an array of docs by their slugs. If not slug is provided, return all docs (1.2Mb). List all docs metadata first to get more details about what doc to retrieve.',\n {\n slug: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe(\n 'Slug of the docs. If not provided, return all docs. If not provided, return all docs.'\n ),\n lang: z.nativeEnum(Locales).optional().describe('Language of the docs'),\n strict: z\n .boolean()\n .optional()\n .describe(\n 'Strict mode - only return docs that match all slugs, by excluding additional slugs'\n ),\n description: 'Get an array of docs by their slugs',\n },\n async ({ slug, lang, strict }) => {\n const doc = await getDocBySlug(slug, lang, strict);\n return {\n content: doc.map((d) => ({ type: 'text', text: d })),\n };\n }\n );\n};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
2
|
+
export declare const dirname: string;
|
|
3
|
+
export declare const loadClient: () => Client<{
|
|
4
|
+
method: string;
|
|
5
|
+
params?: {
|
|
6
|
+
[x: string]: unknown;
|
|
7
|
+
_meta?: {
|
|
8
|
+
[x: string]: unknown;
|
|
9
|
+
progressToken?: string | number;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
}, {
|
|
13
|
+
method: string;
|
|
14
|
+
params?: {
|
|
15
|
+
[x: string]: unknown;
|
|
16
|
+
_meta?: {
|
|
17
|
+
[x: string]: unknown;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
}, {
|
|
21
|
+
[x: string]: unknown;
|
|
22
|
+
_meta?: {
|
|
23
|
+
[x: string]: unknown;
|
|
24
|
+
};
|
|
25
|
+
}>;
|
|
26
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAKnE,eAAO,MAAM,OAAO,QAEP,CAAC;AAMd,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;EAInB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../../src/client/sse.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,eAAO,MAAM,OAAO,QAEP,CAAC;AAMd,eAAO,MAAM,UAAU,GAAI,SAAS,OAAO,KAAG,SAgB7C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../../src/server/sse.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../../src/server/stdio.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/tools/cli.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,eAAO,MAAM,YAAY,GAAU,QAAQ,SAAS,kBAyMnD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../src/tools/docs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,eAAO,MAAM,aAAa,GAAU,QAAQ,SAAS,kBAsHpD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intlayer/mcp",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.7.0",
|
|
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": [
|
|
@@ -34,15 +34,20 @@
|
|
|
34
34
|
"sideEffects": false,
|
|
35
35
|
"exports": {
|
|
36
36
|
".": {
|
|
37
|
-
"types": "./dist/types/
|
|
38
|
-
"require": "./dist/cjs/
|
|
39
|
-
"import": "./dist/esm/
|
|
37
|
+
"types": "./dist/types/server/stdio.d.ts",
|
|
38
|
+
"require": "./dist/cjs/server/stdio.cjs",
|
|
39
|
+
"import": "./dist/esm/server/stdio.mjs"
|
|
40
|
+
},
|
|
41
|
+
"./sse": {
|
|
42
|
+
"types": "./dist/types/server/sse.d.ts",
|
|
43
|
+
"require": "./dist/cjs/server/sse.cjs",
|
|
44
|
+
"import": "./dist/esm/server/sse.mjs"
|
|
40
45
|
},
|
|
41
46
|
"./package.json": "./package.json"
|
|
42
47
|
},
|
|
43
|
-
"main": "dist/cjs/
|
|
44
|
-
"module": "dist/esm/
|
|
45
|
-
"types": "dist/types/
|
|
48
|
+
"main": "dist/cjs/server/stdio.cjs",
|
|
49
|
+
"module": "dist/esm/server/stdio.mjs",
|
|
50
|
+
"types": "dist/types/server/stdio.d.ts",
|
|
46
51
|
"typesVersions": {
|
|
47
52
|
"*": {
|
|
48
53
|
"package.json": [
|
|
@@ -50,19 +55,19 @@
|
|
|
50
55
|
]
|
|
51
56
|
}
|
|
52
57
|
},
|
|
53
|
-
"bin": "dist/cjs/
|
|
58
|
+
"bin": "dist/cjs/server/stdio.cjs",
|
|
54
59
|
"files": [
|
|
55
60
|
"./dist",
|
|
56
61
|
"./package.json"
|
|
57
62
|
],
|
|
58
63
|
"dependencies": {
|
|
59
64
|
"@modelcontextprotocol/sdk": "^1.15.0",
|
|
65
|
+
"dotenv": "^16.4.7",
|
|
60
66
|
"express": "^5.1.0",
|
|
61
|
-
"mcp-proxy": "^5.3.0",
|
|
62
67
|
"zod": "^3.25.56",
|
|
63
|
-
"@intlayer/
|
|
64
|
-
"@intlayer/
|
|
65
|
-
"@intlayer/
|
|
68
|
+
"@intlayer/config": "5.7.0",
|
|
69
|
+
"@intlayer/docs": "5.7.0",
|
|
70
|
+
"@intlayer/cli": "5.7.0"
|
|
66
71
|
},
|
|
67
72
|
"devDependencies": {
|
|
68
73
|
"@modelcontextprotocol/inspector": "^0.16.0",
|
|
@@ -77,15 +82,15 @@
|
|
|
77
82
|
"tsup": "^8.5.0",
|
|
78
83
|
"typescript": "^5.8.3",
|
|
79
84
|
"vitest": "^3.2.2",
|
|
80
|
-
"@utils/eslint-config": "1.0.4",
|
|
81
85
|
"@utils/ts-config": "1.0.4",
|
|
86
|
+
"@utils/ts-config-types": "1.0.4",
|
|
82
87
|
"@utils/tsup-config": "1.0.4",
|
|
83
|
-
"@utils/
|
|
88
|
+
"@utils/eslint-config": "1.0.4"
|
|
84
89
|
},
|
|
85
90
|
"peerDependencies": {
|
|
86
|
-
"@intlayer/
|
|
87
|
-
"@intlayer/
|
|
88
|
-
"@intlayer/docs": "5.
|
|
91
|
+
"@intlayer/config": "5.7.0",
|
|
92
|
+
"@intlayer/cli": "5.7.0",
|
|
93
|
+
"@intlayer/docs": "5.7.0"
|
|
89
94
|
},
|
|
90
95
|
"engines": {
|
|
91
96
|
"node": ">=14.18"
|
|
@@ -95,6 +100,7 @@
|
|
|
95
100
|
},
|
|
96
101
|
"scripts": {
|
|
97
102
|
"build": "pnpm build:package && pnpm build:types && pnpm manange:permissions",
|
|
103
|
+
"build:docker": "docker build -t intlayer-mcp -f Dockerfile .",
|
|
98
104
|
"build:package": "tsup",
|
|
99
105
|
"build:types": "tsc --project ./tsconfig.types.json && tsc-alias --project ./tsconfig.types.json",
|
|
100
106
|
"clean": "rimraf ./dist",
|
|
@@ -102,16 +108,19 @@
|
|
|
102
108
|
"lint": "eslint . --cache",
|
|
103
109
|
"lint:fix": "eslint . --cache --fix",
|
|
104
110
|
"manange:permissions": "pnpm manange:permissions:cjs & pnpm manange:permissions:mjs",
|
|
105
|
-
"manange:permissions:cjs": "node -e \"require('fs').chmodSync('dist/cjs/
|
|
106
|
-
"manange:permissions:mjs": "node -e \"require('fs').chmodSync('dist/esm/
|
|
111
|
+
"manange:permissions:cjs": "node -e \"require('fs').chmodSync('dist/cjs/server/stdio.cjs', 0o755); require('fs').chmodSync('dist/cjs/server/sse.cjs', 0o755)\"",
|
|
112
|
+
"manange:permissions:mjs": "node -e \"require('fs').chmodSync('dist/esm/server/stdio.mjs', 0o755); require('fs').chmodSync('dist/esm/server/sse.mjs', 0o755)\"",
|
|
107
113
|
"prettier": "prettier . --check",
|
|
108
114
|
"prettier:fix": "prettier . --write",
|
|
109
115
|
"process-files": "ts-node src/transpiler/processFilesCLI.ts --dir $npm_config_dir --extension $npm_config_extension --no-node-snapshot",
|
|
110
116
|
"reset": "pnpm clean & pnpm build",
|
|
111
|
-
"start": "
|
|
112
|
-
"start:
|
|
113
|
-
"start:
|
|
114
|
-
"start:inspector": "npx @modelcontextprotocol/inspector node dist/cjs/
|
|
117
|
+
"start": "pnpm start:stdio",
|
|
118
|
+
"start:client": "npx node dist/cjs/client/sse.cjs",
|
|
119
|
+
"start:docker": "docker run --rm -p 3000:3000 --name intlayer-mcp-app intlayer-mcp",
|
|
120
|
+
"start:inspector": "npx @modelcontextprotocol/inspector node dist/cjs/server/stdio.cjs",
|
|
121
|
+
"start:inspector:sse": "npx @modelcontextprotocol/inspector node dist/cjs/server/sse.cjs",
|
|
122
|
+
"start:sse": "npx node dist/cjs/server/sse.cjs",
|
|
123
|
+
"start:stdio": "npx node dist/cjs/server/stdio.cjs",
|
|
115
124
|
"test": "vitest run",
|
|
116
125
|
"test:watch": "vitest",
|
|
117
126
|
"typecheck": "tsup --project ./tsconfig.json --noEmit"
|