@atray/mcp 1.0.0 → 1.0.2
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 +3 -1
- package/package.json +1 -1
- package/src/index.js +3 -18
- package/src/tools.js +0 -49
package/README.md
CHANGED
|
@@ -59,11 +59,13 @@ Restart the client and the ATRAY tools become available.
|
|
|
59
59
|
| `listPosts` / `createPost` / `getPost` / `updatePost` | Manage posts (text and carousel). |
|
|
60
60
|
| `regeneratePostText` / `regeneratePostImage` | Regenerate caption or image with AI. |
|
|
61
61
|
| `uploadPostVideo` | Upload a video (mp4/mov/webm, up to 120 MB) as the post media; published to Instagram as a Reel. |
|
|
62
|
-
| `listApiKeys` / `createApiKey` / `updateApiKey` / `revokeApiKey` | Manage your API keys. |
|
|
63
62
|
|
|
64
63
|
Each AI-generated post consumes 1 content credit from your plan. Creating a campaign
|
|
65
64
|
requires a completed brand profile.
|
|
66
65
|
|
|
66
|
+
> API keys are created and managed in the Studio (**Settings → API keys**), not through
|
|
67
|
+
> the API/MCP.
|
|
68
|
+
|
|
67
69
|
## API reference
|
|
68
70
|
|
|
69
71
|
Full interactive REST reference (Swagger): <https://api.atray.app/docs/>
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -10,7 +10,7 @@ import { tools } from './tools.js';
|
|
|
10
10
|
import { api } from './api.js';
|
|
11
11
|
|
|
12
12
|
const server = new Server(
|
|
13
|
-
{ name: 'atray-mcp', version: '1.0.
|
|
13
|
+
{ name: 'atray-mcp', version: '1.0.2' },
|
|
14
14
|
{ capabilities: { tools: {} } }
|
|
15
15
|
);
|
|
16
16
|
|
|
@@ -49,7 +49,7 @@ async function callTool(name, a) {
|
|
|
49
49
|
|
|
50
50
|
case 'updateCampaign': {
|
|
51
51
|
const { id, ...body } = a;
|
|
52
|
-
return api.
|
|
52
|
+
return api.put(`/campaigns/${id}`, body);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
case 'listCampaignPosts': {
|
|
@@ -69,7 +69,7 @@ async function callTool(name, a) {
|
|
|
69
69
|
|
|
70
70
|
case 'updatePost': {
|
|
71
71
|
const { id, ...body } = a;
|
|
72
|
-
return api.
|
|
72
|
+
return api.put(`/posts/${id}`, body);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
case 'regeneratePostText':
|
|
@@ -83,21 +83,6 @@ async function callTool(name, a) {
|
|
|
83
83
|
case 'uploadPostVideo':
|
|
84
84
|
return uploadPostVideo(a);
|
|
85
85
|
|
|
86
|
-
// ─── API KEYS ────────────────────────────────────────────────────────────
|
|
87
|
-
case 'listApiKeys':
|
|
88
|
-
return api.get('/api-keys');
|
|
89
|
-
|
|
90
|
-
case 'createApiKey':
|
|
91
|
-
return api.post('/api-keys', a);
|
|
92
|
-
|
|
93
|
-
case 'updateApiKey': {
|
|
94
|
-
const { id, ...body } = a;
|
|
95
|
-
return api.patch(`/api-keys/${id}`, body);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
case 'revokeApiKey':
|
|
99
|
-
return api.delete(`/api-keys/${a.id}`);
|
|
100
|
-
|
|
101
86
|
default:
|
|
102
87
|
throw new Error(`Unknown tool: ${name}`);
|
|
103
88
|
}
|
package/src/tools.js
CHANGED
|
@@ -237,53 +237,4 @@ export const tools = [
|
|
|
237
237
|
},
|
|
238
238
|
},
|
|
239
239
|
},
|
|
240
|
-
|
|
241
|
-
// ─── API KEYS ─────────────────────────────────────────────────────────────
|
|
242
|
-
|
|
243
|
-
{
|
|
244
|
-
name: 'listApiKeys',
|
|
245
|
-
description: "Lists the user's active (non-revoked) API keys. The full key is never returned after creation.",
|
|
246
|
-
inputSchema: {
|
|
247
|
-
type: 'object',
|
|
248
|
-
properties: {},
|
|
249
|
-
},
|
|
250
|
-
},
|
|
251
|
-
|
|
252
|
-
{
|
|
253
|
-
name: 'createApiKey',
|
|
254
|
-
description: 'Creates a new API key. The full key (atray_...) is returned ONLY in this response - save it immediately. Limit: 10 keys per user.',
|
|
255
|
-
inputSchema: {
|
|
256
|
-
type: 'object',
|
|
257
|
-
required: ['name'],
|
|
258
|
-
properties: {
|
|
259
|
-
name: { type: 'string', maxLength: 100, description: 'Descriptive name for the key' },
|
|
260
|
-
},
|
|
261
|
-
},
|
|
262
|
-
},
|
|
263
|
-
|
|
264
|
-
{
|
|
265
|
-
name: 'updateApiKey',
|
|
266
|
-
description: 'Updates the name and/or active status of an API key. Inactive keys are rejected at authentication.',
|
|
267
|
-
inputSchema: {
|
|
268
|
-
type: 'object',
|
|
269
|
-
required: ['id'],
|
|
270
|
-
properties: {
|
|
271
|
-
id: { type: 'string', description: 'API key UUID' },
|
|
272
|
-
name: { type: 'string', maxLength: 100, description: 'New name for the key' },
|
|
273
|
-
is_active: { type: 'boolean', description: 'Activate or deactivate the key' },
|
|
274
|
-
},
|
|
275
|
-
},
|
|
276
|
-
},
|
|
277
|
-
|
|
278
|
-
{
|
|
279
|
-
name: 'revokeApiKey',
|
|
280
|
-
description: 'Permanently revokes an API key. This action cannot be undone.',
|
|
281
|
-
inputSchema: {
|
|
282
|
-
type: 'object',
|
|
283
|
-
required: ['id'],
|
|
284
|
-
properties: {
|
|
285
|
-
id: { type: 'string', description: 'API key UUID' },
|
|
286
|
-
},
|
|
287
|
-
},
|
|
288
|
-
},
|
|
289
240
|
];
|