Skip to main content
Glama

kcsc-design-mcp

MCP-сервер для мгновенного получения оригинальных текстов национальных строительных норм (KDS, KCS и др.) прямо в окне ИИ-чата.

Сервер напрямую подключается к OpenAPI Национального центра строительных норм (KCSC). Достаточно указать свой ключ авторизации — и инструмент работает в любой среде, поддерживающей MCP: Claude Desktop, Claude Code, Cursor и т. д.

"KDS 14 31 10 의 압축부재 폭두께비 표 보여줘"
→ 표 4.2-2 를 마크다운 표 그대로 인용

⚠️ Чего этот инструмент не делает

Он не заменяет расчёт конструкции.

  • Формулы и символы (λr, Fcr и т. п.) приходят из KCSC в виде изображений, поэтому в текстовом виде их нет. Инструмент помечает такие места как 〔그림 N〕 и не выдумывает формулы.

  • Если нужна формула — получите её через kcsc_formula в виде картинки как есть. Это настоящая формула из настоящего стандарта. Если считать, не глядя на изображение, то формула взята не из оригинала, а из памяти ИИ. Она может оказаться верной, а может — ошибочной, и по одному выводу это не отличить. → В этом случае проверьте цитирование через kcsc_audit и укажите этот факт.

  • Создаваемые Excel-файлы — это пустые шаблоны. Расчётные формулы в них не закладываются: в исходном документе формула является изображением, поэтому её содержимое знать, а подставлять неизвестную формулу — это авария.

  • Прилагаемое дерево решений — не проверенная проектная документация. Это лишь порядок рассмотрения и обосновывающие статьи. В местах, где KDS не задаёт значение, стоит значение, выбранное организацией, выпустившей это дерево. Его нужно адаптировать под регламент своей организации, и ответственность за это решение несёт проектировщик, его использующий.

  • Окончательное решение принимает проектировщик. Ошибка всего в одной нагрузке моста может привести к несчастному случаю с людьми.


Related MCP server: KJH Law MCP

Установка

Сначала понадобится ключ авторизации — запросите OpenAPI в Национальном центре строительных норм на сайте https://kcsc.k.re.re/god.

Clade Desktop / Claude Code

В файл claude_desktop_config.json (или .mcp.json) добавьте один блок, приведённый ниже, целиком.

{
  "mcpServers": {
    "kcsc": {
      "command": "uvx",
      "args": ["kcsc-design-mcp"],
      "env": { "KCSC_API_KEY": "발급받은_키" }
    }
  }
}

Если уvx нет, сначала установите uv. Отдельная процедура установки не требуется.

Расположение файла настройки — Claude Desktop (Windows): %APPDATA%\Claude\claude_desktop_config.json; Claude Code: .mcp.json в корне проекта. После перезапуска приложения будут доступны 14 инструментов.

Запуск прямо из исходного кода

pip install -e .
KCSC_API_KEY=발급받은_키 python -m kcsc_mcp

Инструменты

Оригинальные тексты нормативных документов

Инструмент

Назначение

kcsc_search(query, code_type, limit)

поиск стандарта по названию (около 3570)

kcsc_outline(code, code_type, depth)

содержание — иерархия номеров статей

kcsc_read(code, section, code_type, max_chars)

полный текст раздела (с сохранением таблиц)

kcsc_formula(code, section, code_type, max_images)

★ формулы этого раздела — картинками как есть

kcsc_grep(code, keyword, code_type, limit)

найти в тексте разделы, где встречается это слово

kcsc_audit(text, code)

машинная проверка цитат в расчётах (см. ниже)

kcsc_version(code, code_type)

версия и дата правки (проверка того, изменения ормы)

Помощь проектированию — дерево решений

Инструмент

Чем занимается

design_flows()

список доступных деревьев (тип элемента, сечение, метод расчёта, статус проверки)

design_map()

★карта связей деревьев — куда какая ветвь ведёт и чего ещё нет

design_flow(member, shape, method)

проектный поток + одновременно запрос текста обосновывающих статьей каждого шага

design_sheet(member, shape, method)

пустой Excel на проверку сечения → путь к файлу

design_validate(tree_yaml | path)

проверка дерева — по API фактически существует указанные статьи

design_template(member, shape, method)

заготовка YAML для нового элемента

design_stamp(path | all_confirmed)

проставить на утверждённом дереве момент утверждения (검증일·검증기준) — если норматив изменился, проверка отметит такое дерево как «утвержденья по старой редакции»

Код принимается в форматах KDS 14 31 10, 14 31 10, 143110. kcsc_grep и kcsc_version принимают несколько кодов через запятую — grep читает весь документ целиком, поэтому максимум 10 за раз.


kcsc_formula — формулы как изображения без обработки

Формулы в исходниках — это GIF-изображения. У них нет ни alt, ни MathML, поэтому в текстовой форме они не существуют. К ключу они не привязаны — ключ даёт только право обращения.

При этом сами изображения чёткие. Поэтому этот инструмент возвращает картинки в исходном виде.

kcsc_formula('KDS 14 31 10', '4.2.3')

→ 텍스트 1개 + 이미지 17개
  〔그림 2〕  Pn = Fcr·Ag                    (4.2-1)
  〔그림 6〕  Fcr = [0.658^(Fy/Fe)]·Fy       (4.2-2)
  〔그림 9〕  Fcr = 0.877·Fe                 (4.2-3)
  〔그림 11〕 Fe = π²E/(KL/r)²               (4.2-4)

Номера совпадают с 〔그림 N〕 в тексте, полученном через kcsc_read. Можно читать сплошной текст и открывать только те формулы, которые нужны.

Стоимость почти нулевая — примерно 27~216 vision-токенл за раздел. Но в одном разделе жет бывает и 71 изображение; по умолчанию передаётся не больше 40, можно ограничитель через max_images.

※ Чтение изображения — тоже распознавание, поэтому нижние индексы могут быть прочитаны неточно. Однако проектировщик видит то же изображение и может сверяться; а вот формула, восстановленная по памяти памяти, не имеет даже объекта для сверки.


kcsc_audit — машинная проверка цитат в расчётах

Это инструмент, который не запрещает считать, но делает результат проверяемым. В ответ вставляете весь расчёт — инструмент извлекает из него номера норм, статей, формул и таблиц и проверяет каждый пункт.

