Skip to main content
Glama
kokoa-tools

독립유공자 공훈록 MCP 서버

by kokoa-tools

Registro de Mérito por Servicio Meritorio de la Independencia Servidor MCP

Este es un servidor MCP (Model Context Protocol) que permite buscar los registros de méritos y registros de logros de activistas independentistas en los Archivos Electrónicos del Ministerio de Asuntos de Patriotas y Veteranos.

Preparación

Antes de comenzar, necesitarás las siguientes herramientas:

  • macOS o Windows

  • Claude Desktop Última versión

  • uv 0.4.18 o superior (consultar con uv --version )

Preferencias de macOS

# Homebrew 사용
brew install uv

# 또는 직접 다운로드:
# uv: https://docs.astral.sh/uv/

Preferencias de Windows

# winget 사용
winget install --id=astral-sh.uv -e

# 또는 직접 다운로드:
# uv: https://docs.astral.sh/uv/

Related MCP server: MCP Server Legifrance

Cómo instalar

# 프로젝트 복제
git clone https://github.com/국가보훈부/e-gonghun-mcp.git
cd e-gonghun-mcp

# 패키지 설치
uv pip install -e .

Configuración de variables de entorno

Copie .env.sample a .env y complete la configuración necesaria.

cp .env.sample .env

Cómo utilizar Claude Desktop

Para utilizar esta herramienta en Claude Desktop, necesita la siguiente configuración:

Configuración de macOS

  1. Abra el archivo de configuración:

code ~/Library/Application\ Support/Claude/claude_desktop_config.json
  1. Añade las siguientes configuraciones:

{
  "mcpServers": {
    "e_gonghun_mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/Users/사용자이름/projects/e-gonghun-mcp",
        "run",
        "gonghun-mcp"
      ]
    }
  }
}

Configuración de Windows

  1. Abra el archivo de configuración:

code $env:AppData\Claude\claude_desktop_config.json
  1. Añade las siguientes configuraciones:

{
  "mcpServers": {
    "e_gonghun_mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\Users\\사용자이름\\projects\\e-gonghun-mcp",
        "run",
        "gonghun-mcp"
      ]
    }
  }
}
  1. Reinicie Claude Desktop.

función

  • Ver la lista de hechos meritorios de activistas independentistas

  • Investigación sobre los antecedentes de hechos meritorios de los independentistas

  • Proporciona información del código, como series de entrenamiento y deportes.

Cómo utilizar la API

El Protocolo de Contexto Modelo habilita las siguientes herramientas:

  1. get_merit_list - Obtener la lista de méritos de los activistas independentistas

    • Se puede buscar por nombre, fecha de nacimiento, grado, antecedentes deportivos, etc.

  2. get_public_report - Ver los registros de acciones meritorias de activistas independentistas

  3. get_hunkuk_codes : obtiene información sobre los códigos hunkuk

  4. get_workout_affil_codes - Obtener información del código de afiliación de entrenamiento

  5. clear_cache - borra los datos almacenados en caché

Ejemplo de uso

Pregúntele a Claude Desktop las siguientes preguntas:

3.1운동을 이천에서 참여한 독립유공자 목록을 가져와줘

Cómo funciona

La interacción con Claude Desktop a través del Protocolo de Contexto de Modelo se realiza de la siguiente manera:

  1. Descubrimiento de servidor : Claude Desktop se conecta a los servidores MCP configurados al iniciarse y verifica las capacidades de cada servidor.

  2. Protocolo de enlace : seleccione un servidor MCP apropiado y negocie capacidades a través del protocolo, luego solicite datos u operaciones del servidor.

  3. Ampliación del contexto del modelo : el servidor MCP proporciona contexto y datos adicionales al modelo Claude para permitirle generar respuestas más precisas y detalladas.

  4. Flujo de interacción : cuando realiza una solicitud de consulta en Claude Desktop, el servidor MCP procesa los datos y devuelve los resultados.

  5. Seguridad : el servidor MCP solo proporciona una funcionalidad específica, se ejecuta localmente y requiere la confirmación del usuario para operaciones críticas.

Licencia

Licencia MIT

Derechos de autor (c) 2024

Por la presente se concede permiso, sin cargo, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para tratar el Software sin restricción, incluyendo, sin limitación, los derechos a usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del Software, y para permitir que las personas a quienes se les proporciona el Software lo hagan, sujeto a las siguientes condiciones:

El aviso de derechos de autor anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.

EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO, ENTRE OTRAS, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES POR CUALQUIER RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, AGRAVIO O DE OTRO MODO, QUE SURJA DE, A PARTIR DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTROS TRATOS EN EL SOFTWARE.


Este repositorio fue creado utilizando el Soneto Claude 3.7 de Anthropic.

Available Tools

5 tools
clear_cacheB

