Skip to main content
Glama

DAPA MCP

DAPA MCP 是支持韩国防卫事业业务的只读 Model Context Protocol 服务器。它不依赖 LLM 的记忆,而是查询 법제처 국가법령정보 공동활용 Open API 和带有来源标注的 DAPA_info。核心原则是 Search → Retrieve → Verify → Compare → Cite → Explain

实现 v0.1.0 Core 与法令信息 MCP Parity 第一阶段。提供本地 stdio、17 个工具、DAPA 官方法令·行政规则目录、法令详细结构化、沿革查询、基准日搜索。Streamable HTTP、专利、论文、新闻、公开数据、新旧条文比较尚未实现,已在 ROADMAP.md 中区分。

为什么是 MCP

  • 为避免混淆现行法令与过去·废止规定,优先采用官方来源。

  • 对引用的法令名·条文·案件编号再次查询验证。

  • 区分正常 0 结果的 NOT_FOUND 与 timeout·429·5xx·损坏响应的 SOURCE_UNAVAILABLE

  • 对组织·业务知识也标注来源、确认日期、是否验证。

Related MCP server: Korean Law MCP Server

架构

Claude / Gemini / Codex / MCP Client
                  │ stdio
                  ▼
         DAPA MCP Tool Registry
           ├── LawProvider ── 국가법령정보 Open API
           ├── DapaCatalogProvider ── DAPA 공식 목록 스냅샷
           └── DapaInfoProvider ── DAPA_info

详细设计与基准记录请参阅 docs/ARCHITECTURE.md

安装与运行

要求是 Node.js 20.19 或更高版本。

npm install
cp .env.example .env
npm run build
npm test
npm run start

npm run start 是 stdio JSON-RPC 服务器,因此在终端中等待是正常的。不会将普通日志输出到 stdout。

要更新官方 DAPA 法令·行政规则目录,请执行以下命令。

npm run sync:dapa-catalog

要将目录中的每个条目与 국가법령정보 공동활용 Open API 的现行搜索结果进行比对并生成未匹配列表,请执行以下命令。开发用脚本会显式传递公开的默认认证值。

LAW_API_OC=dusgh4847 npm run audit:dapa-catalog

在 PowerShell 中按如下方式执行。

$env:LAW_API_OC = "dusgh4847"
npm run audit:dapa-catalog
Remove-Item Env:LAW_API_OC

结果保存到 DAPA_info/legal/coverage-report.jsonmissing 表示 DAPA 官方目录中的标题在 국가법령정보 API 中未能以相同方式搜索到,并不断言法律上不存在。废止·制定历史、标题写法差异、正文仅以文件形式提供的条目需要另行确认。title_variant 是指 DAPA 显示标题与 API canonical 标题不同,但已确认为对应文档的情况。metadata_mismatch 是指标题相同但行政规则的发布编号·发布日期不同的情况;external_only 是指 DAPA 仅提供 국가법령정보 外部原文链接的法令。

该报告依赖于目录快照。如果重新同步目录,则必须重新执行审计,missing 数量并非法律上不存在,而是指尚未与 API 文档关联的候选条目。因此,不认为整个目录已被 국가법령정보 正文完全覆盖。

要将 업무·정책 菜单及各页面子选项卡的正文更新到 DAPA_info/policy/catalog.json,请执行以下命令。仅采集 방위사업청 内部页面,并根据 menuSeq 和最终页面 ID 去重。如果同时运行两次,会检测到锁文件并终止第二次同步。

npm run sync:dapa-policy

要依次调用官方 14 个类别·40 个细分 API 到当前实际服务器,检查列表·正文连接和错误,请执行以下命令。自定义默认示例代码使用官方指南中的 L/A/O 代码,并可通过环境变量替换。

LAW_API_OC=dusgh4847 npm run backtest:law-api

环境变量

名称

必需

默认值

说明

LAW_API_OC

dusgh4847

국가법령정보 공동활용 公开默认认证值;可通过其他值重新定义

LAW_API_TIMEOUT_MS

10000

请求 timeout

LAW_API_RETRY_LIMIT

2

429/5xx 重试上限

LAW_API_CACHE_TTL_MS

300000

API 搜索缓存 TTL(毫秒);为 0 时禁用缓存

LAW_API_MAX_TEXT_RESPONSE_BYTES

8388608

JSON/HTML API 响应最大字节数

LAW_API_MAX_RESOURCE_RESPONSE_BYTES

26214400

附表·格式文件最大字节数

LAW_API_MAX_TOOL_RESPONSE_CHARS

250000

法令 API MCP 工具的 JSON 输出最大字符数

