Skip to main content
Glama
jm333-B

file-insight-mcp

by jm333-B

save_approved_report

DestructiveIdempotent

Save a report to file only after verifying the approval token from preview, ensuring user consent and preventing overwrites.

Instructions

미리보기에서 발급된 승인 토큰이 일치할 때만 보고서를 파일로 저장합니다.

이 서버에서 유일한 쓰기 도구입니다. 호출 전 반드시 두 조건을 만족해야 합니다.

  1. preview_save_report가 AWAITING_APPROVAL을 돌려주고 토큰을 발급했다.

  2. 사용자가 그 내용을 보고 명시적으로 저장을 승인했다.

토큰은 기술적 무결성(승인한 내용 == 저장되는 내용)만 보장합니다. 사용자 승인을 대신하지 않습니다. 사용자가 "저장해"라고 말하지 않았다면 호출하지 마세요.

Args: report_id: 보고서 id. report_markdown: 저장할 보고서 전문. approval_token: 미리보기가 발급한 토큰. expected_write_mode: 선택. 지정하면 실제 write_mode와 다를 때 거부합니다.

Returns: SaveResponse: path(저장 경로), audit(감사 로그 경로), write_mode(CREATE / OVERWRITE / NO_CHANGE).

Raises: ToolFailure: TOKEN_MISMATCH, VALIDATION_FAILED, WRITE_MODE_CHANGED, INVALID_REPORT_ID. 모두 복구 방법이 메시지에 포함됩니다.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
report_idYes보고서 id (영문 소문자/숫자/_/- 만 허용)
approval_tokenYespreview_save_report가 발급한 승인 토큰
report_markdownYes저장할 보고서 전문. preview_save_report에 넘긴 것과 한 글자라도 다르면 토큰 검증에 실패합니다.
expected_write_modeNo미리보기에서 본 write_mode. 지정하면 실제 상태와 다를 때 저장을 거부합니다. 덮어쓰기 사고 방지용입니다.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYes
auditYes
stageYes폴더 분석 워크플로에서 지금 위치한 단계
statusYes이 호출의 결과 상태
report_idYes
write_modeYes
next_actionsNo이어서 호출하면 좋은 도구 목록
Behavior5/5

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

Annotations already carry readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the bar for extra disclosure is lower — yet the description still adds critical context: the token guarantees only technical integrity (approved content == saved content), NOT user approval, which is a crucial safety clarification. It also discloses the OVERWRITE destructive mode and the WRITE_MODE_CHANGED rejection mechanism, deepening understanding of the idempotent+destructive combination.

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

Conciseness4/5

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

Well-structured with clear section headers (Args, Returns, Raises), a front-loaded purpose statement, and numbered preconditions that make the safety gate easy to parse. Slightly verbose — the Args block largely duplicates schema descriptions and the Raises list could be trimmed — but every section earns its place in an approval-gated tool where safety detail matters.

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?

For a tool with a conditional approval workflow, the description is complete: it covers the preconditions, the token semantics and its limitation, the error types with recovery info, the output shape (SaveResponse with path/audit/write_mode), and the optional expected_write_mode safeguard. Output schema exists and parameter coverage is 100%, so nothing an agent needs to call this correctly is missing.

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

Parameters3/5

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

Schema coverage is 100% and the schema itself already documents all four parameters well, including the critical constraint on report_markdown ('even one character different fails token verification') and expected_write_mode's overwrite-protection purpose. The description's Args section restates these rather than adding materially new meaning, though it does reinforce the cross-parameter binding (token must originate from preview, markdown must match preview) in the flow context.

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?

The description opens with a specific verb+resource+condition: 'saves the report to file only when the approval token issued in preview matches.' This clearly differentiates it from sibling tools — it explicitly declares itself 'the only write tool on this server,' which is a concrete distinguishing claim against the read/validation siblings like preview_save_report and list_saved_reports.

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?

Provides two explicit numbered preconditions that must hold before invocation: (1) preview_save_report returned AWAITING_APPROVAL and issued a token, and (2) the user has explicitly approved saving. It goes further with a clear exclusion: 'Do not call unless the user said save.' This gives the agent unambiguous go/no-go criteria.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jm333-B/temp_mcp_server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server