캐시된 데이터를 모두 초기화합니다

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. '초기화합니다' (initializes/clears) implies a destructive mutation, but the description doesn't disclose important behavioral traits: whether this requires special permissions, whether the operation is reversible, what '모두' (all) means in terms of scope, or any side effects. For a destructive tool with zero annotation coverage, this is inadequate.

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?

The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple tool and front-loads the core action. Every word earns its place.

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

Completeness2/5

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

Given this is a destructive mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what '초기화' entails operationally, what data is affected, whether there are confirmation prompts, what the return value might be, or error conditions. For a tool that presumably modifies system state, this leaves critical gaps.

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?

The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, and it doesn't need to compensate for any schema gaps.

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?

The description clearly states the action ('초기화합니다' - initializes/clears) and the target ('캐시된 데이터' - cached data), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools, which appear to be unrelated read operations (get_* tools), so it doesn't need sibling differentiation but doesn't explicitly state this distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing considerations, or when not to use it. Given that siblings are get_* tools, the distinction is implied (this is a write operation vs their read operations), but this isn't explicitly stated in the description.

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

get_hunkuk_codesC

훈격 코드 정보를 조회합니다

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'retrieves' implies a read operation, it doesn't specify whether this requires authentication, has rate limits, returns paginated results, or what format the information comes in. For a retrieval tool with zero annotation coverage, this is insufficient behavioral context.

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?

The description is extremely concise - a single sentence that directly states the tool's purpose. There's no wasted language or unnecessary elaboration. However, the extreme brevity borders on under-specification rather than optimal conciseness, preventing a perfect score.

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

Completeness2/5

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

Given no annotations, no output schema, and a retrieval operation that likely returns structured data, the description is incomplete. It doesn't explain what 'hunkuk codes' are, what format the information returns in, or any behavioral characteristics. For a data retrieval tool without structured output documentation, this leaves significant gaps.

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?

The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter situation (none). The description doesn't need to compensate for any parameter gaps. The baseline for 0 parameters with complete schema coverage is 4, as there's no parameter information to add beyond what's already clear from the schema.

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

Purpose3/5

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

The description states the purpose as 'retrieves hunkuk code information' which is a clear verb+resource combination. However, it doesn't distinguish this tool from its siblings like 'get_merit_list' or 'get_workout_affil_codes' - all appear to be retrieval operations for different data types. The purpose is understandable but lacks sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when this tool is appropriate versus other retrieval tools in the sibling list, or any context about what 'hunkuk codes' represent. The user must infer usage from the tool name alone.

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

get_merit_listC

독립유공자 공훈록 목록을 조회합니다

ParametersJSON Schema
NameRequiredDescriptionDefault
page_indexNo페이지 번호
count_per_pageNo페이지 당 데이터 건수 (최대 50건)
mng_noNo관리번호
name_koNo성명(한글)
name_chNo성명(한자)
diff_nameNo이명
birthdayNo생년월일 (YYYYMMDD, 년(1945), 년월(194501), 년월일(19450101))
lastdayNo사망년월일 (YYYYMMDD, 년(1945), 년월(194501), 년월일(19450101))
sexNo성별 (0: 여, 1: 남)
register_large_divNo본적대분류
register_mid_divNo본적중분류
judge_yearNo포상년도
hunkukNo훈격
workout_affilNo운동계열
achivementNo공훈록

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure but provides minimal information. It doesn't mention that this is a read-only operation (implied by 'get' but not explicit), doesn't discuss pagination behavior beyond what's in the schema, doesn't mention rate limits, authentication requirements, or what happens when no filters are applied. For a tool with 15 parameters and no annotations, this is insufficient behavioral context.

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?

The description is a single, efficient sentence in Korean that directly states the tool's purpose. There's no wasted language or unnecessary elaboration. It's appropriately sized for a data retrieval tool and gets straight to the point without preamble.

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

Completeness2/5

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

For a tool with 15 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the returned data looks like, how results are structured, whether there's pagination beyond the two pagination parameters, or what happens when multiple filters are applied. The description fails to provide the necessary context for an agent to understand the complete behavior of this data retrieval operation.

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?

The schema description coverage is 100%, so all parameters are documented in the input schema. The description adds no additional parameter information beyond what's already in the schema - it doesn't explain how filtering works, whether parameters are AND/OR combined, or provide examples of parameter usage. With complete schema coverage, the baseline score of 3 is appropriate.

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?

The description clearly states the verb ('조회합니다' - retrieve/lookup) and resource ('독립유공자 공훈록 목록' - list of independence merit records). It's specific about what data is being accessed. However, it doesn't distinguish this tool from its siblings like 'get_public_report' or explain how this list differs from other data retrieval tools in the server.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There's no mention of when this list retrieval is appropriate compared to other sibling tools like 'get_public_report' or when to use the filtering parameters versus retrieving all records. The agent receives no contextual usage instructions.

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