DAPA_INFO_PATH

./DAPA_info

公开知识根目录

默认认证值 dusgh4847 已公开在代码和文档中,供任何人直接使用。如需使用其他认证值,请通过 LAW_API_OC 重新定义。.env 已从 Git 中排除。

국가법령정보 API 设置

无需单独的认证流程,即可使用默认认证值调用法令 API。如果拥有自己的认证值,MCP Client 会在启动服务器时通过 LAW_API_OC 环境变量传递,并在 source_health 中确认 law: healthy

MCP 工具

工具

作用

search_legal

搜索法令·行政规则·判例·宪法裁判·解释例·行政审判

search_legal_content

先查询 국가법령정보 API 候选列表,再一并查询各文档的详细正文·条文

get_legal_detail

按搜索结果 documentId 详细查询

get_legal_history

查询法令制定·修改·废止沿革

list_legal_apis

查询 DAPA 相关 국가법령정보 14 个类别·40 个列表/正文 API 目录

query_legal_api

通过目录 apiId 按需查询官方列表·正文

get_legal_api_body

通过列表 apiId 与结果标识符自动连接正文 API;提取附表·格式文件正文

verify_citations

验证法令条文与案件编号

search_dapa_info

搜索组织·术语·业务公开知识

get_dapa_organization

按组织名·别名详细查询

search_dapa_policy

搜索业务·政策菜单及子选项卡正文

get_dapa_policy_page

按搜索结果 ID 查询业务·政策完整正文

search_dapa_legal_catalog

搜索 DAPA 官方法令·行政规则目录

get_dapa_legal_catalog_item

查询 DAPA 官方目录条目详情

get_dapa_legal_content

将 DAPA 条目与 국가법령정보 正文关联后查询

dapa_catalog_status

DAPA 官方目录同步状态

source_health

检查 Provider 配置与状态

committee_decision 仅提供输入契约,尚未设置实际 Provider。asOfDate 通过 법제처 eflaw 基准日搜索处理;若没有该基准日的资料,则返回 NOT_FOUNDcurrentOnly 默认值为 true,行政规则也排除明确的沿革·废止状态。如需过去资料,请使用 currentOnly: false;如需重新查询最新 API,请使用 forceRefresh: true。成功搜索结果的默认缓存 TTL 为 5 分钟。

국가법령정보 API 范围

list_legal_apis 仅返回以下 14 个类别的 API 元数据。实际响应正文由 query_legal_api 在请求时从 법제처 查询列表,由 get_legal_api_body 接收列表结果的标识符或附件链接后查询正文,因此不会将全部法令数据加载到 MCP 上下文或 DAPA_info 中。list_legal_apis 的每个 API 都会返回可执行的 bodyTool;若存在独立的正文 API,则同时返回 bodyApiId

类别

列表·正文处理

事前咨询意见书

감사원 baiPvcs 列表·正文

中央部门初步解释

방위사업청 dapaCgmExpc 列表·正文

法令信息知识库

术语·条文·相关法令·智能搜索 9 种

自定义

法令·行政规则·自治法规列表及条文 6 种;需要 vcode

法令术语

lstrm 列表·正文

附表·格式

法令·行政规则·自治法规列表及 HWP/HWPX/PDF/XLSX/DOCX 原文正文提取

条约

trty 列表·正文

宪法裁判决定例

detc 列表·正文

法令解释例

expc 列表·正文

行政审判例

decc 列表·正文

法令

law 列表·正文

行政规则

admrul 列表·正文

自治法规

ordin 列表·正文

判例

prec 列表·正文

附表·格式在官方指南中没有独立的正文 API,因此应将列表响应中的 별표서식파일링크별표서식PDF파일링크 传递给 get_legal_api_bodyattachmentUrl。服务器仅下载官方 법제처 链接,并将文件转换为 Markdown 正文。自定义列表通过关联的普通法令正文 API 处理,自定义条文 API 则按其自身响应解析。

DAPA 目录保留官方主页的范围·分类·发布元数据,实际条文和法律正文则通过 search_legalget_legal_detail 的 국가법령정보 공동활용 API 查询。

连接 MCP Client

请将所有示例中的 /absolute/path/to/DAPA MCP 替换为实际绝对路径,并先进行构建。

Codex CLI

当前 Codex CLI 的本地 stdio 注册命令格式如下。

codex mcp add dapa-mcp -- node "/absolute/path/to/DAPA MCP/dist/index.js"
codex mcp list

Claude Code

使用 Claude Code 官方 MCP 文档 中的 stdio 格式。

