🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@instavar/mcp-server

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@instavar/mcp-server - npm Package Compare versions

Comparing version
0.1.1
to
0.1.2
+69
-1
dist/index.js

@@ -116,2 +116,3 @@ #!/usr/bin/env node

"customer_story",
"directions",
"other"

@@ -167,2 +168,40 @@ ];

});
var directionsBriefSchema = z.object({
subtitle: z.string().optional(),
unitLabel: z.string().optional(),
distanceTimeChip: z.string().optional(),
clips: z.array(
z.object({
src: z.string(),
trimStartSeconds: z.number().optional(),
trimEndSeconds: z.number(),
speed: z.number().optional(),
mirrorFlip: z.boolean().optional()
})
).min(1),
cues: z.array(
z.object({
atSeconds: z.number(),
text: z.string(),
arrow: z.enum(["left", "right", "forward"]).optional(),
step: z.number().optional()
})
),
outro: z.object({
heading: z.string().optional(),
body: z.array(z.string()).optional(),
seconds: z.number().optional()
}).optional(),
music: z.object({
perSegment: z.array(
z.object({
src: z.string(),
clipIndexStart: z.number().optional(),
hotOffsetSeconds: z.number().optional(),
volume: z.number().optional()
})
).optional(),
crossfadeSeconds: z.number().optional()
}).optional()
});
var createBriefShape = {

@@ -178,3 +217,6 @@ title: z.string().min(1).max(120).describe("Short title (max 120 chars)"),

aspectRatio: z.enum(ASPECT_RATIOS).default("9:16").describe("Aspect ratio (default 9:16)"),
compositionId: z.string().optional().describe("Remotion composition ID override (advanced)")
compositionId: z.string().optional().describe("Remotion composition ID override (advanced)"),
directions: directionsBriefSchema.optional().describe(
"DirectionsWalkthrough 'find-us' payload: source clips (legs), decision-point cues on the realtime walk timeline, outro, and optional music. Set compositionId 'DirectionsWalkthrough' (or objective 'directions')."
)
};

@@ -303,2 +345,28 @@ var editBriefShape = {

);
server.tool(
"connect_account",
"Start connecting a social account headlessly (no local browser needed). Returns an approve URL + a short confirm code: open the URL in a browser signed in to Instavar, check the code matches THIS terminal, and approve. Then poll connect_account_status with the returned pairingId until it reports 'connected'.",
{
provider: z2.enum([
"youtube",
"x",
"tiktok",
"linkedin",
"facebook",
"instagram",
"threads"
]).describe("The social platform to connect")
},
async ({ provider }) => runTool(() => apiPost(`/api/v1/connect/start`, { provider }))
);
server.tool(
"connect_account_status",
"Poll a pending account connection started by connect_account. Returns status 'pending' | 'connected' | 'expired', plus the connected account label once connected.",
{ pairingId: uuid("The pairingId returned by connect_account") },
async ({ pairingId }) => runTool(
() => apiGet(
`/api/v1/connect/poll?pairingId=${encodeURIComponent(pairingId)}`
)
)
);
}

@@ -305,0 +373,0 @@

+2
-1
{
"name": "@instavar/mcp-server",
"version": "0.1.1",
"version": "0.1.2",
"mcpName": "com.instavar/mcp-server",
"description": "Instavar Studio MCP server — drive the full video create→render→approve→publish→metrics workflow from Claude Code or Codex with an API key.",

@@ -5,0 +6,0 @@ "type": "module",

+22
-11

@@ -40,16 +40,27 @@ # @instavar/mcp-server

| Tool | What it does |
| -------------------- | --------------------------------------------------------------- |
| `list_jobs` | List recent jobs (newest first). |
| `get_job_status` | Runs, artifacts, verifications, current video + thumbnail URLs. |
| `get_video_state` | Materialized composition state for a job. |
| `get_job_metrics` | Platform engagement snapshots for a published job. |
| `get_cost_summary` | Infra cost summary (Lambda / RunPod / R2 / WaveSpeed / PoYo). |
| `create_video_brief` | Create a job from a structured brief and start rendering. |
| `edit_video_brief` | Patch a brief and re-render. |
| `approve_job` | Approve a rendered job so it can be published. |
| `publish_job` | Publish an approved job to its connected social destination. |
| Tool | What it does |
| ------------------------ | --------------------------------------------------------------- |
| `list_jobs` | List recent jobs (newest first). |
| `get_job_status` | Runs, artifacts, verifications, current video + thumbnail URLs. |
| `get_video_state` | Materialized composition state for a job. |
| `get_job_metrics` | Platform engagement snapshots for a published job. |
| `get_cost_summary` | Infra cost summary (Lambda / RunPod / R2 / WaveSpeed / PoYo). |
| `create_video_brief` | Create a job from a structured brief and start rendering. |
| `edit_video_brief` | Patch a brief and re-render. |
| `approve_job` | Approve a rendered job so it can be published. |
| `publish_job` | Publish an approved job to its connected social destination. |
| `connect_account` | Start connecting a social account (headless OAuth pairing). |
| `connect_account_status` | Poll a pending account connection until it is connected. |
Writes require a key with the `write` scope; `publish_job` requires `publish`.
### Connecting a social account from the terminal
`connect_account` returns an **approve URL** and a short **confirm code**. Open
the URL in a browser where you are signed in to Instavar, check the code matches
the one in your terminal, and approve — you go through the platform's normal
sign-in, then return to Instavar. Poll `connect_account_status` with the returned
`pairingId` until it reports `connected`. Pairings expire after 10 minutes and
can only be approved by an owner/admin of the workspace.
## CLI

@@ -56,0 +67,0 @@