execute_prompt
Execute prompt templates with custom variables to generate RPG Maker MZ game content, enabling automated creation of maps, events, characters, and database elements from provided parameters.
Instructions
Execute a prompt template with provided variables and resource references
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Project path | |
| prompt_id | Yes | Prompt template ID | |
| variables | Yes | Variables to fill in the template |
Implementation Reference
- src/resource-manager.ts:172-220 (handler)The core handler function that loads the prompt template, expands variables and resource references, and returns the fully rendered prompt or an error.export async function executePrompt( projectPath: string, promptId: string, variables: Record<string, any> ): Promise<{ success: boolean; prompt?: string; error?: string }> { try { const registry = await loadResourceRegistry(projectPath); const promptTemplate = registry.prompts.get(promptId); if (!promptTemplate) { return { success: false, error: `Prompt template not found: ${promptId}` }; } let prompt = promptTemplate.template; // 変数展開 for (const [key, value] of Object.entries(variables)) { const placeholder = `{{${key}}}`; prompt = prompt.replace(new RegExp(placeholder, "g"), String(value)); } // リソース参照を展開 if (promptTemplate.resourceRefs) { for (const resourceId of promptTemplate.resourceRefs) { const resource = registry.resources.get(resourceId); if (resource) { const placeholder = `{{resource:${resourceId}}}`; prompt = prompt.replace( new RegExp(placeholder, "g"), JSON.stringify(resource.content) ); } } } await Logger.info("Prompt executed", { promptId, variablesCount: Object.keys(variables).length }); return { success: true, prompt }; } catch (error) { await Logger.error("Failed to execute prompt", { projectPath, promptId, error }); return { success: false, error: error instanceof Error ? error.message : String(error) }; } }
- src/index.ts:768-780 (schema)The input schema defining parameters for the execute_prompt tool: project_path, prompt_id, and variables.{ name: "execute_prompt", description: "Execute a prompt template with provided variables and resource references", inputSchema: { type: "object", properties: { project_path: { type: "string", description: "Project path" }, prompt_id: { type: "string", description: "Prompt template ID" }, variables: { type: "object", description: "Variables to fill in the template" }, }, required: ["project_path", "prompt_id", "variables"], }, },
- src/index.ts:1426-1435 (registration)The tool dispatch handler in the MCP server's CallToolRequestSchema that invokes the executePrompt function with parsed arguments and formats the response.case "execute_prompt": { const result = await executePrompt( args.project_path as string, args.prompt_id as string, args.variables as Record<string, any> ); return { content: [{ type: "text", text: result.success ? result.prompt! : `Error: ${result.error}` }], }; }
- src/index.ts:49-57 (registration)Import of the executePrompt function used by the MCP tool handler.registerResource, registerPromptTemplate, getResource, listResources, listPromptTemplates, executePrompt, generatePromptFromResources, initializeDefaultPrompts } from "./resource-manager.js";