get_template
Read-only
Fetch legal agreement templates with field metadata to fill standard documents like NDAs, SAFEs, and employment contracts, producing DOCX files.
Instructions
Fetch a single template definition with field metadata.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | Yes | Template ID, e.g. "common-paper-mutual-nda". |
Implementation Reference
- api/_shared.ts:289-321 (handler)The `handleGetTemplate` function implements the core logic for retrieving template details, including metadata loading and handling internal, external, and recipe-based templates.
export function handleGetTemplate(templateId: string): TemplateItem | null { const internalDir = findTemplateDir(templateId); if (internalDir) { try { const meta = loadMetadata(internalDir) as RawTemplateMetadata; return toTemplateItem(templateId, meta); } catch { return null; } } const externalDir = findExternalDir(templateId); if (externalDir) { try { const meta = loadExternalMetadata(externalDir) as RawTemplateMetadata; return toTemplateItem(templateId, meta); } catch { return null; } } const recipeDir = findRecipeDir(templateId); if (recipeDir) { try { const meta = loadRecipeMetadata(recipeDir); return recipeToTemplateItem(templateId, meta); } catch { return null; } } return null; } - api/mcp.ts:467-483 (registration)MCP tool registration and request handling for 'get_template' in the main MCP handler.
if (name === TOOL_GET_TEMPLATE) { const parsed = GetTemplateArgsSchema.safeParse(args); if (!parsed.success) { return toolErrorResult( id, TOOL_GET_TEMPLATE, ErrorCode.INVALID_ARGUMENT, 'Invalid arguments for get_template.', { details: issueDetails(parsed.error) }, ); } const template = handleGetTemplate(parsed.data.template_id); if (!template) { return toolErrorResult( id, TOOL_GET_TEMPLATE, - api/mcp.ts:30-33 (schema)Input validation schema (Zod) for the 'get_template' tool arguments.
const GetTemplateArgsSchema = z.object({ template_id: z.string().min(1).optional(), template: z.string().min(1).optional(), }).transform((v) => ({ template_id: v.template_id ?? v.template ?? '' }))