microcms-mcp-server 0.8.0 → 0.9.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 +142 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +112 -25
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +117 -28
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +293 -48
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +24 -5
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +146 -2
- package/dist/config.js.map +1 -1
- package/dist/index.js +31 -2
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +8 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +183 -153
- package/dist/server.js.map +1 -1
- package/dist/tools/create-content-draft.d.ts +2 -2
- package/dist/tools/create-content-draft.d.ts.map +1 -1
- package/dist/tools/create-content-draft.js +7 -3
- package/dist/tools/create-content-draft.js.map +1 -1
- package/dist/tools/create-content-published.d.ts +2 -2
- package/dist/tools/create-content-published.d.ts.map +1 -1
- package/dist/tools/create-content-published.js +7 -3
- package/dist/tools/create-content-published.js.map +1 -1
- package/dist/tools/create-contents-bulk.d.ts +4 -4
- package/dist/tools/create-contents-bulk.d.ts.map +1 -1
- package/dist/tools/create-contents-bulk.js +14 -6
- package/dist/tools/create-contents-bulk.js.map +1 -1
- package/dist/tools/delete-content.d.ts +2 -2
- package/dist/tools/delete-content.d.ts.map +1 -1
- package/dist/tools/delete-content.js +6 -2
- package/dist/tools/delete-content.js.map +1 -1
- package/dist/tools/delete-media.d.ts +2 -2
- package/dist/tools/delete-media.d.ts.map +1 -1
- package/dist/tools/delete-media.js +6 -2
- package/dist/tools/delete-media.js.map +1 -1
- package/dist/tools/get-api-info.d.ts +2 -2
- package/dist/tools/get-api-info.d.ts.map +1 -1
- package/dist/tools/get-api-info.js +6 -2
- package/dist/tools/get-api-info.js.map +1 -1
- package/dist/tools/get-apis-list.d.ts +2 -2
- package/dist/tools/get-apis-list.d.ts.map +1 -1
- package/dist/tools/get-apis-list.js +9 -4
- package/dist/tools/get-apis-list.js.map +1 -1
- package/dist/tools/get-content-meta.d.ts +2 -2
- package/dist/tools/get-content-meta.d.ts.map +1 -1
- package/dist/tools/get-content-meta.js +6 -2
- package/dist/tools/get-content-meta.js.map +1 -1
- package/dist/tools/get-content.d.ts +2 -2
- package/dist/tools/get-content.d.ts.map +1 -1
- package/dist/tools/get-content.js +6 -2
- package/dist/tools/get-content.js.map +1 -1
- package/dist/tools/get-list-meta.d.ts +2 -2
- package/dist/tools/get-list-meta.d.ts.map +1 -1
- package/dist/tools/get-list-meta.js +6 -2
- package/dist/tools/get-list-meta.js.map +1 -1
- package/dist/tools/get-list.d.ts +2 -2
- package/dist/tools/get-list.d.ts.map +1 -1
- package/dist/tools/get-list.js +6 -2
- package/dist/tools/get-list.js.map +1 -1
- package/dist/tools/get-media.d.ts +2 -2
- package/dist/tools/get-media.d.ts.map +1 -1
- package/dist/tools/get-media.js +9 -4
- package/dist/tools/get-media.js.map +1 -1
- package/dist/tools/get-member.d.ts +2 -2
- package/dist/tools/get-member.d.ts.map +1 -1
- package/dist/tools/get-member.js +6 -2
- package/dist/tools/get-member.js.map +1 -1
- package/dist/tools/get-services.d.ts +19 -0
- package/dist/tools/get-services.d.ts.map +1 -0
- package/dist/tools/get-services.js +48 -0
- package/dist/tools/get-services.js.map +1 -0
- package/dist/tools/patch-content-created-by.d.ts +2 -2
- package/dist/tools/patch-content-created-by.d.ts.map +1 -1
- package/dist/tools/patch-content-created-by.js +10 -3
- package/dist/tools/patch-content-created-by.js.map +1 -1
- package/dist/tools/patch-content-status.d.ts +2 -2
- package/dist/tools/patch-content-status.d.ts.map +1 -1
- package/dist/tools/patch-content-status.js +6 -2
- package/dist/tools/patch-content-status.js.map +1 -1
- package/dist/tools/patch-content.d.ts +2 -2
- package/dist/tools/patch-content.d.ts.map +1 -1
- package/dist/tools/patch-content.js +8 -3
- package/dist/tools/patch-content.js.map +1 -1
- package/dist/tools/update-content-draft.d.ts +2 -2
- package/dist/tools/update-content-draft.d.ts.map +1 -1
- package/dist/tools/update-content-draft.js +7 -3
- package/dist/tools/update-content-draft.js.map +1 -1
- package/dist/tools/update-content-published.d.ts +2 -2
- package/dist/tools/update-content-published.d.ts.map +1 -1
- package/dist/tools/update-content-published.js +7 -3
- package/dist/tools/update-content-published.js.map +1 -1
- package/dist/tools/upload-media.d.ts +2 -2
- package/dist/tools/upload-media.d.ts.map +1 -1
- package/dist/tools/upload-media.js +12 -6
- package/dist/tools/upload-media.js.map +1 -1
- package/dist/transport/http.d.ts +4 -0
- package/dist/transport/http.d.ts.map +1 -0
- package/dist/transport/http.js +63 -0
- package/dist/transport/http.js.map +1 -0
- package/dist/transport/index.d.ts +4 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +12 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/stdio.d.ts +3 -0
- package/dist/transport/stdio.d.ts.map +1 -0
- package/dist/transport/stdio.js +6 -0
- package/dist/transport/stdio.js.map +1 -0
- package/dist/types.d.ts +78 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +11 -8
- package/dist/tools/get-contents-list-management.d.ts +0 -5
- package/dist/tools/get-contents-list-management.d.ts.map +0 -1
- package/dist/tools/get-contents-list-management.js +0 -39
- package/dist/tools/get-contents-list-management.js.map +0 -1
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { bearerAuth, StreamableHTTPTransport } from '@hono/mcp';
|
|
2
|
+
import { serve } from '@hono/node-server';
|
|
3
|
+
import { Hono } from 'hono';
|
|
4
|
+
import { cors } from 'hono/cors';
|
|
5
|
+
export async function startHttpTransport(serverFactory, config) {
|
|
6
|
+
const app = new Hono();
|
|
7
|
+
// CORS
|
|
8
|
+
app.use('/mcp', cors());
|
|
9
|
+
// Bearer token auth (only if configured)
|
|
10
|
+
if (config.auth.enabled && config.auth.bearerToken) {
|
|
11
|
+
app.use('/mcp', bearerAuth({ token: config.auth.bearerToken }));
|
|
12
|
+
}
|
|
13
|
+
// Health check
|
|
14
|
+
app.get('/health', (c) => c.json({ status: 'ok' }));
|
|
15
|
+
// Session management for stateful mode
|
|
16
|
+
const activeSessions = new Map();
|
|
17
|
+
const sessionLastAccess = new Map();
|
|
18
|
+
// Session timeout: clean up abandoned sessions (30 minutes)
|
|
19
|
+
const SESSION_TIMEOUT_MS = 30 * 60 * 1000;
|
|
20
|
+
const cleanupInterval = setInterval(() => {
|
|
21
|
+
const now = Date.now();
|
|
22
|
+
for (const [sessionId, lastAccess] of sessionLastAccess) {
|
|
23
|
+
if (now - lastAccess > SESSION_TIMEOUT_MS) {
|
|
24
|
+
activeSessions.delete(sessionId);
|
|
25
|
+
sessionLastAccess.delete(sessionId);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}, 60 * 1000);
|
|
29
|
+
cleanupInterval.unref();
|
|
30
|
+
// MCP endpoint (stateful: session management)
|
|
31
|
+
app.all('/mcp', async (c) => {
|
|
32
|
+
const sessionId = c.req.header('mcp-session-id');
|
|
33
|
+
// Route to existing session
|
|
34
|
+
if (sessionId) {
|
|
35
|
+
const existingTransport = activeSessions.get(sessionId);
|
|
36
|
+
if (existingTransport) {
|
|
37
|
+
sessionLastAccess.set(sessionId, Date.now());
|
|
38
|
+
return existingTransport.handleRequest(c);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Create new session
|
|
42
|
+
const transport = new StreamableHTTPTransport({
|
|
43
|
+
sessionIdGenerator: () => crypto.randomUUID(),
|
|
44
|
+
onsessioninitialized: (newSessionId) => {
|
|
45
|
+
activeSessions.set(newSessionId, transport);
|
|
46
|
+
sessionLastAccess.set(newSessionId, Date.now());
|
|
47
|
+
},
|
|
48
|
+
onsessionclosed: (closedSessionId) => {
|
|
49
|
+
activeSessions.delete(closedSessionId);
|
|
50
|
+
sessionLastAccess.delete(closedSessionId);
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
const server = serverFactory();
|
|
54
|
+
await server.connect(transport);
|
|
55
|
+
return transport.handleRequest(c);
|
|
56
|
+
});
|
|
57
|
+
const { host, port } = config.transport;
|
|
58
|
+
serve({ fetch: app.fetch, hostname: host, port }, (info) => {
|
|
59
|
+
// biome-ignore lint/suspicious/noConsole: intentional server startup log to stderr
|
|
60
|
+
console.error(`microCMS MCP Server (HTTP) listening on http://${info.address}:${info.port}/mcp`);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,MAAM,EAC3B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAOf"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { startHttpTransport } from './http.js';
|
|
2
|
+
import { startStdioTransport } from './stdio.js';
|
|
3
|
+
export async function startTransport(serverFactory, config) {
|
|
4
|
+
if (config.transport.mode === 'http') {
|
|
5
|
+
await startHttpTransport(serverFactory, config);
|
|
6
|
+
}
|
|
7
|
+
else {
|
|
8
|
+
const server = serverFactory();
|
|
9
|
+
await startStdioTransport(server);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,aAA2B,EAC3B,MAAqB;IAErB,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACrC,MAAM,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../src/transport/stdio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGxE,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/transport/stdio.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAc;IACtD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,37 @@
|
|
|
1
|
+
export interface ServiceConfig {
|
|
2
|
+
id: string;
|
|
3
|
+
apiKey: string;
|
|
4
|
+
}
|
|
5
|
+
export type ConfigMode = 'single' | 'multi';
|
|
6
|
+
export interface SingleServiceConfig {
|
|
7
|
+
mode: 'single';
|
|
8
|
+
serviceDomain: string;
|
|
9
|
+
apiKey: string;
|
|
10
|
+
}
|
|
11
|
+
export interface MultiServiceConfig {
|
|
12
|
+
mode: 'multi';
|
|
13
|
+
services: ServiceConfig[];
|
|
14
|
+
}
|
|
15
|
+
export type AppConfig = SingleServiceConfig | MultiServiceConfig;
|
|
16
|
+
export type TransportMode = 'stdio' | 'http';
|
|
17
|
+
export interface TransportConfig {
|
|
18
|
+
mode: TransportMode;
|
|
19
|
+
host: string;
|
|
20
|
+
port: number;
|
|
21
|
+
}
|
|
22
|
+
export interface AuthConfig {
|
|
23
|
+
enabled: boolean;
|
|
24
|
+
bearerToken?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface ServiceInfo {
|
|
27
|
+
id: string;
|
|
28
|
+
name: string;
|
|
29
|
+
}
|
|
30
|
+
export interface FullAppConfig {
|
|
31
|
+
services: AppConfig;
|
|
32
|
+
transport: TransportConfig;
|
|
33
|
+
auth: AuthConfig;
|
|
34
|
+
}
|
|
1
35
|
export interface MicroCMSListOptions {
|
|
2
36
|
draftKey?: string;
|
|
3
37
|
limit?: number;
|
|
@@ -27,7 +61,7 @@ export interface MicroCMSContent {
|
|
|
27
61
|
updatedAt: string;
|
|
28
62
|
publishedAt?: string;
|
|
29
63
|
revisedAt?: string;
|
|
30
|
-
[key: string]:
|
|
64
|
+
[key: string]: unknown;
|
|
31
65
|
}
|
|
32
66
|
export interface MicroCMSListResponse<T = MicroCMSContent> {
|
|
33
67
|
contents: T[];
|
|
@@ -51,7 +85,7 @@ export interface MemberInfo {
|
|
|
51
85
|
export interface ToolParameters {
|
|
52
86
|
endpoint: string;
|
|
53
87
|
contentId?: string;
|
|
54
|
-
content?: Record<string,
|
|
88
|
+
content?: Record<string, unknown>;
|
|
55
89
|
draftKey?: string;
|
|
56
90
|
limit?: number;
|
|
57
91
|
offset?: number;
|
|
@@ -101,4 +135,46 @@ export interface BulkToolParameters {
|
|
|
101
135
|
endpoint: string;
|
|
102
136
|
contents: BulkCreateItem[];
|
|
103
137
|
}
|
|
138
|
+
export interface ApiInfo {
|
|
139
|
+
apiName: string;
|
|
140
|
+
apiEndpoint: string;
|
|
141
|
+
apiType: string[];
|
|
142
|
+
apiFields: unknown[];
|
|
143
|
+
customFields?: unknown[];
|
|
144
|
+
}
|
|
145
|
+
export interface ApiListResponse {
|
|
146
|
+
apis: ApiInfo[];
|
|
147
|
+
}
|
|
148
|
+
export interface ContentMeta {
|
|
149
|
+
id: string;
|
|
150
|
+
status: string[];
|
|
151
|
+
createdBy?: string;
|
|
152
|
+
updatedBy?: string;
|
|
153
|
+
reservationTime?: string | null;
|
|
154
|
+
closedAt?: string | null;
|
|
155
|
+
customStatus?: unknown;
|
|
156
|
+
[key: string]: unknown;
|
|
157
|
+
}
|
|
158
|
+
export interface ContentMetaListResponse {
|
|
159
|
+
contents: ContentMeta[];
|
|
160
|
+
totalCount: number;
|
|
161
|
+
offset: number;
|
|
162
|
+
limit: number;
|
|
163
|
+
}
|
|
164
|
+
export interface MediaItem {
|
|
165
|
+
url: string;
|
|
166
|
+
width?: number;
|
|
167
|
+
height?: number;
|
|
168
|
+
fileName?: string;
|
|
169
|
+
fileSize?: number;
|
|
170
|
+
mimeType?: string;
|
|
171
|
+
createdAt: string;
|
|
172
|
+
}
|
|
173
|
+
export interface MediaListResponse {
|
|
174
|
+
media: MediaItem[];
|
|
175
|
+
token?: string;
|
|
176
|
+
}
|
|
177
|
+
export interface MediaUploadResponse {
|
|
178
|
+
url: string;
|
|
179
|
+
}
|
|
104
180
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "microcms-mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "microCMS MCP Bundle - microCMSのコンテンツAPIやマネジメントAPIを利用し、LLMからコンテンツ管理ができるMCP Bundle",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -16,10 +16,13 @@
|
|
|
16
16
|
"scripts": {
|
|
17
17
|
"build": "tsc",
|
|
18
18
|
"start": "node dist/index.js",
|
|
19
|
+
"start:http": "node dist/index.js --transport http",
|
|
19
20
|
"start:args": "node dist/index.js --service-id your-service-id --api-key your-api-key",
|
|
20
21
|
"dev": "tsc --watch & node --watch dist/index.js",
|
|
21
|
-
"lint": "
|
|
22
|
-
"format": "
|
|
22
|
+
"lint": "biome lint src/",
|
|
23
|
+
"format": "biome format --write src/",
|
|
24
|
+
"check": "biome check src/",
|
|
25
|
+
"check:fix": "biome check --write src/",
|
|
23
26
|
"prepublishOnly": "npm run build",
|
|
24
27
|
"test": "echo \"No tests specified\" && exit 0"
|
|
25
28
|
},
|
|
@@ -48,15 +51,15 @@
|
|
|
48
51
|
"homepage": "https://github.com/microcmsio/microcms-mcp-server#readme",
|
|
49
52
|
"license": "MIT",
|
|
50
53
|
"dependencies": {
|
|
51
|
-
"@
|
|
54
|
+
"@hono/mcp": "^0.2.3",
|
|
55
|
+
"@hono/node-server": "^1.19.9",
|
|
56
|
+
"@modelcontextprotocol/sdk": "^1.27.0",
|
|
57
|
+
"hono": "^4.12.0",
|
|
52
58
|
"microcms-js-sdk": "^3.1.2"
|
|
53
59
|
},
|
|
54
60
|
"devDependencies": {
|
|
61
|
+
"@biomejs/biome": "2.3.4",
|
|
55
62
|
"@types/node": "^20.0.0",
|
|
56
|
-
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
|
57
|
-
"@typescript-eslint/parser": "^6.0.0",
|
|
58
|
-
"eslint": "^8.0.0",
|
|
59
|
-
"prettier": "^3.0.0",
|
|
60
63
|
"typescript": "^5.0.0"
|
|
61
64
|
},
|
|
62
65
|
"engines": {
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
-
import type { ToolParameters } from '../types.js';
|
|
3
|
-
export declare const getListMetaTool: Tool;
|
|
4
|
-
export declare function handleGetListMeta(params: ToolParameters): Promise<any>;
|
|
5
|
-
//# sourceMappingURL=get-contents-list-management.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-contents-list-management.d.ts","sourceRoot":"","sources":["../../src/tools/get-contents-list-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,eAAe,EAAE,IAwB7B,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,cAAc,gBAY7D"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { getListMeta } from '../client.js';
|
|
2
|
-
export const getListMetaTool = {
|
|
3
|
-
name: 'microcms_get_list_meta',
|
|
4
|
-
description: 'Get a list of contents with metadata from microCMS Management API. IMPORTANT: Use this tool ONLY when the user message contains "メタ" (meta) or "メタ情報" (metadata). This API returns metadata information such as status, createdBy, updatedBy, reservationTime, closedAt, and customStatus that are not available in the regular content API. For regular content retrieval, use microcms_get_list instead.',
|
|
5
|
-
inputSchema: {
|
|
6
|
-
type: 'object',
|
|
7
|
-
properties: {
|
|
8
|
-
endpoint: {
|
|
9
|
-
type: 'string',
|
|
10
|
-
description: 'Content type name (e.g., "blogs", "news")',
|
|
11
|
-
},
|
|
12
|
-
limit: {
|
|
13
|
-
type: 'number',
|
|
14
|
-
description: 'Number of contents to retrieve (default: 10, max: 100)',
|
|
15
|
-
minimum: 1,
|
|
16
|
-
maximum: 100,
|
|
17
|
-
},
|
|
18
|
-
offset: {
|
|
19
|
-
type: 'number',
|
|
20
|
-
description: 'Offset for pagination (default: 0)',
|
|
21
|
-
minimum: 0,
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
required: ['endpoint'],
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
export async function handleGetListMeta(params) {
|
|
28
|
-
const { endpoint, limit, offset } = params;
|
|
29
|
-
if (!endpoint) {
|
|
30
|
-
throw new Error('endpoint is required');
|
|
31
|
-
}
|
|
32
|
-
const options = {};
|
|
33
|
-
if (limit !== undefined)
|
|
34
|
-
options.limit = limit;
|
|
35
|
-
if (offset !== undefined)
|
|
36
|
-
options.offset = offset;
|
|
37
|
-
return await getListMeta(endpoint, options);
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=get-contents-list-management.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-contents-list-management.js","sourceRoot":"","sources":["../../src/tools/get-contents-list-management.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,CAAC,MAAM,eAAe,GAAS;IACjC,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,4YAA4Y;IACzZ,WAAW,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,QAAQ,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2CAA2C;aAC3D;YACD,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wDAAwD;gBACrE,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,GAAG;aACf;YACD,MAAM,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oCAAoC;gBACjD,OAAO,EAAE,CAAC;aACb;SACJ;QACD,QAAQ,EAAE,CAAC,UAAU,CAAC;KACzB;CACJ,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAsB;IAC1D,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAE3C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,OAAO,GAAwC,EAAE,CAAC;IACxD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IAC/C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAElD,OAAO,MAAM,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC"}
|