@mybe/contensa-mcp 1.0.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 +765 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +35 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +150 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +480 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +9 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +173 -0
- package/dist/server.js.map +1 -0
- package/dist/tools.d.ts +409 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +626 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +136 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +39 -0
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// CLI entry point for Contensa MCP Server
|
|
3
|
+
import { ContensaMCPServer } from "./server.js";
|
|
4
|
+
async function main() {
|
|
5
|
+
// Get configuration from environment variables
|
|
6
|
+
const apiKey = process.env.CONTENSA_API_KEY;
|
|
7
|
+
const baseUrl = process.env.CONTENSA_BASE_URL;
|
|
8
|
+
const projectId = process.env.CONTENSA_PROJECT_ID;
|
|
9
|
+
const userId = process.env.CONTENSA_USER_ID;
|
|
10
|
+
if (!apiKey) {
|
|
11
|
+
console.error("Error: CONTENSA_API_KEY environment variable is required");
|
|
12
|
+
console.error("");
|
|
13
|
+
console.error("Usage:");
|
|
14
|
+
console.error(" CONTENSA_API_KEY=your-api-key CONTENSA_USER_ID=your-user-id contensa-mcp");
|
|
15
|
+
console.error("");
|
|
16
|
+
console.error("Environment variables:");
|
|
17
|
+
console.error(" CONTENSA_API_KEY - Your Contensa API key (required)");
|
|
18
|
+
console.error(" CONTENSA_USER_ID - Your user ID (required for content operations)");
|
|
19
|
+
console.error(" CONTENSA_BASE_URL - API base URL (optional)");
|
|
20
|
+
console.error(" CONTENSA_PROJECT_ID - Default project ID (optional)");
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
const server = new ContensaMCPServer({
|
|
24
|
+
apiKey,
|
|
25
|
+
baseUrl,
|
|
26
|
+
projectId,
|
|
27
|
+
userId,
|
|
28
|
+
});
|
|
29
|
+
await server.start();
|
|
30
|
+
}
|
|
31
|
+
main().catch((error) => {
|
|
32
|
+
console.error("Fatal error:", error);
|
|
33
|
+
process.exit(1);
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,0CAA0C;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,KAAK,UAAU,IAAI;IACjB,+CAA+C;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAClD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAE5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAC5F,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC3E,OAAO,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;QACzF,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClE,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC;QACnC,MAAM;QACN,OAAO;QACP,SAAS;QACT,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import type { ContensaConfig, ContentType, ContentField, ContentEntry, MediaAsset, Project, Environment, ListResponse, CreateContentTypeInput, CreateFieldInput, UpdateFieldInput, CreateContentEntryInput, UpdateContentEntryInput, LocaleConfig, CreateLocaleVariantInput, LocaleVariantResponse } from "./types.js";
|
|
2
|
+
export declare const SUPPORTED_LOCALES: LocaleConfig[];
|
|
3
|
+
export declare class ContensaClient {
|
|
4
|
+
private apiKey;
|
|
5
|
+
private baseUrl;
|
|
6
|
+
private projectId?;
|
|
7
|
+
private environmentId?;
|
|
8
|
+
private userId?;
|
|
9
|
+
constructor(config: ContensaConfig);
|
|
10
|
+
private request;
|
|
11
|
+
setProjectId(projectId: string): void;
|
|
12
|
+
getProjectId(): string | undefined;
|
|
13
|
+
setEnvironmentId(environmentId: string): void;
|
|
14
|
+
getEnvironmentId(): string | undefined;
|
|
15
|
+
getProjects(): Promise<Project[]>;
|
|
16
|
+
getProject(projectId: string): Promise<Project>;
|
|
17
|
+
getContentTypes(projectId?: string): Promise<ContentType[]>;
|
|
18
|
+
getContentType(contentTypeId: string): Promise<ContentType>;
|
|
19
|
+
createContentType(input: CreateContentTypeInput, projectId?: string): Promise<ContentType>;
|
|
20
|
+
updateContentType(contentTypeId: string, input: Partial<CreateContentTypeInput>): Promise<ContentType>;
|
|
21
|
+
deleteContentType(contentTypeId: string): Promise<void>;
|
|
22
|
+
getFields(contentTypeId: string): Promise<ContentField[]>;
|
|
23
|
+
createField(input: CreateFieldInput): Promise<ContentField>;
|
|
24
|
+
updateField(fieldId: string, input: UpdateFieldInput): Promise<ContentField>;
|
|
25
|
+
deleteField(fieldId: string): Promise<void>;
|
|
26
|
+
getContentEntries(contentTypeId: string, options?: {
|
|
27
|
+
status?: string;
|
|
28
|
+
limit?: number;
|
|
29
|
+
lastKey?: string;
|
|
30
|
+
}): Promise<ListResponse<ContentEntry>>;
|
|
31
|
+
getContentEntry(entryId: string): Promise<ContentEntry>;
|
|
32
|
+
createContentEntry(input: CreateContentEntryInput): Promise<ContentEntry>;
|
|
33
|
+
updateContentEntry(entryId: string, input: UpdateContentEntryInput): Promise<ContentEntry>;
|
|
34
|
+
deleteContentEntry(entryId: string): Promise<void>;
|
|
35
|
+
publishContentEntry(entryId: string): Promise<ContentEntry>;
|
|
36
|
+
unpublishContentEntry(entryId: string): Promise<ContentEntry>;
|
|
37
|
+
getMediaAssets(projectId?: string): Promise<MediaAsset[]>;
|
|
38
|
+
getMediaAsset(assetId: string): Promise<MediaAsset>;
|
|
39
|
+
deleteMediaAsset(assetId: string): Promise<void>;
|
|
40
|
+
generateFieldSuggestions(contentTypeName: string, existingFields?: Array<{
|
|
41
|
+
apiName: string;
|
|
42
|
+
kind: string;
|
|
43
|
+
}>): Promise<Array<{
|
|
44
|
+
apiName: string;
|
|
45
|
+
kind: string;
|
|
46
|
+
required?: boolean;
|
|
47
|
+
}>>;
|
|
48
|
+
generateSchema(description: string): Promise<Array<{
|
|
49
|
+
apiName: string;
|
|
50
|
+
kind: string;
|
|
51
|
+
required?: boolean;
|
|
52
|
+
}>>;
|
|
53
|
+
getEnvironments(projectId?: string): Promise<Environment[]>;
|
|
54
|
+
getEnvironment(environmentId: string): Promise<Environment>;
|
|
55
|
+
createEnvironment(input: {
|
|
56
|
+
name: string;
|
|
57
|
+
slug: string;
|
|
58
|
+
description?: string;
|
|
59
|
+
sourceEnvironmentId?: string;
|
|
60
|
+
projectId?: string;
|
|
61
|
+
}): Promise<Environment>;
|
|
62
|
+
updateEnvironment(environmentId: string, input: {
|
|
63
|
+
name?: string;
|
|
64
|
+
description?: string;
|
|
65
|
+
status?: "active" | "inactive";
|
|
66
|
+
}): Promise<Environment>;
|
|
67
|
+
deleteEnvironment(environmentId: string): Promise<void>;
|
|
68
|
+
mergeEnvironment(input: {
|
|
69
|
+
targetEnvironmentId: string;
|
|
70
|
+
sourceEnvironmentId: string;
|
|
71
|
+
dryRun?: boolean;
|
|
72
|
+
defaultStrategy?: "replace" | "skip" | "merge" | "create-new";
|
|
73
|
+
contentTypeResolutions?: Array<{
|
|
74
|
+
contentTypeId: string;
|
|
75
|
+
strategy: "replace" | "skip" | "merge" | "create-new";
|
|
76
|
+
}>;
|
|
77
|
+
entryResolutions?: Array<{
|
|
78
|
+
entryId: string;
|
|
79
|
+
fieldName: string;
|
|
80
|
+
strategy: "replace" | "skip" | "merge" | "create-new";
|
|
81
|
+
}>;
|
|
82
|
+
requireMasterApproval?: boolean;
|
|
83
|
+
}): Promise<{
|
|
84
|
+
success: boolean;
|
|
85
|
+
data: {
|
|
86
|
+
contentTypesMerged: number;
|
|
87
|
+
entriesMerged: number;
|
|
88
|
+
conflictsResolved: number;
|
|
89
|
+
conflictsSkipped: number;
|
|
90
|
+
conflicts?: Array<{
|
|
91
|
+
type: string;
|
|
92
|
+
id: string;
|
|
93
|
+
message: string;
|
|
94
|
+
}>;
|
|
95
|
+
errors: Array<{
|
|
96
|
+
type: string;
|
|
97
|
+
id: string;
|
|
98
|
+
message: string;
|
|
99
|
+
}>;
|
|
100
|
+
};
|
|
101
|
+
isDryRun: boolean;
|
|
102
|
+
}>;
|
|
103
|
+
syncEnvironment(input: {
|
|
104
|
+
targetEnvironmentId: string;
|
|
105
|
+
sourceEnvironmentId: string;
|
|
106
|
+
}): Promise<{
|
|
107
|
+
success: boolean;
|
|
108
|
+
message: string;
|
|
109
|
+
}>;
|
|
110
|
+
/**
|
|
111
|
+
* Get all supported locales in the system
|
|
112
|
+
*/
|
|
113
|
+
getSupportedLocales(): LocaleConfig[];
|
|
114
|
+
/**
|
|
115
|
+
* Get all locale variants of a content entry
|
|
116
|
+
*/
|
|
117
|
+
listLocaleVariants(entryId: string): Promise<ContentEntry[]>;
|
|
118
|
+
/**
|
|
119
|
+
* Create a new locale variant of a content entry
|
|
120
|
+
*
|
|
121
|
+
* @param input - Locale variant creation options
|
|
122
|
+
* @param input.entryId - ID of the entry to create a variant for
|
|
123
|
+
* @param input.locale - Target locale code (e.g., "fr-FR", "es-ES")
|
|
124
|
+
* @param input.translateContent - Whether to use AI to translate content (REQUIRED - must be explicitly set)
|
|
125
|
+
* @param input.translateReferences - Whether to recursively create locale variants for referenced entries (REQUIRED - must be explicitly set)
|
|
126
|
+
* @param input.userId - User ID for the operation (optional, uses config userId if not provided)
|
|
127
|
+
*
|
|
128
|
+
* @returns The created locale variant and list of all created entries (if translateReferences was true)
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* // Create a French variant with AI translation
|
|
132
|
+
* const variant = await client.createLocaleVariant({
|
|
133
|
+
* entryId: "entry-123",
|
|
134
|
+
* locale: "fr-FR",
|
|
135
|
+
* translateContent: true,
|
|
136
|
+
* translateReferences: false
|
|
137
|
+
* });
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* // Create a Spanish variant without translation
|
|
141
|
+
* const variant = await client.createLocaleVariant({
|
|
142
|
+
* entryId: "entry-123",
|
|
143
|
+
* locale: "es-ES",
|
|
144
|
+
* translateContent: false,
|
|
145
|
+
* translateReferences: false
|
|
146
|
+
* });
|
|
147
|
+
*/
|
|
148
|
+
createLocaleVariant(input: CreateLocaleVariantInput): Promise<LocaleVariantResponse>;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|