get_public_reportC

독립유공자 공적조서를 조회합니다

ParametersJSON Schema
NameRequiredDescriptionDefault
page_indexNo페이지 번호
count_per_pageNo페이지 당 데이터 건수 (최대 50건)
mng_noNo관리번호
name_koNo성명(한글)
name_chNo성명(한자)
diff_nameNo이명
birthdayNo생년월일 (YYYYMMDD, 년(1945), 년월(194501), 년월일(19450101))
lastdayNo사망년월일 (YYYYMMDD, 년(1945), 년월(194501), 년월일(19450101))
sexNo성별 (0: 여, 1: 남)
register_large_divNo본적대분류
register_mid_divNo본적중분류
judge_yearNo포상년도
hunkukNo훈격
workout_affilNo운동계열
achivementNo공적개요
achivement_koNo공적개요 국한문병기

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure but only states the basic action. It doesn't mention whether this is a read-only operation, whether it requires authentication, what format the results come in, whether there are rate limits, or how pagination works despite having pagination parameters. For a tool with 16 parameters and no annotation coverage, this is insufficient.

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?

The description is a single, efficient sentence in Korean that directly states the tool's purpose without any unnecessary words or structural complexity. It's perfectly front-loaded with the essential information.

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

Completeness2/5

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

For a complex tool with 16 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns, how results are structured, whether it's a search or lookup operation, or how the various filtering parameters interact. The agent would struggle to use this tool effectively without trial and error.

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?

The description adds no parameter information beyond what's already in the schema, which has 100% coverage with detailed descriptions for all 16 parameters including formats, constraints, and enum values. The baseline score of 3 is appropriate since the schema does all the heavy lifting for parameter documentation.

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?

The description clearly states the verb ('조회합니다' - retrieves/looks up) and resource ('독립유공자 공적조서' - independence activist merit records), making the purpose immediately understandable. It doesn't specifically differentiate from sibling tools like 'get_merit_list' which might retrieve similar data, so it doesn't reach the highest score for sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'get_merit_list' or other sibling tools. There's no mention of prerequisites, appropriate contexts, or comparison with other data retrieval methods available in the server.

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

get_workout_affil_codesC

운동계열 코드 정보를 조회합니다

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states it retrieves information, implying a read-only operation. It lacks details on behavioral traits like rate limits, authentication needs, error handling, or what '정보' (information) entails in terms of format or scope, which is insufficient for a tool with zero annotation coverage.

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?

The description is a single, efficient sentence in Korean that directly states the action and resource. It's front-loaded with the core purpose, though it could be slightly more structured if it included minor usage hints without adding bulk.

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

Completeness2/5

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

Given the tool's simplicity (0 parameters, no output schema), the description is minimal but incomplete. It doesn't explain the return values or what 'code information' includes, and with no annotations, it fails to provide necessary context like data format or typical use cases, leaving gaps for an agent to understand full functionality.

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?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, but this is acceptable as there are no parameters to explain. A baseline of 4 is appropriate since the schema fully covers the absence of parameters.

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

Purpose3/5

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

The description states the purpose ('조회합니다' meaning 'retrieves' or 'looks up') and resource ('운동계열 코드 정보' meaning 'exercise series code information'), which is clear but basic. It doesn't differentiate from sibling tools like 'get_hunkuk_codes' or 'get_merit_list', leaving ambiguity about what makes this specific code type distinct.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It doesn't mention context, prerequisites, or exclusions, such as whether it's for reference data, filtering, or if other tools handle related codes. This leaves the agent without direction on appropriate usage scenarios.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedclear_cache
    • First observedget_hunkuk_codes
    • First observedget_merit_list
    • First observedget_public_report
    • First observedget_workout_affil_codes

TDQS

A3.5/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: cache management, code lookups for hunkuk and workout affiliation, and two types of merit record retrieval (list and public report). No ambiguity or overlap exists between these functions.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with 'get_' or 'clear_' prefixes, using snake_case throughout. The naming is predictable and readable across all five tools.

Tool Count5/5

With 5 tools, this server is well-scoped for its domain of Korean independence merit records. Each tool serves a specific, necessary function without bloat or redundancy.

Completeness4/5

The toolset covers core read operations (list, report, code lookups) and cache management well. A minor gap exists in write/update capabilities (e.g., no create or modify tools), but this is reasonable for a likely read-only public data service.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server utilizing Claude AI for generating intelligent queries and offering documentation assistance based on API documentation analysis.
    7 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A server implementing the Model Context Protocol to allow direct access to French legal resources (laws, codes, case law) from compatible Large Language Models like Claude, enabling interactive legal research through the Legifrance API.
    65
    MIT