@sebastienrousseau/cloudcdn-mcp 0.1.1
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/LICENSE-APACHE +190 -0
- package/LICENSE-MIT +21 -0
- package/README.md +306 -0
- package/index.js +23 -0
- package/lib/api-client.js +195 -0
- package/lib/resources/index.js +134 -0
- package/lib/tools/account.js +135 -0
- package/lib/tools/ai.js +148 -0
- package/lib/tools/assets.js +66 -0
- package/lib/tools/core.js +109 -0
- package/lib/tools/delivery.js +127 -0
- package/lib/tools/insights.js +96 -0
- package/lib/tools/logs.js +34 -0
- package/lib/tools/storage.js +71 -0
- package/lib/tools/tokens.js +57 -0
- package/lib/tools/webhooks.js +59 -0
- package/package.json +73 -0
- package/server.js +87 -0
package/server.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CloudCDN MCP server definition.
|
|
3
|
+
*
|
|
4
|
+
* Wires every tool and resource registration into an `McpServer` instance.
|
|
5
|
+
* The result is a fully configured server that the entry point (or any
|
|
6
|
+
* embedder) just needs to `.connect(transport)`.
|
|
7
|
+
*
|
|
8
|
+
* Registers 42 tools across 9 API planes + 6 read-only resources:
|
|
9
|
+
*
|
|
10
|
+
* Storage (4) storage_list / upload / delete / batch_upload
|
|
11
|
+
* Core (8) statistics_summary, zone_(list|get|create|delete),
|
|
12
|
+
* domain_add, rules_(get|update)
|
|
13
|
+
* Assets (3) assets_list, asset_metadata_get, assets_search
|
|
14
|
+
* Insights (6) insights_summary / top_assets / geography / errors /
|
|
15
|
+
* asset, audit_logs
|
|
16
|
+
* Delivery (5) transform_image, cache_purge, signed_url_generate,
|
|
17
|
+
* stream_playlist, pipeline_ingest
|
|
18
|
+
* AI (9) semantic_search, health_check, generate_alt_text,
|
|
19
|
+
* smart_crop, moderate_image, placeholder_lqip,
|
|
20
|
+
* placeholder_blurhash, chat_ask, remove_background
|
|
21
|
+
* Webhooks (3) webhook_(list|create|delete)
|
|
22
|
+
* Tokens (3) token_(list|create|revoke)
|
|
23
|
+
* Logs (1) logs_query
|
|
24
|
+
*
|
|
25
|
+
* Resources (6) manifest, zones, rules, health, openapi, insights-today
|
|
26
|
+
*
|
|
27
|
+
* Each tool maps to a CloudCDN HTTP endpoint via the shared API client.
|
|
28
|
+
*
|
|
29
|
+
* @module @sebastienrousseau/cloudcdn-mcp/server
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
import { createRequire } from 'node:module';
|
|
33
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
34
|
+
import { z } from 'zod';
|
|
35
|
+
|
|
36
|
+
import { registerStorageTools } from './lib/tools/storage.js';
|
|
37
|
+
import { registerCoreTools } from './lib/tools/core.js';
|
|
38
|
+
import { registerAssetsTools } from './lib/tools/assets.js';
|
|
39
|
+
import { registerInsightsTools } from './lib/tools/insights.js';
|
|
40
|
+
import { registerDeliveryTools } from './lib/tools/delivery.js';
|
|
41
|
+
import { registerAiTools } from './lib/tools/ai.js';
|
|
42
|
+
import { registerWebhookTools } from './lib/tools/webhooks.js';
|
|
43
|
+
import { registerTokenTools } from './lib/tools/tokens.js';
|
|
44
|
+
import { registerLogTools } from './lib/tools/logs.js';
|
|
45
|
+
import { registerAccountTools } from './lib/tools/account.js';
|
|
46
|
+
import { registerResources } from './lib/resources/index.js';
|
|
47
|
+
|
|
48
|
+
// Report the published package version to MCP clients, so it cannot
|
|
49
|
+
// drift from package.json.
|
|
50
|
+
const { version } = createRequire(import.meta.url)('./package.json');
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Build a fully-wired MCP server with every CloudCDN tool and resource
|
|
54
|
+
* registered. The caller is responsible for attaching a transport
|
|
55
|
+
* (`stdio`, Streamable HTTP, SSE, …) and calling `.connect()`.
|
|
56
|
+
*
|
|
57
|
+
* @returns {InstanceType<typeof McpServer>} A configured MCP server.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
61
|
+
* import { createServer } from '@sebastienrousseau/cloudcdn-mcp/server';
|
|
62
|
+
*
|
|
63
|
+
* const server = createServer();
|
|
64
|
+
* await server.connect(new StdioServerTransport());
|
|
65
|
+
*/
|
|
66
|
+
export function createServer() {
|
|
67
|
+
const server = new McpServer({
|
|
68
|
+
name: 'cloudcdn',
|
|
69
|
+
version,
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
registerStorageTools(server);
|
|
73
|
+
registerCoreTools(server);
|
|
74
|
+
registerAssetsTools(server);
|
|
75
|
+
registerInsightsTools(server);
|
|
76
|
+
registerDeliveryTools(server);
|
|
77
|
+
registerAiTools(server);
|
|
78
|
+
registerWebhookTools(server);
|
|
79
|
+
registerTokenTools(server);
|
|
80
|
+
registerLogTools(server);
|
|
81
|
+
registerAccountTools(server);
|
|
82
|
+
registerResources(server);
|
|
83
|
+
|
|
84
|
+
return server;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export { z };
|