## 인용 검증 — 6건 중 6건 확인 · 0건 실패

| 종류 | 기준 | 인용 | 확인 |
| 조항 | KDS 143110 | 4.3.2.1.1.4 | ✅ 강축 휨을 받는 기타 H형강…  ⚠️수식이미지 |
| 식   | KDS 143110 | 4.3-11      | ✅ 4.3.2.1.1.4 절에 있음 |
| 표   | KDS 143105 | 표 3.4-1    | ✅ 3.4.1 절에 있음 |

★4.3.2.1.1.4 절의 식은 원문이 이미지입니다. 도구가 읽지 못했습니다.
  → 이 계산에 쓰인 식·계수는 원문에서 온 것이 아니라 모델이 채운 것입니다.

Зачем это нужно — это произошло в реальной практике. В ответе по поводу прочности на изгиб нерегулярной H-баллона использовался пункт KDS 14 13 10 4.3.2.1.1.4, получилось φMn=83.8 kN·m, и при перепроверке оказалось верным всё. Но в тексте того раздела формул не дан не было ни одной. Точная запись формул и коэффициентов взята не из чтения нормы, а из памяти ИИ.

В этот раз оказалось правильно. Проблема в том, можно ли определить “верно или неверно” только по тексту вывода — невозможно.

Проверить невозможно (это обязательно нужно читать вместе)

  • правильность содержания формулы — нельзя, потому что в оригинале она изображение

  • положено ли данное статья для данного элемента / данного условия — это область суждения

  • правильность расчёта ограничения

Подтвердить можно только факт: «такой номер реально существует в этом месте». Если считывать из результата больше, чем это, — инструмент начнёт создавать новую ложную уверенность.


Деревья решений — все 35 в комплекте

Логика проектирования не зашита в код: один YAML = один элемент конструкции, и лежит он во внешнем каталоге.

