vyra-mcp 0.1.0 → 0.2.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 +3 -1
- package/dist/server.js +30 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,9 +24,11 @@ performance-based creator campaigns in plain English.
|
|
|
24
24
|
| `get_campaign` | One campaign by id |
|
|
25
25
|
| `list_campaign_slots` | Creators who joined, with status + views |
|
|
26
26
|
| `get_submission` | One submission's metrics, cost, watch-window |
|
|
27
|
-
| `create_campaign` | Create a draft campaign |
|
|
27
|
+
| `create_campaign` | Create a draft campaign (optionally with assets) |
|
|
28
28
|
| `activate_campaign` | Fund-check, reserve budget, go live |
|
|
29
29
|
| `pause_campaign` | Stop new creators from joining |
|
|
30
|
+
| `list_campaign_assets` | List a campaign's brand assets |
|
|
31
|
+
| `attach_campaign_asset` | Attach a logo / demo video / screenshot by URL |
|
|
30
32
|
|
|
31
33
|
## Manual config
|
|
32
34
|
|
package/dist/server.js
CHANGED
|
@@ -20,7 +20,7 @@ async function run(fn) {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
export function buildServer() {
|
|
23
|
-
const server = new McpServer({ name: "vyra", version: "0.
|
|
23
|
+
const server = new McpServer({ name: "vyra", version: "0.2.0" });
|
|
24
24
|
// --- Wallet -------------------------------------------------------------
|
|
25
25
|
server.registerTool("get_wallet_balance", {
|
|
26
26
|
title: "Get wallet balance",
|
|
@@ -101,8 +101,37 @@ export function buildServer() {
|
|
|
101
101
|
.describe("The brief / what creators should communicate"),
|
|
102
102
|
hashtags: z.array(z.string()).optional(),
|
|
103
103
|
promo_link: z.string().optional(),
|
|
104
|
+
assets: z
|
|
105
|
+
.array(z.object({
|
|
106
|
+
kind: z.enum(["logo", "video", "screenshot"]),
|
|
107
|
+
url: z.string().describe("Hosted URL of the asset"),
|
|
108
|
+
file_name: z.string().optional(),
|
|
109
|
+
}))
|
|
110
|
+
.optional()
|
|
111
|
+
.describe("Brand assets to attach, by URL (logo/demo video/screenshots)"),
|
|
104
112
|
},
|
|
105
113
|
}, (args) => run(() => apiRequest("POST", "/campaigns", args)));
|
|
114
|
+
server.registerTool("list_campaign_assets", {
|
|
115
|
+
title: "List campaign assets",
|
|
116
|
+
description: "List the brand assets (logo, demo video, screenshots) attached to a campaign.",
|
|
117
|
+
inputSchema: {
|
|
118
|
+
campaign_id: z.string().describe("The campaign id"),
|
|
119
|
+
},
|
|
120
|
+
}, ({ campaign_id }) => run(() => apiRequest("GET", `/campaigns/${campaign_id}/assets`)));
|
|
121
|
+
server.registerTool("attach_campaign_asset", {
|
|
122
|
+
title: "Attach campaign asset",
|
|
123
|
+
description: "Attach a brand asset to a campaign by URL. Use for a logo, demo video, or screenshot the creator downloads to make their video.",
|
|
124
|
+
inputSchema: {
|
|
125
|
+
campaign_id: z.string().describe("The campaign id"),
|
|
126
|
+
kind: z
|
|
127
|
+
.enum(["logo", "video", "screenshot"])
|
|
128
|
+
.describe("Asset type (use 'video' for a demo video)"),
|
|
129
|
+
url: z.string().describe("Hosted URL of the asset"),
|
|
130
|
+
file_name: z.string().optional().describe("Display name for the file"),
|
|
131
|
+
},
|
|
132
|
+
}, ({ campaign_id, kind, url, file_name }) => run(() => apiRequest("POST", `/campaigns/${campaign_id}/assets`, {
|
|
133
|
+
assets: [{ kind, url, file_name }],
|
|
134
|
+
})));
|
|
106
135
|
server.registerTool("activate_campaign", {
|
|
107
136
|
title: "Activate campaign",
|
|
108
137
|
description: "Activate a draft campaign: checks funds, reserves budget, and makes it live for creators. Fails if the wallet balance is too low.",
|
package/package.json
CHANGED