update_case_info
Update specific details of a case overview, including name, occurrence, report time, location, or summary. Only provided fields are changed.
Instructions
사건 개요의 일부 필드를 수정합니다. 전달한 필드만 변경됩니다.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| name | No | ||
| occurrence | No | ||
| occurrenceError | No | ||
| reportTime | No | ||
| location | No | ||
| summary | No |
Implementation Reference
- src/tools.ts:149-164 (handler)The handler that updates case info fields (name, occurrence, occurrenceError, reportTime, location, summary) by fetching the existing case, applying only provided fields, and saving.
handler: async (input: Record<string, unknown>) => { const c = await fetchCase(input.id as string); const fields = [ 'name', 'occurrence', 'occurrenceError', 'reportTime', 'location', 'summary', ] as const; for (const f of fields) { if (input[f] !== undefined) (c.caseInfo as Record<string, unknown>)[f] = input[f]; } await saveCase(c); return { ok: true, url: caseUrl(input.id as string) }; }, - src/tools.ts:140-148 (schema)Zod input schema for update_case_info: id (required UUID) plus optional fields for each piece of case info.
inputSchema: z.object({ id: z.string().uuid(), name: z.string().optional(), occurrence: z.string().optional(), occurrenceError: z.number().int().min(0).optional(), reportTime: z.string().optional(), location: z.string().optional(), summary: z.string().optional(), }), - src/tools.ts:137-165 (registration)The full tool definition registered in the tools array, containing name, description, inputSchema, and handler.
{ name: 'update_case_info', description: '사건 개요의 일부 필드를 수정합니다. 전달한 필드만 변경됩니다.', inputSchema: z.object({ id: z.string().uuid(), name: z.string().optional(), occurrence: z.string().optional(), occurrenceError: z.number().int().min(0).optional(), reportTime: z.string().optional(), location: z.string().optional(), summary: z.string().optional(), }), handler: async (input: Record<string, unknown>) => { const c = await fetchCase(input.id as string); const fields = [ 'name', 'occurrence', 'occurrenceError', 'reportTime', 'location', 'summary', ] as const; for (const f of fields) { if (input[f] !== undefined) (c.caseInfo as Record<string, unknown>)[f] = input[f]; } await saveCase(c); return { ok: true, url: caseUrl(input.id as string) }; }, }, - src/tools.ts:50-58 (helper)Helper function that fetches a case from the database via RPC, used by the handler.
async function fetchCase(id: string): Promise<CaseData> { const data = await callRpc<CaseData | null>('mcp_get_case', { p_id: id }); if (!data) throw new Error(`사건을 찾을 수 없습니다: ${id}`); return data; } async function saveCase(caseObj: CaseData): Promise<string> { return await callRpc<string>('mcp_save_case', { p_case: caseObj }); } - src/tools.ts:56-58 (helper)Helper function that saves a modified case back to the database via RPC, used by the handler.
async function saveCase(caseObj: CaseData): Promise<string> { return await callRpc<string>('mcp_save_case', { p_case: caseObj }); }