Skip to main content
Glama
Lex6won
by Lex6won

save_report

Saves a security scan report to a file and returns the saved path, so audit results can be attached or archived instead of remaining only in chat.

Instructions

점검 보고서를 파일로 저장하고 저장 경로를 알려줍니다.

render_report 는 본문 문자열만 돌려주므로, 그대로 두면 보고서가 대화창에만 남고 사라집니다. 결재·보고에 첨부하려면 이 도구로 저장하세요.

저장 규약: <검사한 프로젝트>/.check-reports/YYYY-MM-DD_HHMM_보안점검.{html,md,json}

  • HTML: 인쇄하면 그대로 PDF 결재 문서가 됩니다(외부 CDN 없음)

  • MD: 텍스트 편집·재가공용

  • JSON: 재검사·이력 비교용 원본 데이터 기관 공용 폴더로 모으려면 환경변수 GVSKB_REPORT_DIR 을 설정하세요.

Input Schema

NameRequiredDescriptionDefault
reportYesscan_code / scan_path 가 반환한 ScanReport JSON 그대로 (직접 조립 금지)
output_dirNo저장 폴더 지정(선택). 미지정 시 <검사한 경로>/.check-reports/ 에 저장

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.5.4

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it largely does: it discloses the on-disk path convention, three output formats with their intended uses (HTML printable to PDF with no external CDN, MD for editing, JSON for history/redo), and the GVSKB_REPORT_DIR env var for a shared folder. It does not address overwrite behavior or permission requirements, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action and return value in the first sentence, then structures the format details as a tight bullet list. Every sentence earns its place; no repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, a nested-object schema, and the presence of an output schema (so return values need not be restated here), the description covers the missing pieces an agent needs: purpose vs sibling, destination path, format selection, and the shared-folder override.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds value beyond the field docs by spelling out the save convention and filename pattern, the format extensions, and the env-var override that governs where output_dir effectively resolves.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('점검 보고서를 파일로 저장') and even names the return value (save path). It explicitly differentiates from the sibling render_report, explaining that render_report returns only the body string while this persists to a file, so the agent can tell them apart without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly frames the when-to-use: if the report would otherwise vanish in the chat window and you need it for approval/reporting, use this tool. It names the concrete alternative (render_report) and the condition that selects save_report, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.