@better-i18n/mcp 0.12.0 → 0.14.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/dist/server.d.ts.map +1 -1
- package/dist/server.js +9 -4
- package/dist/server.js.map +1 -1
- package/dist/tools/getTranslations.d.ts +6 -1
- package/dist/tools/getTranslations.d.ts.map +1 -1
- package/dist/tools/getTranslations.js +14 -6
- package/dist/tools/getTranslations.js.map +1 -1
- package/dist/tools/proposeLanguageEdits.d.ts +9 -0
- package/dist/tools/proposeLanguageEdits.d.ts.map +1 -0
- package/dist/tools/proposeLanguageEdits.js +65 -0
- package/dist/tools/proposeLanguageEdits.js.map +1 -0
- package/dist/tools/proposeLanguages.d.ts +9 -0
- package/dist/tools/proposeLanguages.d.ts.map +1 -0
- package/dist/tools/proposeLanguages.js +61 -0
- package/dist/tools/proposeLanguages.js.map +1 -0
- package/dist/tools/updateKeys.d.ts +4 -2
- package/dist/tools/updateKeys.d.ts.map +1 -1
- package/dist/tools/updateKeys.js +10 -29
- package/dist/tools/updateKeys.js.map +1 -1
- package/package.json +2 -2
- package/dist/tools/addLanguage.d.ts +0 -8
- package/dist/tools/addLanguage.d.ts.map +0 -1
- package/dist/tools/addLanguage.js +0 -39
- package/dist/tools/addLanguage.js.map +0 -1
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAMnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAMnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAgBrD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG;IAC9D,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,CAaA;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,GACnD,MAAM,CA4GR;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
9
9
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
10
10
|
import { createBetterI18nClient } from "./client.js";
|
|
11
|
-
import {
|
|
11
|
+
import { proposeLanguages } from "./tools/proposeLanguages.js";
|
|
12
|
+
import { proposeLanguageEdits } from "./tools/proposeLanguageEdits.js";
|
|
12
13
|
import { createKeys } from "./tools/createKeys.js";
|
|
13
14
|
import { deleteKeys } from "./tools/deleteKeys.js";
|
|
14
15
|
import { getPendingChanges } from "./tools/getPendingChanges.js";
|
|
@@ -60,7 +61,8 @@ export function createConfiguredServer(apiClient) {
|
|
|
60
61
|
tools: [
|
|
61
62
|
annotate(listProjects.definition, readOnly),
|
|
62
63
|
annotate(getProject.definition, readOnly),
|
|
63
|
-
annotate(
|
|
64
|
+
annotate(proposeLanguages.definition, write),
|
|
65
|
+
annotate(proposeLanguageEdits.definition, write),
|
|
64
66
|
annotate(listKeys.definition, readOnly),
|
|
65
67
|
annotate(getTranslations.definition, readOnly),
|
|
66
68
|
annotate(createKeys.definition, write),
|
|
@@ -84,8 +86,11 @@ export function createConfiguredServer(apiClient) {
|
|
|
84
86
|
case "getProject":
|
|
85
87
|
result = await getProject.execute(apiClient, args);
|
|
86
88
|
break;
|
|
87
|
-
case "
|
|
88
|
-
result = await
|
|
89
|
+
case "proposeLanguages":
|
|
90
|
+
result = await proposeLanguages.execute(apiClient, args);
|
|
91
|
+
break;
|
|
92
|
+
case "proposeLanguageEdits":
|
|
93
|
+
result = await proposeLanguageEdits.execute(apiClient, args);
|
|
89
94
|
break;
|
|
90
95
|
case "listKeys":
|
|
91
96
|
result = await listKeys.execute(apiClient, args);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,12 @@
|
|
|
13
13
|
* - status: Filter by translation status ("missing", "draft", "approved", "all")
|
|
14
14
|
* - namespaces: Filter by namespace(s)
|
|
15
15
|
* - keys: Fetch specific keys by exact name
|
|
16
|
-
* - limit: Max keys to return (default
|
|
16
|
+
* - limit: Max keys to return (1–200, default 100)
|
|
17
|
+
*
|
|
18
|
+
* RESPONSE INCLUDES PAGINATION METADATA:
|
|
19
|
+
* - returned: number of keys in this response
|
|
20
|
+
* - total: total keys in DB matching your filters (before status filter)
|
|
21
|
+
* - hasMore: true when total > limit — use narrower filters to get specific keys
|
|
17
22
|
*
|
|
18
23
|
* EXAMPLES:
|
|
19
24
|
* - Find "login" in source: { project: "org/project", search: "login" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTranslations.d.ts","sourceRoot":"","sources":["../../src/tools/getTranslations.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"getTranslations.d.ts","sourceRoot":"","sources":["../../src/tools/getTranslations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAW9C,eAAO,MAAM,eAAe,EAAE,IAyF7B,CAAC"}
|
|
@@ -13,7 +13,12 @@
|
|
|
13
13
|
* - status: Filter by translation status ("missing", "draft", "approved", "all")
|
|
14
14
|
* - namespaces: Filter by namespace(s)
|
|
15
15
|
* - keys: Fetch specific keys by exact name
|
|
16
|
-
* - limit: Max keys to return (default
|
|
16
|
+
* - limit: Max keys to return (1–200, default 100)
|
|
17
|
+
*
|
|
18
|
+
* RESPONSE INCLUDES PAGINATION METADATA:
|
|
19
|
+
* - returned: number of keys in this response
|
|
20
|
+
* - total: total keys in DB matching your filters (before status filter)
|
|
21
|
+
* - hasMore: true when total > limit — use narrower filters to get specific keys
|
|
17
22
|
*
|
|
18
23
|
* EXAMPLES:
|
|
19
24
|
* - Find "login" in source: { project: "org/project", search: "login" }
|
|
@@ -31,7 +36,7 @@ const inputSchema = projectSchema.extend({
|
|
|
31
36
|
namespaces: z.array(z.string()).optional(),
|
|
32
37
|
keys: z.array(z.string()).optional(),
|
|
33
38
|
status: z.enum(["missing", "draft", "approved", "all"]).optional(),
|
|
34
|
-
limit: z.number().min(
|
|
39
|
+
limit: z.number().min(1).max(200).optional(),
|
|
35
40
|
});
|
|
36
41
|
export const getTranslations = {
|
|
37
42
|
definition: {
|
|
@@ -45,11 +50,14 @@ SEARCH + FILTER:
|
|
|
45
50
|
- search: Text to search for (in source text or specified languages)
|
|
46
51
|
- languages: Languages to search in AND return translations for
|
|
47
52
|
- status: Filter by translation status ("missing", "draft", "approved", "all")
|
|
48
|
-
|
|
49
|
-
FILTER OPTIONS:
|
|
50
53
|
- namespaces: Filter by namespace(s)
|
|
51
54
|
- keys: Fetch specific keys by exact name
|
|
52
|
-
- limit: Max keys
|
|
55
|
+
- limit: Max keys (1–200, default 100)
|
|
56
|
+
|
|
57
|
+
RESPONSE METADATA:
|
|
58
|
+
- returned: keys in this response (after all filters)
|
|
59
|
+
- total: DB count before in-memory status filter
|
|
60
|
+
- hasMore: true when total > limit — narrow your filters to get specific results
|
|
53
61
|
|
|
54
62
|
EXAMPLES:
|
|
55
63
|
- Find "login" in source: { search: "login" }
|
|
@@ -90,7 +98,7 @@ Response includes namespaceDetails: a map of namespace metadata (name, keyCount,
|
|
|
90
98
|
},
|
|
91
99
|
limit: {
|
|
92
100
|
type: "number",
|
|
93
|
-
description: "
|
|
101
|
+
description: "Max keys to return (1–200, default 100). Check 'returned', 'total', 'hasMore' in response to understand result size. Use narrower filters to get specific keys.",
|
|
94
102
|
},
|
|
95
103
|
},
|
|
96
104
|
required: ["project"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTranslations.js","sourceRoot":"","sources":["../../src/tools/getTranslations.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"getTranslations.js","sourceRoot":"","sources":["../../src/tools/getTranslations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* proposeLanguageEdits MCP Tool
|
|
3
|
+
*
|
|
4
|
+
* Update status of existing target languages.
|
|
5
|
+
* Statuses: active (published to CDN), draft (visible but not deployed), archived (hidden).
|
|
6
|
+
*/
|
|
7
|
+
import type { Tool } from "../types/index.js";
|
|
8
|
+
export declare const proposeLanguageEdits: Tool;
|
|
9
|
+
//# sourceMappingURL=proposeLanguageEdits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposeLanguageEdits.d.ts","sourceRoot":"","sources":["../../src/tools/proposeLanguageEdits.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAc9C,eAAO,MAAM,oBAAoB,EAAE,IAoDlC,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* proposeLanguageEdits MCP Tool
|
|
3
|
+
*
|
|
4
|
+
* Update status of existing target languages.
|
|
5
|
+
* Statuses: active (published to CDN), draft (visible but not deployed), archived (hidden).
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
import { executeTool, projectInputProperty, projectSchema, success, } from "../base-tool.js";
|
|
9
|
+
const inputSchema = projectSchema.extend({
|
|
10
|
+
edits: z
|
|
11
|
+
.array(z.object({
|
|
12
|
+
languageCode: z.string().min(2).max(5),
|
|
13
|
+
newStatus: z.enum(["active", "draft", "archived"]),
|
|
14
|
+
}))
|
|
15
|
+
.min(1)
|
|
16
|
+
.max(50),
|
|
17
|
+
});
|
|
18
|
+
export const proposeLanguageEdits = {
|
|
19
|
+
definition: {
|
|
20
|
+
name: "proposeLanguageEdits",
|
|
21
|
+
description: "Update status of existing target languages — active (published to CDN), draft (visible but not deployed), archived (hidden from editor and CDN). Use this to activate, deactivate, or archive languages.",
|
|
22
|
+
inputSchema: {
|
|
23
|
+
type: "object",
|
|
24
|
+
properties: {
|
|
25
|
+
...projectInputProperty,
|
|
26
|
+
edits: {
|
|
27
|
+
type: "array",
|
|
28
|
+
description: "Language edits. Each item: { languageCode: string, newStatus: 'active' | 'draft' | 'archived' }.",
|
|
29
|
+
items: {
|
|
30
|
+
type: "object",
|
|
31
|
+
properties: {
|
|
32
|
+
languageCode: { type: "string", description: "ISO 639-1 code of the language to update" },
|
|
33
|
+
newStatus: {
|
|
34
|
+
type: "string",
|
|
35
|
+
enum: ["active", "draft", "archived"],
|
|
36
|
+
description: "New status: active=published to CDN, draft=visible but not deployed, archived=hidden",
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
required: ["languageCode", "newStatus"],
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
required: ["project", "edits"],
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
execute: (client, args) => executeTool(args, inputSchema, async (input, { workspaceId, projectSlug }) => {
|
|
47
|
+
// Map edits → updates format expected by the API
|
|
48
|
+
const updates = input.edits.map((edit) => ({
|
|
49
|
+
languageCode: edit.languageCode,
|
|
50
|
+
status: edit.newStatus,
|
|
51
|
+
}));
|
|
52
|
+
const result = await client.mcp.updateLanguages.mutate({
|
|
53
|
+
orgSlug: workspaceId,
|
|
54
|
+
projectSlug,
|
|
55
|
+
updates,
|
|
56
|
+
});
|
|
57
|
+
return success({
|
|
58
|
+
success: result.success,
|
|
59
|
+
results: result.results,
|
|
60
|
+
notFound: result.notFound,
|
|
61
|
+
project: input.project,
|
|
62
|
+
});
|
|
63
|
+
}),
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=proposeLanguageEdits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposeLanguageEdits.js","sourceRoot":"","sources":["../../src/tools/proposeLanguageEdits.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC;SACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;KACnD,CAAC,CACH;SACA,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;CACX,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAS;IACxC,UAAU,EAAE;QACV,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EACT,0MAA0M;QAC5M,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,oBAAoB;gBACvB,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,WAAW,EACT,kGAAkG;oBACpG,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE;4BACzF,SAAS,EAAE;gCACT,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;gCACrC,WAAW,EAAE,sFAAsF;6BACpG;yBACF;wBACD,QAAQ,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC;qBACxC;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;SAC/B;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;QAC3E,iDAAiD;QACjD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,MAAM,EAAE,IAAI,CAAC,SAAS;SACvB,CAAC,CAAC,CAAC;QAEJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC;YACrD,OAAO,EAAE,WAAW;YACpB,WAAW;YACX,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;YACb,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;IACL,CAAC,CAAC;CACL,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* proposeLanguages MCP Tool
|
|
3
|
+
*
|
|
4
|
+
* Add one or more target languages to the project.
|
|
5
|
+
* Already-existing languages are silently skipped (not an error).
|
|
6
|
+
*/
|
|
7
|
+
import type { Tool } from "../types/index.js";
|
|
8
|
+
export declare const proposeLanguages: Tool;
|
|
9
|
+
//# sourceMappingURL=proposeLanguages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposeLanguages.d.ts","sourceRoot":"","sources":["../../src/tools/proposeLanguages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAc9C,eAAO,MAAM,gBAAgB,EAAE,IA+C9B,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* proposeLanguages MCP Tool
|
|
3
|
+
*
|
|
4
|
+
* Add one or more target languages to the project.
|
|
5
|
+
* Already-existing languages are silently skipped (not an error).
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
import { executeTool, projectInputProperty, projectSchema, success, } from "../base-tool.js";
|
|
9
|
+
const inputSchema = projectSchema.extend({
|
|
10
|
+
languages: z
|
|
11
|
+
.array(z.object({
|
|
12
|
+
languageCode: z.string().min(2).max(5),
|
|
13
|
+
status: z.enum(["active", "draft"]).default("active").optional(),
|
|
14
|
+
}))
|
|
15
|
+
.min(1)
|
|
16
|
+
.max(50),
|
|
17
|
+
});
|
|
18
|
+
export const proposeLanguages = {
|
|
19
|
+
definition: {
|
|
20
|
+
name: "proposeLanguages",
|
|
21
|
+
description: "Add one or more target languages to the project. Use ISO 639-1 codes (e.g. 'fr', 'ja', 'de'). Already-existing languages are silently skipped.",
|
|
22
|
+
inputSchema: {
|
|
23
|
+
type: "object",
|
|
24
|
+
properties: {
|
|
25
|
+
...projectInputProperty,
|
|
26
|
+
languages: {
|
|
27
|
+
type: "array",
|
|
28
|
+
description: "Languages to add. Each item: { languageCode: string, status?: 'active' | 'draft' }. Default status is 'active'.",
|
|
29
|
+
items: {
|
|
30
|
+
type: "object",
|
|
31
|
+
properties: {
|
|
32
|
+
languageCode: { type: "string", description: "ISO 639-1 code (e.g. 'fr', 'de', 'ja')" },
|
|
33
|
+
status: {
|
|
34
|
+
type: "string",
|
|
35
|
+
enum: ["active", "draft"],
|
|
36
|
+
description: "Language status. 'active' = published to CDN (default), 'draft' = visible but not deployed",
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
required: ["languageCode"],
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
required: ["project", "languages"],
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
execute: (client, args) => executeTool(args, inputSchema, async (input, { workspaceId, projectSlug }) => {
|
|
47
|
+
const result = await client.mcp.addLanguages.mutate({
|
|
48
|
+
orgSlug: workspaceId,
|
|
49
|
+
projectSlug,
|
|
50
|
+
languages: input.languages,
|
|
51
|
+
});
|
|
52
|
+
return success({
|
|
53
|
+
success: result.success,
|
|
54
|
+
added: result.added,
|
|
55
|
+
skipped: result.skipped,
|
|
56
|
+
results: result.results,
|
|
57
|
+
project: input.project,
|
|
58
|
+
});
|
|
59
|
+
}),
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=proposeLanguages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposeLanguages.js","sourceRoot":"","sources":["../../src/tools/proposeLanguages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,SAAS,EAAE,CAAC;SACT,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;KACjE,CAAC,CACH;SACA,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;CACX,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAS;IACpC,UAAU,EAAE;QACV,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,gJAAgJ;QAClJ,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,oBAAoB;gBACvB,SAAS,EAAE;oBACT,IAAI,EAAE,OAAO;oBACb,WAAW,EACT,iHAAiH;oBACnH,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;4BACvF,MAAM,EAAE;gCACN,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;gCACzB,WAAW,EAAE,4FAA4F;6BAC1G;yBACF;wBACD,QAAQ,EAAE,CAAC,cAAc,CAAC;qBAC3B;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;SACnC;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;QAC3E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC;YAClD,OAAO,EAAE,WAAW;YACpB,WAAW;YACX,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;YACb,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;IACL,CAAC,CAAC;CACL,CAAC"}
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
* updateKeys MCP Tool
|
|
3
3
|
*
|
|
4
4
|
* Updates source text and/or target translations for one or more keys.
|
|
5
|
-
* Uses
|
|
6
|
-
*
|
|
5
|
+
* Uses UUID-based schema matching the API: t=[{id, l, t, s, st}].
|
|
6
|
+
*
|
|
7
|
+
* IMPORTANT: id (UUID) is required — get it from getAllTranslations or listKeys response.
|
|
8
|
+
* The old k/ns/nc format has been removed. Use id exclusively.
|
|
7
9
|
*/
|
|
8
10
|
import type { Tool } from "../types/index.js";
|
|
9
11
|
export declare const updateKeys: Tool;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateKeys.d.ts","sourceRoot":"","sources":["../../src/tools/updateKeys.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"updateKeys.d.ts","sourceRoot":"","sources":["../../src/tools/updateKeys.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAc9C,eAAO,MAAM,UAAU,EAAE,IA2CxB,CAAC"}
|
package/dist/tools/updateKeys.js
CHANGED
|
@@ -2,33 +2,26 @@
|
|
|
2
2
|
* updateKeys MCP Tool
|
|
3
3
|
*
|
|
4
4
|
* Updates source text and/or target translations for one or more keys.
|
|
5
|
-
* Uses
|
|
6
|
-
*
|
|
5
|
+
* Uses UUID-based schema matching the API: t=[{id, l, t, s, st}].
|
|
6
|
+
*
|
|
7
|
+
* IMPORTANT: id (UUID) is required — get it from getAllTranslations or listKeys response.
|
|
8
|
+
* The old k/ns/nc format has been removed. Use id exclusively.
|
|
7
9
|
*/
|
|
8
10
|
import { z } from "zod";
|
|
9
11
|
import { executeTool, projectInputProperty, projectSchema, success, } from "../base-tool.js";
|
|
10
|
-
const namespaceContextSchema = z.object({
|
|
11
|
-
description: z.string().optional(),
|
|
12
|
-
team: z.string().optional(),
|
|
13
|
-
domain: z.string().optional(),
|
|
14
|
-
aiPrompt: z.string().optional(),
|
|
15
|
-
tags: z.array(z.string()).optional(),
|
|
16
|
-
}).optional();
|
|
17
12
|
const inputSchema = projectSchema.extend({
|
|
18
13
|
t: z.array(z.object({
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
l: z.string().describe("Language code (e.g., 'en', 'tr', 'de')"),
|
|
14
|
+
id: z.string().describe("Translation key UUID — get from getAllTranslations or listKeys response (id field)"),
|
|
15
|
+
l: z.string().describe("Language code (e.g., 'tr', 'de')"),
|
|
22
16
|
t: z.string().describe("Translation text"),
|
|
23
17
|
s: z.boolean().optional().describe("true if updating source language text"),
|
|
24
18
|
st: z.string().optional().describe("Translation status (e.g., 'approved')"),
|
|
25
|
-
nc: namespaceContextSchema,
|
|
26
19
|
})).min(1),
|
|
27
20
|
});
|
|
28
21
|
export const updateKeys = {
|
|
29
22
|
definition: {
|
|
30
23
|
name: "updateKeys",
|
|
31
|
-
description: "Update translations. Each entry updates ONE language for ONE key. Set s=true to update the source text.",
|
|
24
|
+
description: "Update translations for existing keys. REQUIRED: Get key UUIDs first via getAllTranslations or listKeys (id field). Each entry updates ONE language for ONE key. Set s=true to update the source text.",
|
|
32
25
|
inputSchema: {
|
|
33
26
|
type: "object",
|
|
34
27
|
properties: {
|
|
@@ -39,25 +32,13 @@ export const updateKeys = {
|
|
|
39
32
|
items: {
|
|
40
33
|
type: "object",
|
|
41
34
|
properties: {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
l: { type: "string", description: "Language code (e.g., 'en', 'tr', 'de')" },
|
|
35
|
+
id: { type: "string", description: "Translation key UUID (required). Get from getAllTranslations or listKeys response." },
|
|
36
|
+
l: { type: "string", description: "Language code (e.g., 'tr', 'de')" },
|
|
45
37
|
t: { type: "string", description: "Translation text" },
|
|
46
38
|
s: { type: "boolean", description: "true if updating source language text" },
|
|
47
39
|
st: { type: "string", description: "Translation status (e.g., 'approved')" },
|
|
48
|
-
nc: {
|
|
49
|
-
type: "object",
|
|
50
|
-
description: "Optional context for the namespace (description, team, domain, aiPrompt, tags). Applied once per namespace.",
|
|
51
|
-
properties: {
|
|
52
|
-
description: { type: "string", description: "What this namespace is about" },
|
|
53
|
-
team: { type: "string", description: "Team owning this namespace" },
|
|
54
|
-
domain: { type: "string", description: "Business domain (e.g., 'auth', 'billing')" },
|
|
55
|
-
aiPrompt: { type: "string", description: "Custom AI prompt for translations in this namespace" },
|
|
56
|
-
tags: { type: "array", items: { type: "string" }, description: "Tags for categorization" },
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
40
|
},
|
|
60
|
-
required: ["
|
|
41
|
+
required: ["id", "l", "t"],
|
|
61
42
|
},
|
|
62
43
|
},
|
|
63
44
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateKeys.js","sourceRoot":"","sources":["../../src/tools/updateKeys.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"updateKeys.js","sourceRoot":"","sources":["../../src/tools/updateKeys.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,CAAC,EAAE,CAAC,CAAC,KAAK,CACR,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oFAAoF,CAAC;QAC7G,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC1D,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC1C,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAC3E,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KAC5E,CAAC,CACH,CAAC,GAAG,CAAC,CAAC,CAAC;CACT,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,wMAAwM;QAC1M,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,oBAAoB;gBACvB,CAAC,EAAE;oBACD,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,4EAA4E;oBACzF,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oFAAoF,EAAE;4BACzH,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;4BACtE,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;4BACtD,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uCAAuC,EAAE;4BAC5E,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;yBAC7E;wBACD,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;qBAC3B;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC;SAC3B;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,WAAW,CACT,IAAI,EACJ,WAAW,EACX,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YAChD,OAAO,EAAE,WAAW;YACpB,WAAW;YACX,CAAC,EAAE,KAAK,CAAC,CAAC;SACX,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CACF;CACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@better-i18n/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"description": "MCP server for Better i18n translation management - AI-powered translation workflow for Cursor, Claude, and other AI assistants",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"prepublishOnly": "npm run clean && npm run build && chmod +x ./dist/index.js ./dist/http.js"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@better-i18n/mcp-types": "^0.
|
|
53
|
+
"@better-i18n/mcp-types": "^0.10.0",
|
|
54
54
|
"@modelcontextprotocol/sdk": "^1.25.3",
|
|
55
55
|
"@trpc/client": "^11.0.0",
|
|
56
56
|
"zod": "^3.25.1"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"addLanguage.d.ts","sourceRoot":"","sources":["../../src/tools/addLanguage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAM9C,eAAO,MAAM,WAAW,EAAE,IA+BzB,CAAC"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* addLanguage MCP Tool
|
|
3
|
-
*
|
|
4
|
-
* Adds a new target language to the project.
|
|
5
|
-
*/
|
|
6
|
-
import { z } from "zod";
|
|
7
|
-
import { executeTool, projectInputProperty, projectSchema, success, } from "../base-tool.js";
|
|
8
|
-
const inputSchema = projectSchema.extend({
|
|
9
|
-
languageCode: z.string().min(2).max(5),
|
|
10
|
-
});
|
|
11
|
-
export const addLanguage = {
|
|
12
|
-
definition: {
|
|
13
|
-
name: "addLanguage",
|
|
14
|
-
description: "Add a new target language to the project. Use ISO 639-1 codes (e.g. 'fr', 'ja', 'de', 'es').",
|
|
15
|
-
inputSchema: {
|
|
16
|
-
type: "object",
|
|
17
|
-
properties: {
|
|
18
|
-
...projectInputProperty,
|
|
19
|
-
languageCode: { type: "string" },
|
|
20
|
-
},
|
|
21
|
-
required: ["project", "languageCode"],
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
execute: (client, args) => executeTool(args, inputSchema, async (input, { workspaceId, projectSlug }) => {
|
|
25
|
-
const result = await client.mcp.addLanguage.mutate({
|
|
26
|
-
orgSlug: workspaceId,
|
|
27
|
-
projectSlug,
|
|
28
|
-
languageCode: input.languageCode,
|
|
29
|
-
});
|
|
30
|
-
return success({
|
|
31
|
-
success: result.success,
|
|
32
|
-
message: result.message,
|
|
33
|
-
languageCode: input.languageCode,
|
|
34
|
-
project: input.project,
|
|
35
|
-
alreadyExists: result.alreadyExists,
|
|
36
|
-
});
|
|
37
|
-
}),
|
|
38
|
-
};
|
|
39
|
-
//# sourceMappingURL=addLanguage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"addLanguage.js","sourceRoot":"","sources":["../../src/tools/addLanguage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAS;IAC/B,UAAU,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,8FAA8F;QAChG,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,oBAAoB;gBACvB,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACjC;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC;SACtC;KACF;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;QAC3E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC;YACjD,OAAO,EAAE,WAAW;YACpB,WAAW;YACX,YAAY,EAAE,KAAK,CAAC,YAAY;SACjC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;YACb,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC,CAAC,CAAC;IACL,CAAC,CAAC;CACL,CAAC"}
|