독립유공자 공훈록 MCP 서버
This server provides access to Korean independence activists' merit records and public reports with the following functions:
Search Merit Records: Search for independence activists by name, birthdate, honors, and affiliations
Retrieve Public Reports: Access detailed public reports of independence activists
Access Honor Codes: View information about honor/merit classification codes
Access Affiliation Codes: Retrieve information about movement affiliation codes
Clear Cache: Reset cached data to ensure updated information retrieval
Supports environment variable configuration through .env files, allowing users to customize their connection to the Independence Patriots Merit Database.
Supports installation of the MCP server through Git repository cloning, enabling access to the e-gonghun-mcp codebase and its functionality.
Provides access to the MCP server code through GitHub repositories, specifically from the 국가보훈부 (Ministry of Patriots and Veterans Affairs) organization.
Offers specific installation and configuration support for macOS systems, including specialized setup instructions for the Claude Desktop integration.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@독립유공자 공훈록 MCP 서버안창호 선생님의 공적조서를 찾아줘"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Independence Meritorious Service Merit Record MCP Server
This is an MCP (Model Context Protocol) server that allows you to search the records of merit and records of achievements of independence activists in the Electronic Archives of the Ministry of Patriots and Veterans Affairs.
Preparation
Before you begin, you will need the following tools:
macOS or Windows
Claude Desktop Latest Version
uv 0.4.18 or higher (check with
uv --version)
macOS Preferences
# Homebrew 사용
brew install uv
# 또는 직접 다운로드:
# uv: https://docs.astral.sh/uv/Windows Preferences
# winget 사용
winget install --id=astral-sh.uv -e
# 또는 직접 다운로드:
# uv: https://docs.astral.sh/uv/Related MCP server: MCP Server Legifrance
How to install
# 프로젝트 복제
git clone https://github.com/국가보훈부/e-gonghun-mcp.git
cd e-gonghun-mcp
# 패키지 설치
uv pip install -e .Setting environment variables
Copy .env.sample file to .env and fill in the necessary settings.
cp .env.sample .envHow to use Claude Desktop
To use this tool on Claude Desktop, you need the following settings:
macOS Settings
Open the settings file:
code ~/Library/Application\ Support/Claude/claude_desktop_config.jsonAdd the following settings:
{
"mcpServers": {
"e_gonghun_mcp": {
"command": "uv",
"args": [
"--directory",
"/Users/사용자이름/projects/e-gonghun-mcp",
"run",
"gonghun-mcp"
]
}
}
}Windows Settings
Open the settings file:
code $env:AppData\Claude\claude_desktop_config.jsonAdd the following settings:
{
"mcpServers": {
"e_gonghun_mcp": {
"command": "uv",
"args": [
"--directory",
"C:\\Users\\사용자이름\\projects\\e-gonghun-mcp",
"run",
"gonghun-mcp"
]
}
}
}Restart Claude Desktop.
function
View the list of meritorious deeds of independence activists
Inquiry into the records of meritorious deeds of independence activists
Provides code information such as training and sports series
How to use API
The Model Context Protocol enables the following tools:
get_merit_list- Get the list of merits of independence activistsSearchable by name, date of birth, grade, athletic background, etc.
get_public_report- View the records of meritorious deeds of independence activistsget_hunkuk_codes- Gets information about hunkuk codesget_workout_affil_codes- Get workout affil code informationclear_cache- clears cached data
Example of use
Ask Claude Desktop the following questions:
3.1운동을 이천에서 참여한 독립유공자 목록을 가져와줘How it works
Interacting with Claude Desktop via the Model Context Protocol goes like this:
Server Discovery : Claude Desktop connects to the configured MCP servers on startup and checks the capabilities of each server.
Protocol handshake : Select an appropriate MCP server and negotiate capabilities via the protocol, then request data or operations from the server.
Extending Model Context : The MCP server provides additional context and data to the Claude model to enable it to generate more accurate and detailed responses.
Interaction Flow : When you make a query request in Claude Desktop, the MCP server processes the data and returns the results.
Security : The MCP server provides only specific functionality, runs locally, and requires user confirmation for critical operations.
License
MIT License
Copyright (c) 2024
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
This repository was created using Anthropic's Claude 3.7 Sonnet.
Available Tools
5 toolsclear_cacheB
캐시된 데이터를 모두 초기화합니다
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
훈격 코드 정보를 조회합니다
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
독립유공자 공훈록 목록을 조회합니다
| Name | Required | Description | Default |
|---|---|---|---|
| page_index | No | 페이지 번호 | |
| count_per_page | No | 페이지 당 데이터 건수 (최대 50건) | |
| mng_no | No | 관리번호 | |
| name_ko | No | 성명(한글) | |
| name_ch | No | 성명(한자) | |
| diff_name | No | 이명 | |
| birthday | No | 생년월일 (YYYYMMDD, 년(1945), 년월(194501), 년월일(19450101)) | |
| lastday | No | 사망년월일 (YYYYMMDD, 년(1945), 년월(194501), 년월일(19450101)) | |
| sex | No | 성별 (0: 여, 1: 남) | |
| register_large_div | No | 본적대분류 | |
| register_mid_div | No | 본적중분류 | |
| judge_year | No | 포상년도 | |
| hunkuk | No | 훈격 | |
| workout_affil | No | 운동계열 | |
| achivement | No | 공훈록 |
TDQS
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.
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.
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.
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.
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.
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
독립유공자 공적조서를 조회합니다
| Name | Required | Description | Default |
|---|---|---|---|
| page_index | No | 페이지 번호 | |
| count_per_page | No | 페이지 당 데이터 건수 (최대 50건) | |
| mng_no | No | 관리번호 | |
| name_ko | No | 성명(한글) | |
| name_ch | No | 성명(한자) | |
| diff_name | No | 이명 | |
| birthday | No | 생년월일 (YYYYMMDD, 년(1945), 년월(194501), 년월일(19450101)) | |
| lastday | No | 사망년월일 (YYYYMMDD, 년(1945), 년월(194501), 년월일(19450101)) | |
| sex | No | 성별 (0: 여, 1: 남) | |
| register_large_div | No | 본적대분류 | |
| register_mid_div | No | 본적중분류 | |
| judge_year | No | 포상년도 | |
| hunkuk | No | 훈격 | |
| workout_affil | No | 운동계열 | |
| achivement | No | 공적개요 | |
| achivement_ko | No | 공적개요 국한문병기 |
TDQS
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.
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.
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.
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.
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.
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
운동계열 코드 정보를 조회합니다
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
5 tool updates
- First observed
clear_cache - First observed
get_hunkuk_codes - First observed
get_merit_list - First observed
get_public_report - First observed
get_workout_affil_codes
TDQS
Scored across 5 tools
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.
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.
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.
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
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Model Context Protocol server for Studex tools, notifications, and profile integrations
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server utilizing Claude AI for generating intelligent queries and offering documentation assistance based on API documentation analysis.11 npm3MIT
- AlicenseNot gradedqualityDmaintenanceA 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.64MIT
- AlicenseBqualityBmaintenanceModel Context Protocol server for monitoring Operational Status of major digital platforms in Claude Desktop.18Mozilla Public 2.0
- FlicenseNot gradedqualityDmaintenanceA Python server implementing the Model Context Protocol that exposes tools for querying external APIs, compatible with Claude Desktop and ChatGPT Desktop.-