claude mcp add --transport stdio dapa-mcp -- \
  node "/absolute/path/to/DAPA MCP/dist/index.js"
claude mcp list

Claude Desktop 目前建议采用将本地服务器部署为 Desktop Extension 的方式。v0.1.0 不提供 .mcpb 包,因此开发期间请使用 Claude Code stdio 连接。

Gemini CLI

按照 Gemini CLI 官方 MCP 文档,将其添加到 ~/.gemini/settings.jsonmcpServers 中。

{
  "mcpServers": {
    "dapa-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/DAPA MCP/dist/index.js"],
      "timeout": 30000,
      "trust": false
    }
  }
}

ChatGPT 与 OpenAI API

ChatGPT custom connector 与 OpenAI Responses API 的 MCP 工具使用远程 MCP server_url。v0.1.0 仅支持本地 stdio,因此不表示支持直接连接。在加入 Streamable HTTP 和认证的 Phase 2 之后,将按照 OpenAI 官方 Remote MCP 文档 进行连接。

DAPA_info 添加方法

结构化条目以包含 items 数组的 JSON 编写。必填字段为 idnamecategorydescriptionsourcesourceUrllastVerifiedAtverified。未经确认的信息以 verified: false 保存,且不以官方事实的方式表述。说明资料使用 Markdown 编写,并明确注明不能替代法律依据。

{
  "items": [
    {
      "id": "term-example",
      "name": "예시 용어",
      "aliases": [],
      "category": "terminology",
      "description": "쉬운 설명",
      "source": "공식 문서명",
      "sourceUrl": "https://example.go.kr/source",
      "lastVerifiedAt": "2026-08-27",
      "verified": false
    }
  ]
}

开发与验证

npm run lint
npm run typecheck
npm test
npm run build

测试包括规范化、本地知识搜索、官方 API wire fake、429/5xx/损坏响应、引用验证、实际 stdio MCP 列表·调用。

安全与法律注意事项

  • 仅存储可公开的信息。禁止个人隐私、非公开业务信息、军事机密、内网地址。

  • MCP 结果不能替代法律意见或政策决定。

  • verified: true 表示已从官方来源查询该数据,并非法律判断的保证。

  • 新闻即使将来添加,也不得用作法律依据。

数据来源与 License

源代码以 MIT License 分发。所提供数据的权利与使用条件遵循各原始提供机构的政策。详细声明见 NOTICE

Available Tools

17 tools
dapa_catalog_statusB
Read-onlyIdempotent

DAPA 공식 법령·행정규칙 카탈로그의 동기화 상태를 반환합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety is well covered. The description adds that the returned value is about catalog synchronization, but it does not describe response freshness, format, possible failure modes, or any operational behavior beyond the annotated read-only nature.

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 concise sentence that states the resource and the returned information without filler or redundant phrasing. It is appropriately minimal for a zero-parameter status tool.

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

Completeness3/5

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

For a parameterless, read-only status tool, the description is mostly adequate, and the annotations cover side-effect safety. However, there is no output schema, and the description does not explain what 'synchronization status' means or what possible values an agent should expect, leaving some ambiguity about how to interpret the response.

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 no properties, so there are no parameters to document. With 0 parameters, the baseline of 4 applies, and the description justifiably contains no parameter-level detail.

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 a specific action and resource: it returns the synchronization status of the DAPA official laws and administrative rules catalog. However, it does not explicitly differentiate itself from siblings such as source_health, which may also relate to status-like queries.

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 gives no guidance about when to use this tool versus alternatives, and no exclusions or preferred conditions. The only implied usage is 'when you need the catalog sync status,' but the description does not discuss sibling tools or decision criteria.

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

get_dapa_organizationA
Read-onlyIdempotent

방위사업청 조직명 또는 별칭으로 조직 상세를 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes조직명 또는 별칭

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the method of lookup (by name or alias) but does not go beyond that; no contradictions exist.

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, tightly written Korean sentence that conveys the resource, the lookup key, and the operation. Every word earns its place; there is no redundancy or filler.

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 simple, read-only lookup tool with one well-documented parameter and rich safety annotations, the description is complete enough for an agent to select and invoke it correctly. No output schema exists, but the phrase '조직 상세' sufficiently indicates the return is organization detail information.

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%: the single required parameter 'query' is already documented as '조직명 또는 별칭' (organization name or alias). The description essentially restates this same meaning without adding format, examples, or disambiguation guidance, so it adds no new semantic value beyond the schema.

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 uses a specific verb ('조회합니다' - retrieves) with a clear resource ('방위사업청 조직 상세' - DAPA organization details) and a clear lookup method (by organization name or alias). It is unambiguous and distinct from the legal/policy-focused sibling tools, though it does not explicitly contrast itself with any sibling.

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, no exclusions, and no context about when this lookup is appropriate. The sibling names imply it is organization-related rather than legal/policy-related, but that inference is left entirely to the agent.

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

