Skip to main content
Glama
EricSeokgon

egovframe-scaffold-mcp

by EricSeokgon

프로젝트 무결성 검증

validate_egovframe_project
Read-onlyIdempotent

Verify your assembled eGovFrame project integrity. Check if files match the installation manifest and ensure the Globals.DbType matches the copied DB scripts.

Instructions

조립된 프로젝트의 무결성을 진단합니다: 설치 매니페스트 기준 파일 존재 확인, Globals.DbType과 복사된 DB 스크립트 일치 확인.

Input Schema

NameRequiredDescriptionDefault
projectDirYes검증할 프로젝트 디렉터리

Output Schema

NameRequiredDescriptionDefault
okYes
dbTypeYes
aiChecksYes
warningsYes
componentsYes
projectDirYes
dbScriptDirsYes
manifestFoundYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv1.6.0
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedOutput schema / properties / aiChecks / items / additionalProperties
      Previous value: -trueNew value: +{}
    • changedOutput schema / properties / components / items / additionalProperties
      Previous value: -trueNew value: +{}
    • addedOutput schema / properties / components / items / properties / files / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / components / items / properties / files / minimum
      Added value: +-9007199254740991
    • addedOutput schema / properties / components / items / properties / missing / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / components / items / properties / missing / minimum
      Added value: +-9007199254740991
  2. Changed1 schema field changedv0.36.1
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "aiChecks": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "componentId": {
      +            "type": "string"
      +          },
      +          "exists": {
      +            "type": "boolean"
      +          },
      +          "file": {
      +            "type": "string"
      +          },
      +          "note": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "componentId",
      +          "file",
      +          "exists",
      +          "note"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "components": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "files": {
      +            "type": "integer"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "missing": {
      +            "type": "integer"
      +          },
      +          "missingSamples": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "files",
      +          "missing",
      +          "missingSamples"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "dbScriptDirs": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "dbType": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "manifestFound": {
      +      "type": "boolean"
      +    },
      +    "ok": {
      +      "type": "boolean"
      +    },
      +    "projectDir": {
      +      "type": "string"
      +    },
      +    "warnings": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "projectDir",
      +    "ok",
      +    "manifestFound",
      +    "components",
      +    "dbType",
      +    "dbScriptDirs",
      +    "aiChecks",
      +    "warnings"
      +  ],
      +  "type": "object"
      +}
  3. Addedv0.19.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and closed-world, so the safety profile is settled. The description adds genuine value by naming exactly what is cross-checked (manifest vs. files, DbType vs. DB script), though it doesn't state how failures are surfaced (there is an output schema, which mitigates this).

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?

One front-loaded sentence with the two concrete checks after the colon; no filler. Slightly dense but every clause earns its place.

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

Completeness4/5

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

With rich annotations, 100% parameter coverage and an output schema, the description supplies the remaining piece—the specific integrity checks performed. The notable gap is disambiguation from diagnose_egovframe_project in a crowded family of check_/diagnose_ siblings.

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?

Single parameter with 100% schema description coverage ('검증할 프로젝트 디렉터리'), so the schema carries the semantics. The description adds nothing about the parameter (e.g., whether it must contain a previously assembled layout), which is the expected baseline-3 case.

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

Purpose4/5

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

States a concrete verb+resource ('조립된 프로젝트의 무결성을 진단') and enumerates the two specific checks (manifest-based file existence, Globals.DbType vs. copied DB script), which is far from a tautology. However, it does not differentiate itself from the similarly-scoped sibling diagnose_egovframe_project, so the agent cannot tell why one is preferred over the other.

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

Usage Guidelines3/5

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

The phrase '조립된 프로젝트' implies this tool applies after project assembly, giving implicit lifecycle guidance. There is no explicit when-to-use / when-not statement and no reference to diagnose_egovframe_project, check_egovframe_dependencies, or check_egovframe_sbom as alternatives, so usage must be inferred.

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