저장소 flows/   결정트리 35개 — LRFD 18 · 한계상태 9 · 허용응력 8 (이음 118개, 끊긴 곳 0)
패키지 동봉     형식 견본 1개 — `검증: 예제` 로 박아 둠. 그대로 쓰라는 게 아님
사용자 폴더     ~/.kcsc-mcp/flows/*.yaml   ← 여기에 두면 도구가 읽는다

Скачайте flows/ и положите в ~/.kcsc-mcp/flows/, либо укажите папку через переменную KCSC_FLOWS_DIR. При совпадении (тип элемента, сечение, метод расчёта) папка пользователя перекрывает приложенный пример.

★Не применяйте полученные деревья как есть. В местах, где KDS не определяет величину, стоят значения, выбранные организацией, выпустившей деревья (предельный оседл L/600, диапазон обхода частот, коэффициент сопряжения элементов 75%/90% и так далее). Какие именно значения такого рода — смотрите в таблице из flows/README.md. Пересчитайте под нормы своей организации.

Дерево — исходный материал для обоснования, а не проверенная проектная документация. Соответствует ли схема действительному производству, машина не проверяет. Проектировщик должен развернуть каждый шаг, просмотреть и оценить сам.

Чтобы создать собственно дерево, возьмите заготовку через design_template, заполните её и прогнать через design_validate.

★ Деревья связаны друг с другом

Расчётная записка не заканчивается одним деревом. Нельзя просто оборвать поток на границе своей области — нужно передать его следующему дереву или следующему стандарту.

분기:
  - {조건: "약축 휨이다",     결과: "약축 조항으로", 다음트리: "휨부재 / 약축 H형강"}
  - {조건: "블록전단 검토",   결과: "연결부 기준",   다음기준: "KDS 14 31 25  4.1.4.3"}
  • Если в 다음트림 метод расчёта опущен, он наследуется из текущего дерева — потому что принцип «у другого метода — другое дерево» не должен нарушаться даже в соединениях.

  • Если направление указывает на ещё не существующее дерево, инструмент честно говорит «нет». Он не обрывает молча. Список таких отсутствующих — и есть ответ на вопрос «что ещё нужно создать, чтобы закончить расчётную записку».

design_map() выводит эту карту — какое дерево куда ведёт, и какие деревья были названы, но отсутствуют. Среди приложенных 35 деревьев все 118 переходов замкнуты — пропущенных точек 0. Если добавить своё дерево, эта карта подскажет «что ещё нужно создать, чтобы завершить расчёт».

Что ловит design_validate

  • пропускка в схема схемы, дубликаты идентификаторов хода

  • указание на ход, у которого нет ветвления — дерево обрывается в этом месте

  • выдуманные / опечаточные / отменённые номера статей — с помощью API проверяется, существует ли такой раздел или таблица в норме

  • несогласованность между методом расчёта и нормативом-основанием — включено ниже

  • изменение нормативов после утверждения — сопоставляются 기준 (действующая версия на момент утверждения) и текущая; при изменении появится ❌ (урnowивать первоначальное решение уже нельзя)

Дерево пишет человек, а существование обоснования проверяет машина. Именно насквозь придуманные номера статей — самый опасный случай.

★ Значение по умолчанию — мосты

Архитектурные металлоконструкции (KDS 14 3x) и мосты (KDS 24 xx) — это совершенно отдельные серии норм. Отдельные даже наборы сочетания нагрузок и расчётной нагрузки.

교량   한계상태설계법  KDS 24 14 31 강교   (+ 하중조합 24 12 11 · 설계하중 24 12 21)  ← 도로교
교량   허용응력설계법  KDS 24 14 30 강교   (+ 하중조합 24 12 10 · 설계하중 24 12 20)  ← ★철도교
건축   하중저항계수설계법(LRFD)  KDS 14 31 xx
건축   허용응력설계법(ASD)       KDS 14 30 xx   ← 「하중저항계수설계법 규정이 없는 강구조」의 일반 ASD

По смыслу LRFD тоже является одним из предельных состояний, но по имени нормативного документа это самостоятельная серия. Если их перепутать, мостовику отдадут архитектурный норм.

У KDS 24 «Группа общего метода начисления (допускаемое напряжение)» в исходном текста пункт 1.1 относится к железнодорожным мостам — 24 14 30 “стальные железнодорожные и высокоскоростные мосты”, 24 12 10/24 12 20 “железнодорожные мосты”. В пределах KDS не существует норм на проект автодорожных и пешеходных мостов по пособимым напряжением (для автограж — только предельные состояния). Инструмент фиксирует это в дереве как есть; для пешеходного моста ASD идут так: элементы = KDS 14 30 xx, сочетание загрузок и повышающий коэффициент = 24 12 10 (решение принимает организация). Если значение один заявить «24 14 30 как ASD для автомобильной дороги», не читая оригинала, у такого утверждения не будет обоснования.

Поэтому если область не указана — считается мост.

  • design_flow(..., domain='건축') — явно указать построение (архитектура)

  • search(..., domain='건축') / domain='전체') — для поиска действует то же правило

  • В результатах поиска обозначается область, а записи вне области по умолчанию выводится со знаком предупреждения ниже положение по списку, и с предупреждением

  • Значение по умолчанию изменяется с переменной KCSC_DOMAIN (например, для компании архитектурного профиля — KCSC_DOMAIN=건축)

★ Если метод расчёта разный — дерево другое

Даже при том же типе элемента и том же сечении при смене метода расчёта меняются исходно разные нормы.

한계상태설계법(LRFD)  → KDS 14 31 10  강구조 부재 설계기준 (하중저항계수설계법)
허용응력설계법(ASD)   → KDS 14 30 10  강구조 부재 설계기준(허용응력설계법)
  • Если method не указан, в выводе указывается в голове, по дерево какого метода был дан ответ.

  • Если подходит несколько дерев — инструмент уточняет, не берет случайно.

  • Если запрашивается отсутствующего метода — отвечает, что такого метода нет. Не выдаёт так, будто он есть.

code_type имеет следующие 9 значения: в каталоге KCSC есть не только национальные стандарты (KDS, KCS), но и ведомственные спецификации отраслевых организаций.

Тип

Значение

Количество

KDS

проектные нормы

561

KCS

стандартные техусловия

769

SMCS

технические условия города Сеул

853

LHCS

технические условия LH

544

EXCS

технические условия корпорации автомобильжных дорог

328

KRCCS

технические условия корпорации ж/д

226

KWCS

техусловия корпорации водных ресурсов

189

NHCS

техусловия корпорации сельского/рыбного хозяйства

76

KRACS

техусловия корпорации аэропров

26


Переменные окружения

Переменная

Обязательная

Описание

KCSC_API_KEY

(обязательно)

Ключ авторизации KCSC OpenAPI

KCSC_HOME

~/.kcsc-mcp

Куда сохраняются к мэ, деревья решенийю queries Excel

KCSC_FLOWS_DIR

~/.kcsc-mcp/flows

отдельное указание только папки деревьев

KCSC_INSECURE

0

обход проверки TLS (см. ниже)

KCSC_TIMEOUT

90

время ожиданиея ответа (сек)

KCSC_KATALOG_TTL

86400

сутой кэша каталога (сек)

KCSC_DOC_TTL

604800

Сурок кэша текста (сек)

KCSC_DOMAIN

교량

Область по умолчанию. Если не задано, какой серии относиться положение

KCSC_MAX_CHARS

20000

максимальный вывод одного вызова инструмента

О проверке TLS

Этот сервер проверяет TLS. В прошлом в некоторых окружениях цепочка TSL-сертификатов KCSC не была в системном корневом хранилище, из-за чего проверка происходила сбоя (на момент проверки 2026-08-05 работает нормально).

Если проверка не проходит, сервер не обходит ее молча, а останавливается и сообщает. Это базовый только читающий публичный API, поэтому риск низкий, но вопрос обхода решает только тот, кто работает с сервером. Чтобы обойти — явно включите переменную KCSC_INSECURE=1.


Что стоит помнить

  • Поиск по названию не заходит в текст документа. Например, слово «강관» встречается в тексте десятков нормативов, а в названиях только в пяти. Чтобы искать по тексту — используйте kcsc_grep.

  • Формулы не индексируются. Символы λr, Fcr не имеют текстового представления, потому что в оригинале они изображения. kcsc_grep не найдёт их символ — искать нужно по слову (например, «세장판»).

  • Коды из шести цифр перекрываются между типами документов. 143110 встречается одновременно в KDS (проектные нормы для металлоконструкций), KCS, SMCS, EXCS, LHCS (везде «изготовлено»). Если тип не указан, сначала читаются национальные нормы (KDS→KCS), но в шапке ответа обязательно сообщается факт выбора и перечислены остальные кандидаты.

  • У верхних классификационных узлом нет текста. Такие узлы, как KDS 100000 (общие проектные нормы), являются только навигационными umbrella-записями — отдельных статей не имеют. Инструмент так и сообщает.

  • Номера статей могут повторяться внутри документа. В некоторых нормативном (например, в KCS 14 31 10) в приложении номера начинаются с 1. заново, поэтому section="1" может вывести и основной текст, и прилож.

  • Пакет не перераспределяет данные. Оригинальный текст норм в пакет не вкладён; полученные документы хранятся только в ~/.kcsc-mcp/cache на компьютере пользователя.


Заметки разработчику

Независимо от того, как API ведёт себя на практике, и обо ошибках, о заряженных при работе, рассказано в docs/KCSC_API.md. Историю верch — в CHANGELOG.md.

Лицензия

Объект

Лицензия

Код (src/)

MIT — LICENSE

Decisionи деревья (flows/)

CC BY-SA 4.0 — flows/LICENSE. Если вы его изменяете и распространяете результат, вы обязаны распространять его под теми же условиями

Текущая версия корма

Национальний центр строительных норм (KCSC). Этот пакет не прикладывает и не распространяет исходники — каждый получает их через свою ключ. NOTICE

Copyright (c) 2026 HydroKorea Co., Ltd.

Контакты

Вопросы, сообщения об ошибках и сообщения об ошибках в номерах статей отправляйте через GitHub Issues. Для ошибок в деревьях используйте форму «Сообщить об ошибку дерева» — тогда не будет пропущено, какое именно шаг и какой пункт относится к проблеме.

Available Tools

13 tools
design_flowA

부재의 설계 흐름을 단계별로 낸다. 각 단계의 근거 조항 원문을 함께 조회해 붙인다.

member: 부재 (예: 압축부재) shape: 단면 (예: 원형강관) method: 설계법 (예: 한계상태설계법 · 허용응력설계법). ★같은 부재·같은 단면이라도 설계법이 다르면 근거 기준 자체가 다릅니다. 트리가 여럿이면 되묻고, 임의로 고르지 않습니다. with_source: 각 단계의 근거 조항 원문을 함께 낼지. 끄면 흐름만 낸다. excerpt_chars: 단계마다 붙일 원문 길이.

※ 이 도구는 흐름과 근거까지입니다. 값 입력·계산·최종판단은 설계자가 합니다.

NameRequiredDescriptionDefault
shapeNo
domainNo
memberYes
methodNo
with_sourceNo
excerpt_charsNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description bears the full burden. It discloses that the tool only outputs flow and basis, not calculations or final judgments, which is a key behavioral boundary. It also mentions the ask-back behavior for ambiguous cases. However, it does not describe what happens on invalid inputs, potential failure modes, or how the output is structured (beyond flow + source), which leaves gaps for an agent.

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 concise and uses a clear format with parameter definitions on separate lines and important notes highlighted with ★. It front-loads the core purpose and then enumerates parameters. Every sentence contributes value, though the mix of usage notes within parameter explanations could be slightly cleaner. Overall efficient.

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 6 parameters, no annotations, and an output schema exists (though not shown). The description covers the main flow and source inclusion, and the ask-back behavior. However, it misses the domain parameter entirely, does not explain how shape/method interact or what happens if they are left empty (defaults), and does not describe the output structure beyond 'flow + source'. Given the complexity, it is serviceable but incomplete.

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?

With 0% schema description coverage, the description must explain parameters. It explains member, shape, method, with_source, and excerpt_chars with examples, but completely omits the 'domain' parameter that appears in the schema. It also gives examples only for member, shape, and method, not for excerpt_chars or with_source (though with_source is boolean and self-explanatory). This is incomplete but covers most parameters.

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 it produces a step-by-step design flow for a structural member ('부재의 설계 흐름을 단계별로 낸다') and includes the basis clauses. It distinguishes itself from sibling tools by explicitly limiting its scope to flow and basis, not calculations or judgments. This is a specific verb+resource with clear differentiation.

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?

It provides guidance on when to use this tool vs alternatives: it clarifies that it only handles flow and basis, leaving calculations to the designer, implying other design tools do the heavy calculation. It also warns that if multiple trees exist, it asks back rather than choosing arbitrarily, which is a clear behavioral guideline. However, it does not explicitly name sibling tools or state when NOT to use it for other purposes.

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

design_flowsB

쓸 수 있는 설계 결정트리 목록. 부재·단면·설계법·검증상태를 함께 낸다.

트리는 두 곳에서 읽는다 — 패키지 동봉 예제와 사용자 폴더(~/.kcsc-mcp/flows/*.yaml). 같은 조건이면 사용자 폴더가 이긴다 (각 회사의 트리가 그 회사 기준이다).

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses non-obvious behavior: trees load from two sources, and the user folder takes precedence under identical conditions. This is meaningful for a read-only listing tool. It doesn't describe the returned shape, but an output schema exists to cover that. No destructive behavior applies here; disclosure 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.

Conciseness4/5

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

Two compact paragraphs with the core purpose front-loaded in the first sentence. Every sentence earns its place: purpose, return fields, data sources, and the precedence rule with bold emphasis. No filler or redundancy.

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 listing tool with an output schema, the description is well-rounded: it states what is listed, the composition fields, the loading locations, and the overriding precedence rule. The only gap is explicit sibling routing (covered under usage_guidelines); nothing essential for invoking a pure discovery tool is missing.

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 zero parameters, there is nothing to document in the schema, so the baseline is 4 and no param compensation is needed. The description appropriately focuses on what the tool yields rather than inputs, listing the compositional fields (부재·단면·설계법·검증상태) that the result set contains.

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+resource ('쓸 수 있는 설계 결정트리 목록' — list of usable design decision trees) and enumerates what it returns (member·section·design method·verification status). The plural name 'design_flows' plus the sibling 'design_flow' (singular) hints at differentiation, though it doesn't explicitly contrast itself with that 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 gives useful context about data sources and precedence (user folder `~/.kcsc-mcp/flows/*.yaml` overrides package examples) but offers no when-to-use guidance or routing to alternatives. With siblings like design_flow, design_map, and design_template, an agent gets no help deciding when to list flows versus fetch a concrete flow. The precedence info is behavioral, not usage-specific.

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

design_mapC

트리 이음 지도 — 어느 트리가 어디로 이어지고, 무엇이 아직 없는지 낸다.

구조계산서는 트리 하나로 끝나지 않는다. 휨부재가 "약축"으로 판정되면 약축 트리로, 인장부재가 블록전단 검토로 가면 연결 기준으로 이어져야 한다. 이 도구는 그 연결을 한눈에 보여 주고 끊긴 곳을 목록으로 낸다. 그 목록이 곧 "완성하려면 뭘 더 만들어야 하는가" 다.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals only that the tool 'shows' a map and produces a list of gaps, implying a read-only view, but it does not state side effects, whether it mutates anything, how complete the analysis is, or what happens when the map is empty. The intent is clear but the behavior is under-specified.

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

Conciseness2/5

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

The description is verbose and wrapped in layered metaphor ('트리는 하나로 끝나지 않는다', '그 목록이 곧 완성하려면 뭘 더 만들어야 하는가'). The core message — shows tree-to-tree connections and lists gaps — is buried in prose rather than front-loaded, and the poetic framing adds little operational value for an agent.

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?

An output schema exists, so the return value need not be spelled out, and with zero parameters there is no invocation risk. The description conceptually conveys the output (a map plus a list of gaps), which is adequate. However, the metaphor makes the exact semantics fuzzy — '끊긴 곳' is never precisely defined — so an agent's understanding of the tool's deliverable remains somewhat speculative.

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 takes zero parameters, so the baseline is 4; there is nothing for the description to document, and schema coverage is trivially 100%. It correctly avoids inventing parameter details, which is appropriate for a parameterless tool.

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 indicates the tool shows a connection map of design trees and lists what connections are missing (끊긴 곳), which conveys a core purpose. However, it is heavily metaphorical ('트리', '약축 트리', '연결 기준') and never states a concrete verb+resource, leaving whether it computes, visualizes, or audits ambiguous. It also does not differentiate itself from nearby siblings like design_flows or design_flow.

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 when-to-use or when-not-to-use guidance is given, and no alternative tools are named. The structural-calc context (weak-axis members, block-shear review) explains domain triggers for the connections being mapped, but never tells the agent under what condition it should select this tool instead of a sibling.

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

design_stampA

확정 트리에 확정 시점 기록(검증일·검증기준)을 박는다.

path: 트리 파일 경로. (또는) all_confirmed: True 면 사용자 폴더의 검증: 설계자확정 트리 전부에 박는다(기록 없는 것만). date: 확정한 날(YYYY-MM-DD). 비우면 오늘.

검증기준 은 트리가 인용하는 기준마다 지금 API 가 주는 판({코드: 버전})이다. 이후 design_validate 가 지금 판과 대조해 기준이 개정되면 "구판으로 확정된 트리" 라고 잡아낸다. 확정 자체가 자동으로 유효하지 않게 되는 것을 놓치지 않기 위한 기록이다.

★기록을 박는 것은 기계지만, 개정된 기준을 다시 확인하는 것은 설계자다.

NameRequiredDescriptionDefault
dateNo
pathNo
all_confirmedNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries full burden and largely succeeds: it discloses the side effect (stamping records), the guardrail (only stamps trees lacking records), date defaulting to today, and that the verification criteria snapshot comes from the current API. It also honestly states that rechecking revised standards is left to the designer, not the machine. Missing details like permissions or reversibility, but strong for a non-destructive stamp tool.

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 well-structured with line breaks and bold emphasis, placing the core purpose first and then parameter details. It's concise enough for the complexity, though there is slight redundancy in restating the purpose across the last paragraph (the 'why' is explained twice). Overall efficient.

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?

An output schema exists, so return values need no description. The main operational nuances (only stamp records absent, criteria snapshot semantics, interaction with design_validate) are addressed. Minor gaps remain: unspecified error handling or behavior when both path and all_confirmed are supplied, but acceptable for low complexity.

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?

Schema description coverage is 0%, so the description must compensate, and it does: path, all_confirmed, and date are each explained with default behavior. It also clarifies what the stamped verification criteria means (API-provided version per cited standard). Some ambiguity remains about path format or precedence when both path and all_confirmed are given, but the core semantics are covered.

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 stamps confirmation-time records (검증일·검증기준) into a confirmed tree, and explains the two modes (path vs all_confirmed). It references design_validate to signal relationship, but does not explicitly name what distinguishes it from all siblings, so not a 5.

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?

It provides parameter-driven usage (all_confirmed=True applies to all confirmed trees without records), and explains that the records are later consumed by design_validate. However, it never states explicitly when to use this tool versus alternatives, nor gives a 'do not use when' condition; usage is implied rather than stated.

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

design_templateA

새 부재용 결정트리 YAML 뼈대를 낸다. 빈 폴더에서 형식을 몰라 못 시작하는 것을 막는다.

member: 부재 (예: 휨부재) shape: 단면 (예: H형강) method: 설계법. 비우면 한계상태설계법(LRFD)으로 채운다 — ★쓰기 전에 반드시 확인하세요.

낸 뼈대를 채워 ~/.kcsc-mcp/flows/ 에 넣고 design_validate 로 검사하세요. 근거로 적은 조항이 실재하는지 그때 기계가 확인합니다.

NameRequiredDescriptionDefault
shapeYes
memberYes
methodNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations are absent, so the description carries the full disclosure burden. It does disclose useful behavior: the method parameter defaults to LRFD when left empty, the output destination path, and that design_validate checks cited clauses for existence. However, it never states whether the tool returns YAML text or writes a file — the phrase 'fill the produced skeleton and put it in' implies user placement but leaves the generation behavior ambiguous.

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 well structured with line breaks, bold highlights, and a ★ marker for the critical default-behavior warning. It is longer than average but every section earns its place: purpose, per-parameter semantics, and the downstream validation workflow. Nothing is redundant, though it could be trimmed slightly.

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?

Given it has an output schema (so return values need no explanation) and 3 parameters all undocumented in the schema, the description covers parameters, default behavior, output destination, and the validation handoff. The only notable omission is an explicit statement of the tool's output form, which the output schema presumably supplies.

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 schema description coverage at 0%, the description must compensate, and it does: each parameter gets a Korean semantic label (member = 부재, shape = 단면, method = 설계법), concrete examples (휨부재, H형강), and a default-value warning for method. This meaningfully exceeds what the bare schema provides.

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 names a specific verb and resource: it produces a decision-tree YAML skeleton for a new member, and states the motivating problem (not being able to start when the format is unknown in an empty folder). This distinguishes it from siblings like design_flow and design_sheet by output type. It stops short of an explicit 5 because it never names a sibling tool it is not, relying on the workflow note referencing design_validate instead.

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?

Usage context is explicit: use it when starting a new member and the format is unknown. It also prescribes a concrete follow-up workflow (fill the skeleton, place it in ~/.kcsc-mcp/flows/, then run design_validate). The only gap is the absence of an explicit when-not-to-use statement or named alternative.

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

design_validateA

결정트리를 검사한다. ★적어 둔 근거 조항이 실재하는지 API 로 확인한다.

tree_yaml: 검사할 YAML 본문. (또는) path: 검사할 YAML 파일 경로. 둘 다 비우면 사용자 폴더의 트리를 전부 검사한다. check_refs: 근거 조항 실재 확인 여부. 끄면 스키마만 본다(빠르다).

잡아내는 것: · 스키마 누락 · 단계 식별자 중복 · 분기가 없는 단계를 가리키는 것(트리가 끊긴다) · 지어낸/오타난/폐지된 조항번호 — 기준에 그 절·표가 실제로 있는지 확인 · 설계법과 근거 기준의 불일치 (LRFD 트리가 허용응력설계법 기준을 근거로 삼는 등)

트리는 사람이 쓰고, 근거가 실재하는지는 기계가 검사합니다. 지어낸 조항번호가 그대로 남는 것이 제일 위험하기 때문입니다.

NameRequiredDescriptionDefault
pathNo
tree_yamlNo
check_refsNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well: it discloses that the tool performs an external API check against the standard, that it can operate over the entire user folder when both params are empty (broad-scope behavior), and that check_refs=false trades thoroughness for speed. It implies a non-destructive read/validation role, though it never states whether the tool writes or errors on failure.

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 well-structured and front-loaded: one-line purpose, ★ key capability, parameter explanations, then a bulleted catch list. The final rhetorical sentence ('Trees are written by humans... fabricated clause numbers are the most dangerous') adds motivation but is functional padding rather than essential call-time information, keeping it from a 5.

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?

An output schema exists, so omitting the return format is acceptable. For a validation tool with an API dependency and five distinct detection categories, the description covers inputs, scope behavior, detection scope, and the external-check behavior. The remaining gap is the absence of explicit guidance on which sibling handles adjacent concerns and what happens on validation failure.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully compensate — and it does. All three parameters (tree_yaml, path, check_refs) receive explicit semantics including the mutual-exclusivity relationship, the default behavior when both are empty, and the meaning of the boolean flag and its performance implication. This goes well beyond the bare schema fields.

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 verb+resource ('inspects a decision tree') and immediately front-loads the distinctive capability via ★: it verifies cited reference clauses actually exist by API call. The 'catches' list (missing schema, duplicate step identifiers, broken branches, fabricated clause numbers, design-method/standard mismatch) precisely distinguishes it from the design_* authoring siblings and kcsc_* retrieval tools.

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 gives useful in-tool usage guidance: the tradeoff between tree_yaml/path input (both empty → scans all user trees) and the check_refs speed toggle ('turn off = schema only, faster'). However, it never names alternatives or states when NOT to use this tool vs. a sibling (e.g., kcsc_audit or other design_* tools), leaving the selection decision implicit.

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

kcsc_auditA

계산·검토 답변의 인용을 기계로 검증한다. 기준·조항·식 번호·표 번호가 실재하는지 확인.

text: 검증할 답변 글 전체를 그대로 넣는다. 안에서 인용을 뽑아 하나씩 확인한다. code: 기준이 하나뿐인데 글에 안 적혀 있으면 여기에 지정한다.

★구조계산 답변을 냈으면 이 검증을 함께 돌리고 결과를 밝히세요. KCSC 원문은 수식이 이미지라 도구가 읽지 못합니다. 그래서 계산에 쓴 식·계수는 원문에서 온 것이 아니라 모델이 기억으로 채운 것입니다. 맞을 때도 있고 틀릴 때도 있는데, 출력만 봐서는 구분이 안 됩니다. 이 도구는 그 경계를 드러냅니다.

확인하는 것: 기준 실재·버전 · 조항 실재 · 식 번호 실재와 그 식이 몇 절에 있는지 · 표/그림 번호 실재 · 그 조항의 식이 이미지인지 확인하지 못하는 것: 식의 내용 · 그 조항이 이 부재에 맞는지 · 계산이 맞는지

NameRequiredDescriptionDefault
codeNo
textYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and delivers exceptionally. It discloses the critical limitation that KCSC original formulas are images the tool cannot read, that formulas/coefficients are model-recalled from memory ('모델이 기억으로 채운 것'), and that correctness cannot be distinguished from output alone. It also explicitly separates verified vs. unverified content. This is exemplary epistemic transparency for interpreting results correctly.

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 longer than average but densely functional—every section earns its place: purpose, parameter usage, workflow trigger, image/formula caveat, and the verifies/cannot-verify boundary. Headers and bold formatting aid scanning, and the critical workflow instruction is front-loaded with the ★ marker. Only mild tightening of the caveat section would improve it.

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

Completeness5/5

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

For a tool with substantial epistemic nuance (image formulas, model-recalled content, correctness boundaries), the description is thorough: it lists what is verified, what cannot be verified, and explains the critical limitation that motivates the tool's existence. An output schema exists, so return-value documentation is covered elsewhere. Nothing essential for correct invocation or interpretation is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate—and it fully does. It explains 'text' as putting the entire answer text as-is ('전체를 그대로 넣는다') from which citations are extracted, and 'code' as specifying a single standard when it isn't written in the text ('기준이 하나뿐인데 글에 안 적혀 있으면'). Both parameters gain practical usage meaning beyond their bare types/defaults.

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

Purpose5/5

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

The description opens with a precise verb+resource statement: '계산·검토 답변의 인용을 기계로 검증한다' (machine-verifies citations in calculation/review answers) and enumerates concrete verification targets (standard, clause, formula number, table/figure number existence). The '확인하는 것/확인하지 못하는 것' (what it verifies / what it can't verify) sections clearly demarcate its scope from the sibling searching/reading tools, so an agent can distinguish it without opening schemas.

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 ★-marked instruction gives explicit when-to-use guidance tied to a workflow: '구조계산 답변을 냈으면 이 검증을 함께 돌리고 결과를 밝히세요' (if you produced a structural calculation answer, run this verification and disclose results). The '확인하지 못하는 것' list also implicitly indicates when NOT to rely on it. However, it never names sibling alternatives for exclusion, which is the one gap.

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

kcsc_formulaA

★그 절의 수식을 이미지 그대로 가져온다. 식을 기억으로 채우지 않아도 된다.

code: 기준 코드 (KDS 14 31 10 등) section: 조항번호. 반드시 좁혀서 지정한다 (예: 4.3.2.1.1.4). 한 절에 이미지가 수십 개다. code_type: 코드가 겹칠 때만 지정. max_images: 최대 이미지 수. 0이면 기본 40.

KCSC 원문의 수식·기호는 텍스트가 아니라 GIF 이미지입니다 (alt 도 MathML 도 없음). 이 도구는 그 이미지를 그대로 돌려줍니다 — 본문의 〔그림 N〕 과 번호가 같습니다.

※ 이미지를 읽는 것도 인식이라 첨자를 잘못 볼 수 있습니다. 다만 설계자가 같은 그림을 볼 수 있어 대조가 됩니다. 기억으로 채운 식은 대조할 대상조차 없습니다. 최종판단은 설계자가 합니다.

NameRequiredDescriptionDefault
codeYes
sectionYes
code_typeNo
max_imagesNo

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses that formulas are GIF images (not text, no alt/MathML), that recognition of subscripts may be faulty, and that the designer performs final cross-checking. It also notes the image numbers match 〔그림 N〕. This is transparent about limitations and output format, though it doesn't state error behavior or auth requirements.

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 front-loaded with the core purpose, followed by parameter explanations and a caveat about recognition errors. It is moderately long but every sentence adds value—no fluff. The structure is logical and scannable, though slightly verbose compared to minimal examples.

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?

Given no output schema and no annotations, the description covers the essential operational details: what it returns (image), how parameters work, the numbering convention, and the recognition risk. It could be more explicit about the exact return structure (e.g., an array of image URLs) but the description is sufficient for an agent to invoke it correctly.

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

Parameters5/5

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

Schema coverage is 0%, and the description compensates fully. It explains each parameter: code (기준 코드, e.g., KDS 14 31 10), section (조항번호, must be narrowed), code_type (only when codes overlap), and max_images (max count, 0 default 40). This adds meaning far beyond the schema's bare property names.

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 it fetches the section's formula as a 'GIF image' (수식을 이미지 그대로 가져온다), specifying the verb and resource. It distinguishes from text-reading tools by emphasizing the image nature, though it doesn't explicitly name sibling tools. The purpose is unambiguous and easily tells agents when to use it.

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?

It gives specific usage guidance: 'section: 반드시 좁혀서 지정한다' (must be specified narrowly) and explains params like code_type only when codes overlap, and max_images default. It implies when to use this tool (when exact formula images are needed) but doesn't explicitly state when not to use alternatives or contrast with kcsc_read/search. Still, the context is clear.

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

kcsc_grepA

기준 본문에서 그 말이 있는 절을 찾는다. kcsc_search 가 못 보는 곳을 본다.

code: 기준 코드. 쉼표로 여러 개를 줄 수 있다 (예: KDS 14 31 10, KDS 14 31 05). 문서를 통째로 받아 훑기 때문에 한 번에 최대 10건까지만 받는다. keyword: 찾을 말. 띄어쓰기로 나눈 낱말이 모두 들어간 절을 찾는다. code_type: 코드가 겹칠 때만 지정. limit: 최대 절 수.

표 안의 글자도 함께 찾는다 — 기준의 값은 대부분 표에 있기 때문이다. 수식은 원문이 이미지라 찾을 수 없다 (〔그림〕 자리). 기호로는 검색되지 않는다.

NameRequiredDescriptionDefault
codeYes
limitNo
keywordYes
code_typeNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A5/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses that the tool processes entire documents (hence the 10-code limit), that keyword matching requires ALL space-separated words, that table text is included (since standards values are mostly in tables), and that formulas cannot be found. These are significant behavioral traits beyond the schema and are clearly stated.

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?

Despite being in Korean, the description is well-structured with a purpose line followed by clearly labeled parameter explanations. It is information-dense but not bloated; every sentence adds value, and the key limitations (10-code cap, formula unavailability) are front-loaded. The structure aids quick scanning and comprehension.

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?

Given the tool's complexity (whole-document scanning, multiple codes, specific matching rules, limitations) and zero annotation coverage, the description is remarkable complete. It covers all parameters, usage conditions, and limitations. While an output schema exists and likely describes the return shape, the description already equips an agent to call the tool correctly in most scenarios.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully compensate. It does: code is explained as comma-separable with a 10-item cap, keyword is space-separated with AND logic, code_type is 'only when codes overlap', and limit is 'maximum number of clauses'. Each parameter's meaning and usage is defined, which is exactly what an agent needs.

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 precise purpose: find clauses in the standard '본문' (body) that contain a given keyword, and explicitly contrasts itself with the sibling kcsc_search ('kcsc_search가 못 보는 곳을 본다'). This gives a clear verb, resource, and differentiator, so an agent knows exactly what this tool does and how it differs.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance by pointing to where kcsc_search fails, and adds practical constraints: multiple codes are allowed up to a maximum of 10 because it reads whole documents, and it notes the limitation of not searching formulas (which are images). This tells an agent when to prefer this tool and what to expect.

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

kcsc_outlineA

기준의 목차(조항번호 계층)를 낸다. 어느 절을 읽을지 고르는 데 쓴다.

code: KDS 14 31 10 · 14 31 10 · 143110 다 받는다. code_type: 6자리 코드는 종류가 다르면 겹칠 수 있다. 겹치면 여기에 KDS·KCS 등을 지정한다. depth: 몇 단계까지 볼지. 3이면 4.2.1 까지. 0이나 음수면 전부.

NameRequiredDescriptionDefault
codeYes
depthNo
code_typeNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses useful parameter-level behavior (three accepted code formats, the overlap handling for code_type, depth semantics where 3 reaches '4.2.1' and 0/negative means all). But tool-level behavior — such as whether traversal is bounded, pagination, or the shape of the returned hierarchy — is left unstated, though the output schema exists to carry return details.

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 purpose is front-loaded in the first clause, and each subsequent parameter line is terse and information-dense. Every sentence earns its place — there is no filler, duplication, or boilerplate. The format is easily scannable for an agent.

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 3-parameter tool with one required param and an output schema present, the description covers purpose, usage intent, and all parameter semantics thoroughly. Since an output schema exists, the missing return-value prose does not count against it. The only gap is the lack of explicit sibling differentiation, which is a minor omission given the clear purpose statement.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully compensate, and it does: every parameter gets value-level semantics. `code` documents three accepted input formats; `code_type` explains the 6-digit collision scenario and the KDS/KCS disambiguation; `depth` gives concrete behavior for values 3, 0, and negative. This greatly exceeds the bare schema and leaves nothing about the parameters to ambiguity.

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 and resource: '기준의 목차(조항번호 계층)를 낸다' (outputs the table of contents / provision-number hierarchy of a standard) plus the intended use ('choosing which clause to read'). This clearly distinguishes it from siblings like kcsc_read (reads content) and kcsc_search (searches). A slightly more explicit statement of the returned artifact (a hierarchical tree) would push it to 5.

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 gives a usage context — '어느 절을 읽을지 고르는 데 쓴다' (use it to pick which clause to read) — which implicitly signals it is a navigation/pre-read step before kcsc_read. However, it never names alternatives (kcsc_read, kcsc_search, kcsc_grep) or states when NOT to use it, so routing relies on inference rather than explicit exclusions.

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

kcsc_readA

기준 원문을 절 단위로 읽는다. 표는 표 그대로 보존된다.

code: KDS 14 31 10 · 143110 등. section: 조항번호. 4.2 를 주면 4.2.x 하위까지 전부 포함한다. 빈 값이면 문서 전체 (대개 매우 길다 — 먼저 kcsc_outline 으로 절을 고르는 편이 낫다). code_type: 코드가 겹칠 때만 지정. max_chars: 출력 상한. 0이면 기본값(KCSC_MAX_CHARS, 기본 20000).

※ 수식·기호는 원문이 이미지라 〔그림〕 으로만 나온다. 이 도구는 식을 지어내지 않는다. 이 원문을 근거로 계산했다면 식은 원문이 아니라 기억에서 온 것이므로, 그 사실을 밝히고 kcsc_audit 으로 인용을 검증할 것.

NameRequiredDescriptionDefault
codeYes
sectionNo
code_typeNo
max_charsNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: tables are preserved, formulas and symbols appear only as figures because the original is an image, and the tool does not invent formulas. It also explains the max_chars default and warns that calculations based on this text are from memory, requiring verification via kcsc_audit. This is comprehensive and honest.

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 well-structured: a brief purpose sentence, parameter explanations in bullet points, and a warning note. Each sentence adds value, but it is slightly longer than necessary. However, the length is justified by the need to explain four parameters with no schema support. Front-loaded with the purpose.

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?

Given the tool's complexity (4 params, 1 required), the lack of annotations, and the presence of an output schema, the description covers purpose, behavior, parameter semantics, and usage guidance. It even includes a verification recommendation. An agent can call this tool correctly without additional context.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully document parameters. It does so thoroughly: code with examples, section with behavior (inclusion of sub-items, default to entire document), code_type with when to use, and max_chars with default. This compensates entirely for the missing schema descriptions.

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 tool reads the standard original text in clause units, a specific verb and resource. It also adds a distinguishing detail: tables are preserved as tables. This differentiates it from sibling tools like kcsc_search (search) and kcsc_outline (outline) without needing to open schemas.

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 gives explicit context: it recommends using kcsc_outline to select a clause first, and mentions kcsc_audit for citation verification. While it doesn't explicitly say 'use for reading, not for search', the action 'read' and the parameter explanations imply the intended use. The guidance on when to use alternatives is present but not exhaustive.

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

kcsc_versionA

기준의 버전·개정일을 확인한다. 개정 여부를 확인할 때 쓴다.

code: 기준 코드. 쉼표로 여러 개를 줄 수 있다. code_type: 코드가 겹칠 때만 지정.

카탈로그를 새로 받아 확인하므로, 결정트리의 근거 조항을 다시 검증해야 하는지 판단하는 데 쓸 수 있다.

NameRequiredDescriptionDefault
codeYes
code_typeNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

The description discloses a behavioral trait beyond annotations: that the tool fetches a fresh catalog ('카탈로그를 새로 받아 확인하므로'), implying it performs a network read each time—useful for agents deciding between cached vs. fresh data. No annotations are provided, so the description carries the burden, and it does reasonably well by noting this retrieval behavior and its implication for re-verification.

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 compact and well-organized: a purpose sentence, a bolded usage hint, parameter notes in a list-like format, and a rationale sentence. Each line earns its place—no fluff or repetition. The most important info (purpose and usage) is front-loaded, with parameter specifics following.

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?

Given this is a simple 2-parameter tool with an output schema present, the description covers the essential points: purpose, parameter semantics, and usage rationale. The note about re-verifying decision-tree basis clauses adds domain context. However, it doesn't explain what the output looks like (the output schema presumably covers this) and assumes domain familiarity with '기준' and '카탈로그', which may be acceptable in a specialized context.

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%, meaning the property names 'code' and 'code_type' carry minimal semantic weight. The description does add some meaning: 'code' is clarified as a 기준 코드 that can take multiple comma-separated values, and 'code_type' is explained as needing specification only when codes overlap ('코드가 겹칠 때만 지정'). This compensates partially for the schema's sparse documentation, but it doesn't clarify the format of code_type or provide examples of valid values.

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+resource: '확인한다' (check/confirm) the version and revision date of a standard ('기준'), and explicitly frames its purpose as checking revision status. It clearly distinguishes from siblings by emphasizing the version-checking role. The opening sentence is clear, but could be more specific about what '기준' entails without relying on the bolded hint.

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 states when to use this tool—when checking whether a standard has been revised ('개정 여부를 확인할 때 쓴다') and to judge whether decision-tree basis clauses need re-validation after receiving a new catalog. This is a clear use case, but it doesn't explicitly mention when NOT to use it or name alternatives among siblings like kcsc_search or kcsc_read. The guidance is contextual but lacks exclusionary statements.

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. 1 tool updatev0.3.0
    • Removeddesign_sheet
  2. 14 tool updatesv0.2.0
    • First observeddesign_flow
    • First observeddesign_flows
    • First observeddesign_map
    • First observeddesign_sheet
    • First observeddesign_stamp
    • First observeddesign_template
    • First observeddesign_validate
    • First observedkcsc_audit
    • First observedkcsc_formula
    • First observedkcsc_grep
    • First observedkcsc_outline
    • First observedkcsc_read
    • First observedkcsc_search
    • First observedkcsc_version

TDQS

A4/5.0

Scored across 13 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: search by name vs. full-text grep, outline vs. read vs. formula retrieval, audit vs. version check, and the design_* tools each handle a different aspect (list, map, flow, validate, stamp, template). No two tools could be confused even without reading descriptions in detail.

Naming Consistency5/5

All tools follow a consistent pattern: either kcsc_<action> (search, outline, read, formula, grep, audit, version) or design_<noun/action> (flows, map, flow, validate, stamp, template). The prefix group is uniform, and the second part is a clear, consistent descriptor.

Tool Count5/5

13 tools is well within the ideal 3–15 range. The count reflects the domain's needs: 7 tools for standards retrieval/verification and 6 for design flow management, each earning its place without redundancy.

Completeness5/5

The tool surface covers the full lifecycle of standards lookup (search, outline, read, formula, grep), verification (audit, version), and design flow management (list, map, detailed steps, validation, stamping, template generation). Any gaps, like edit/delete of flows, are handled externally since flows are YAML files, and the deliberate separation of formula retrieval from reading addresses the image limitation.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search, retrieve, and analyze South Korean legal documents including statutes, precedents, constitutional decisions, and administrative rulings via the Ministry of Government Legislation Open API. Provides 89 specialized tools with features like legal abbreviation auto-recognition, annex extraction, and complex research chain workflows.
    MIT