get_dapa_policy_pageA
Read-onlyIdempotent

search_dapa_policy에서 받은 ID로 업무·정책 페이지 전체 본문을 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds that the tool returns the entire page body, which is useful, but it doesn't disclose return format, error behavior, or any additional constraints. This is adequate but not rich.

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?

A single, front-loaded sentence with no filler. It efficiently communicates the action, resource, and parameter source in one compact statement.

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?

The tool is simple: one parameter, no output schema, and rich safety annotations. The description covers what the tool returns (full body text) and the prerequisite ID source. It is complete enough for the low complexity, though a bit more detail about response format would be ideal.

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?

With 0% schema description coverage, the description compensates by explaining that the single 'id' parameter is the ID received from search_dapa_policy. This gives the parameter semantic meaning beyond the raw schema, though it does not specify the ID format or how to extract it from search results.

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 clearly states the action ('retrieves the full body text') and the resource ('work/policy page'), and specifies that the ID comes from search_dapa_policy. This distinguishes it from sibling tools like get_dapa_legal_content and search_dapa_policy itself.

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

Usage Guidelines4/5

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

The description provides a clear usage context: call this after search_dapa_policy to fetch the full page body for a returned ID. It does not explicitly list exclusions or alternatives, but the ID-source constraint makes the intended workflow obvious.

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

search_dapa_infoB
Read-onlyIdempotent

공개 출처 기반 DAPA_info에서 조직·용어·업무 지식을 검색합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
categoriesNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that the search is based on public sources, which is useful context, but it does not disclose other behavioral details such as result ordering, filtering behavior, pagination, or any limitations. It is consistent with the annotations, so no contradiction exists.

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 succinct Korean sentence with no filler or redundancy. It front-loads the key information—public-source basis, resource name, and subject scope—and every phrase earns its place. This is an appropriately sized description for a straightforward search tool.

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?

With three parameters, no output schema, and a large set of sibling tools, the description is too minimal to be contextually complete. It does not explain return values, how queries should be structured, what categories control, or how this tool relates to similar search tools. The read-only annotations cover safety but not operational completeness.

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

Parameters1/5

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

Schema description coverage is 0%, so the description carries the full burden of explaining parameters like query, limit, and categories. It completely fails to do so, mentioning only the broad knowledge types that loosely correspond to category values without explaining their meaning, format, or defaults. The description adds no value beyond the schema's structural definitions.

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 states a specific verb (검색합니다, 'searches'), a clear resource (DAPA_info), and a scoped set of subjects (조직·용어·업무 지식, 'organization, terminology, and work knowledge'). This makes the tool's function clear at a glance, but it does not explicitly differentiate it from sibling tools such as search_legal or search_dapa_policy, relying on the resource and subject scope to imply the distinction.

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 description implies when to use the tool: when searching DAPA_info for organizational, terminology, or work knowledge. However, it provides no explicit guidance about when not to use it, nor does it mention alternatives among the many sibling search tools. The usage context is present but not fully developed.

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

search_dapa_policyB
Read-onlyIdempotent

방위사업청 업무·정책 메뉴와 하위 탭에서 동기화한 공개 본문을 검색합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
sectionNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already cover read-only, open-world, idempotent, and non-destructive behavior. The description adds useful context that the content is public and synchronized from specific menus, but it does not disclose pagination, ranking, or synchronization freshness.

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 tight sentence with no filler. It front-loads the action and object, making it easy to scan.

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

Completeness3/5

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

For a simple read-only search with one required parameter, this is minimally viable: an agent can invoke it with just a query. However, the optional section parameter is unexplained, there is no output schema, and the definition does not differentiate it among 15 sibling tools.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain query syntax, the meaning of limit, or valid section values. The mention of 'menu and sub-tabs' hints at the section parameter's conceptual scope, but it does not actually map to the parameter.

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 specific verb and resource: it searches public body text synchronized from the DAPA work/policy menu and its sub-tabs. This makes the tool's scope reasonably distinct from legal-search and general-info siblings, though it does not name an alternative.

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 gives no explicit when-to-use or when-not-to-use guidance. An agent must infer the appropriate context from the name and the phrase 'searches', leaving ambiguity against close siblings like search_dapa_info and search_legal_content.

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

source_healthA
Read-onlyIdempotent

