Skip to content

Commit bf23f21

Browse files
committed
Fixes
1 parent 3640d7f commit bf23f21

4 files changed

Lines changed: 61 additions & 30 deletions

File tree

src/constants.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

src/env.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
type Env = {
2-
// auth
2+
PLAINLY_APP_URL: string;
33
PLAINLY_API_URL: string;
44
PLAINLY_API_KEY: string;
55
};
66

77
export default {
8-
// auth
8+
PLAINLY_APP_URL:
9+
process.env.PLAINLY_APP_URL || "https://app.plainlyvideos.com",
910
PLAINLY_API_URL:
1011
process.env.PLAINLY_API_URL || "https://api.plainlyvideos.com",
1112
PLAINLY_API_KEY: process.env.PLAINLY_API_KEY,

src/tools/checkRenderStatus.ts

Lines changed: 56 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { z } from "zod";
22
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
33
import { getRenderItem } from "../sdk";
4-
import { PLAINLY_APP_URL } from "../constants";
4+
import env from "../env";
55

66
export function registerCheckRenderStatus(server: McpServer) {
77
const Input = {
@@ -11,15 +11,29 @@ export function registerCheckRenderStatus(server: McpServer) {
1111
};
1212

1313
const Output = {
14-
// Status information
15-
message: z
16-
.string()
17-
.describe("A human-readable message for the render status."),
14+
// Render information
15+
message: z.string().describe("A message describing the render status."),
1816
renderId: z.string().describe("The render job ID."),
1917
renderDetailsPageUrl: z
2018
.string()
2119
.optional()
2220
.describe("URL to the render details page."),
21+
projectDesignId: z
22+
.string()
23+
.describe("Parent identifier (projectId or designId)."),
24+
templateVariantId: z
25+
.string()
26+
.describe(
27+
"Template/variant identifier (the renderable leaf under the parent)."
28+
),
29+
projectDesignName: z
30+
.string()
31+
.optional()
32+
.describe("Name of the project or design."),
33+
templateVariantName: z
34+
.string()
35+
.optional()
36+
.describe("Name of the template or variant."),
2337
state: z
2438
.enum([
2539
"PENDING",
@@ -32,14 +46,6 @@ export function registerCheckRenderStatus(server: McpServer) {
3246
"CANCELLED",
3347
])
3448
.describe("The current state of the render job."),
35-
projectName: z
36-
.string()
37-
.optional()
38-
.describe("Name of the project or design."),
39-
templateName: z
40-
.string()
41-
.optional()
42-
.describe("Name of the template or variant."),
4349

4450
// Success output
4551
output: z
@@ -50,7 +56,7 @@ export function registerCheckRenderStatus(server: McpServer) {
5056
// Error information
5157
errorMessage: z.string().optional().describe("Error message, if any."),
5258
errorSolution: z.string().optional().describe("Error solution, if any."),
53-
errorDetails: z.any().optional().describe("Error details, if any."),
59+
errorDetails: z.string().optional().describe("Error details, if any."),
5460
};
5561

5662
server.registerTool(
@@ -60,6 +66,22 @@ export function registerCheckRenderStatus(server: McpServer) {
6066
description: `
6167
Check the status of a render job.
6268
69+
Available states:
70+
- PENDING: The render job has been created but not yet added to the queue.
71+
- THROTTLED: The render job is waiting due to rate limiting.
72+
- QUEUED: The render job is in the queue and will start soon.
73+
- IN_PROGRESS: The render job is currently being processed.
74+
- DONE: The render job has completed successfully. The output URL will be provided.
75+
- FAILED: The render job encountered an error and did not complete successfully. Error details will be provided.
76+
- INVALID: The render job was invalid (e.g., due to incorrect parameters). Error details will be provided.
77+
- CANCELLED: The render job was cancelled by the user.
78+
79+
Response format:
80+
- Always include a link to the render details page.
81+
- If the render is still in progress (PENDING, THROTTLED, QUEUED, IN_PROGRESS) tell user to check the status again later.
82+
- If the render is DONE, return the output URL and the render page details.
83+
- If the render FAILED or is INVALID, return the error message and details.
84+
6385
Use when:
6486
- You need to check the progress of a render job
6587
- You want to retrieve the final render output URL
@@ -79,10 +101,12 @@ Use when:
79101
structuredContent: {
80102
message: "Render completed successfully.",
81103
renderId: render.id,
82-
renderDetailsPageUrl: `${PLAINLY_APP_URL}/dashboard/renders/${render.id}`,
104+
renderDetailsPageUrl: `${env.PLAINLY_APP_URL}/dashboard/renders/${render.id}`,
105+
projectDesignId: render.projectId,
106+
templateVariantId: render.templateId,
107+
projectDesignName: render.projectName,
108+
templateVariantName: render.templateName,
83109
state: render.state,
84-
projectName: render.projectName,
85-
templateName: render.templateName,
86110
output: render.output,
87111
},
88112
};
@@ -94,9 +118,12 @@ Use when:
94118
structuredContent: {
95119
message: "Render was cancelled.",
96120
renderId: render.id,
121+
renderDetailsPageUrl: `${env.PLAINLY_APP_URL}/dashboard/renders/${render.id}`,
122+
projectDesignId: render.projectId,
123+
templateVariantId: render.templateId,
124+
projectDesignName: render.projectName,
125+
templateVariantName: render.templateName,
97126
state: render.state,
98-
projectName: render.projectName,
99-
templateName: render.templateName,
100127
},
101128
};
102129
}
@@ -108,9 +135,12 @@ Use when:
108135
structuredContent: {
109136
message: "Render failed.",
110137
renderId: render.id,
138+
renderDetailsPageUrl: `${env.PLAINLY_APP_URL}/dashboard/renders/${render.id}`,
139+
projectDesignId: render.projectId,
140+
templateVariantId: render.templateId,
141+
projectDesignName: render.projectName,
142+
templateVariantName: render.templateName,
111143
state: render.state,
112-
projectName: render.projectName,
113-
templateName: render.templateName,
114144
errorMessage: render.error.message,
115145
errorDetails: JSON.stringify(render.error.details),
116146
},
@@ -124,9 +154,12 @@ Use when:
124154
structuredContent: {
125155
message: "Render is processing. Please wait and check back later.",
126156
renderId: render.id,
157+
renderDetailsPageUrl: `${env.PLAINLY_APP_URL}/dashboard/renders/${render.id}`,
158+
projectDesignId: render.projectId,
159+
templateVariantId: render.templateId,
160+
projectDesignName: render.projectName,
161+
templateVariantName: render.templateName,
127162
state: render.state,
128-
projectName: render.projectName,
129-
templateName: render.templateName,
130163
},
131164
};
132165
} catch (err: any) {

src/tools/renderItem.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
ProjectDesignNotFoundError,
1414
TemplateVariantNotFoundError,
1515
} from "./errors";
16-
import { PLAINLY_APP_URL } from "../constants";
16+
import env from "../env";
1717

1818
export function registerRenderItem(server: McpServer) {
1919
const Input = {
@@ -154,7 +154,7 @@ Use when:
154154
// Successful submission
155155
const output = {
156156
renderId: render.id,
157-
renderDetailsPageUrl: `${PLAINLY_APP_URL}/dashboard/renders/${render.id}`,
157+
renderDetailsPageUrl: `${env.PLAINLY_APP_URL}/dashboard/renders/${render.id}`,
158158
projectDesignId: render.projectId,
159159
templateVariantId: render.templateId,
160160
projectDesignName: render.projectName,

0 commit comments

Comments
 (0)