각 데이터 Provider의 설정 및 가용 상태를 반환합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the return content (configuration and availability), but it does not disclose behavior such as freshness, failure modes, or how availability is determined.

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 concise sentence that front-loads the action ('returns') and the resource ('configuration and availability status of each data provider'). There is no redundancy or filler.

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?

For a no-parameter read-only status tool, the description is mostly complete and the annotations cover safety. However, there is no output schema and the description only vaguely names 'configuration and availability status' without specifying the exact response shape or fields.

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 zero parameters, so the description is not expected to explain parameter semantics. The schema and description are consistent, with 100% coverage of an empty parameter set.

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 tool returns the configuration and availability status of each data provider, giving a specific verb and resource. It is distinct from the legal-focused sibling tools, though it does not explicitly contrast itself with them.

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 implies a health/status-check use case but provides no explicit guidance on when to use this tool versus alternatives or any exclusions. An agent would need to infer applicability from the tool name and general context.

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

verify_citationsA
Read-onlyIdempotent

법령 조문 또는 사건번호가 공식 출처에 실제 존재하는지 검증합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
citationsYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds useful context about checking against official sources rather than local data, but it does not disclose what the tool returns or how it behaves when a citation does not exist.

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, focused sentence with no filler. It front-loads the key resource ('statutory provisions or case numbers') and the action ('verify existence'), earning its place entirely.

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

Completeness3/5

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

The tool has one simple parameter and strong annotations, which help. However, there is no output schema and the description does not state the return format or per-citation behavior, leaving an important gap for an agent that needs to interpret the verification result.

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 description coverage is 0%, and the description adds some meaning by clarifying that the 'citations' strings are statutory provisions or case numbers. However, it does not provide format examples or further detail about accepted citation syntax, so the parameter semantics are only partially compensated.

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 states a specific action ('verifies'), a clear resource ('statutory provisions or case numbers'), and the scope ('actual existence in official sources'). This clearly distinguishes it from the many search/get sibling tools by focusing on existence verification rather than retrieval.

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 implies the tool should be used when one needs to confirm whether legal citations actually exist, but it provides no explicit guidance about when to use this tool versus alternatives such as search_legal, search_legal_content, or get_legal_detail. No exclusions or conditions are mentioned.

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. Dates show when Glama detected each change.

  1. 17 tool updatesv0.1.0
    • First observeddapa_catalog_status
    • First observedget_dapa_legal_catalog_item
    • First observedget_dapa_legal_content
    • First observedget_dapa_organization
    • First observedget_dapa_policy_page
    • First observedget_legal_api_body
    • First observedget_legal_detail
    • First observedget_legal_history
    • First observedlist_legal_apis
    • First observedquery_legal_api
    • First observedsearch_dapa_info
    • First observedsearch_dapa_legal_catalog
    • First observedsearch_dapa_policy
    • First observedsearch_legal
    • First observedsearch_legal_content
    • First observedsource_health
    • First observedverify_citations

TDQS

B3.4/5.0
Disambiguation3/5

The set is separated by source and action, but get_legal_detail, get_legal_api_body, get_dapa_legal_content, and search_legal_content all concern retrieving legal document text or detail, creating real selection risk. The five search_* tools are more distinct because their source targets are clearer.

Naming Consistency4/5

Most tools follow a predictable verb_noun snake_case pattern such as search_*, get_*, and list_*. A few exceptions like source_health and dapa_catalog_status are noun-phrase status checks, and the placement of 'dapa' varies across names.

Tool Count4/5

With 17 tools, this is on the heavier side but each covers a distinct area: official legal APIs, DAPA catalog, policy pages, organization lookup, citation verification, and provider health. The count is slightly above a lean toolkit but not bloated.

Completeness4/5

The read-only domain is broadly covered with search, detail retrieval, legal history, citation verification, catalog status, policy pages, and organization lookup. Minor gaps remain for enumerated browsing such as listing all policy pages or the full organization tree, but agents can work around them.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables searching and retrieving Korean legal information including laws, court precedents, legal interpretations, and local ordinances from the Korean National Law Information Center API with intelligent search ranking.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables real-time search and analysis of Korean laws, legal precedents, and administrative rules through the National Law Information Center Open API, allowing AI agents to access official legal information for contract review, compliance, and legal research.
    73
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables exploration of Korean National Assembly data by connecting bills, committee reviews, and official records. Allows users to ask natural language questions and receive structured answers with citations to original documents.
    26
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI programs to search and retrieve approved public regulations with citations, supporting PDF, HWP, HWPX, and DOCX formats.
    43
    MIT

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/ai-studying-man/DAPA-MCP'

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