Skip to main content
Glama

KCSC MCP Server

국가건설기준(KCS/KDS)을 AI 대화 안에서 바로 검색하고 읽습니다 Search and read Korean Construction Standards (KCS/KDS) directly within AI conversations

License: MIT Python 3.11+ MCP


소개 | Introduction

KCSC MCP Server는 국가건설기준센터(KCSC) OpenAPI를 MCP 서버로 감싸서, Claude Desktop/Claude Code/Codex 등 AI 클라이언트 안에서 KCS(건설기준)와 KDS(설계기준)를 바로 검색하고, 본문을 읽고, 특정 조항을 찾을 수 있게 합니다.

KCSC MCP Server wraps the Korean Construction Standard Center (KCSC) OpenAPI as an MCP server, enabling AI clients like Claude Desktop, Claude Code, and Codex to search, read, and navigate KCS (Construction Standards) and KDS (Design Standards) documents directly.

브라우저를 열고, 키워드를 바꾸고, 페이지를 넘기는 대신 -- AI에게 물어보세요. Instead of opening a browser, changing keywords, and flipping pages -- just ask your AI.


Related MCP server: Korean Law MCP Server

이런 분들에게 유용합니다 | Who Is This For?

대상

활용 예시

건설 엔지니어

설계 검토 중 KDS 기준 조항을 즉시 확인

시공 관리자

KCS 시공 기준 본문을 AI 대화 안에서 바로 조회

건축사/감리원

관련 기준 문서를 키워드로 빠르게 검색

공무원

사업 기획 시 적용 기준 확인

학생/연구자

건설기준 학습 및 조항 검색

Who

Use Case

Civil engineers

Instantly check KDS design standard clauses during review

Construction managers

Query KCS construction standards within AI conversations

Architects / Supervisors

Search related standard documents by keyword

Government officials

Verify applicable standards during project planning

Students & researchers

Study and search construction standard clauses


제공 도구 | Available Tools

#

도구 Tool

설명 Description

1

kcsc_list_codes

KCS/KDS 코드 목록 조회 (타입, 키워드, 페이지네이션) / List codes with filtering

2

kcsc_search_codes

코드명 기반 빠른 검색 / Quick search by code name

3

kcsc_get_content

특정 문서 전체 본문 조회 (HTML 제거 옵션) / Get full document content

4

kcsc_search_sections

문서 내부 제목/본문 키워드 검색 / Search sections within a document


빠른 시작 가이드 | Quick Start Guide

1단계: 설치 | Step 1: Install

git clone https://github.com/sinmb79/KCSC-MCP.git
cd KCSC-MCP

python -m venv .venv

# Windows:
.venv\Scripts\activate
# macOS/Linux:
source .venv/bin/activate

# 설치 | Install
pip install -e ".[dev]"

2단계: API 키 설정 | Step 2: Configure API Key

KCSC API 키를 https://www.kcsc.re.kr/support/api에서 발급받으세요.

Get your API key from https://www.kcsc.re.kr/support/api.

# Windows:
copy .env.example .env
# macOS/Linux:
cp .env.example .env

.env 파일을 편집합니다:

KCSC_API_KEY=your_real_kcsc_api_key

3단계: 서버 실행 | Step 3: Start Server

# 방법 1: Python 직접 실행
python server.py

# 방법 2: 설치된 스크립트
kcsc-mcp

4단계: AI 클라이언트 연결 | Step 4: Connect AI Client

Claude Desktop

%AppData%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "kcsc": {
      "command": "D:/Workspace/KCSC-MCP/.venv/Scripts/python.exe",
      "args": ["D:/Workspace/KCSC-MCP/server.py"],
      "env": {
        "KCSC_API_KEY": "your_kcsc_api_key"
      }
    }
  }
}

Claude Code

claude mcp add --transport stdio kcsc -- python server.py

Codex

codex mcp add kcsc -- python server.py

실전 사용 예시 | Real-World Usage Examples

가장 효율적인 순서입니다. 처음부터 본문을 열지 마세요.

The most efficient order. Don't open full content first.

1. kcsc_search_codes  -->  관련 문서 후보 찾기
2. kcsc_list_codes    -->  범위 좁히기 (필요 시)
3. kcsc_search_sections --> 문서 내부에서 필요한 조항 확인
4. kcsc_get_content   -->  전체 문맥 읽기

예시 1: 콘크리트 관련 기준 찾기 | Example 1: Find Concrete Standards

AI에게 이렇게 말하세요 | Say this:

콘크리트 관련 KCS 기준을 찾아줘

AI가 호출하는 도구 | Tool called:

kcsc_search_codes(keyword="콘크리트", code_type="KCS")

결과 예시 | Example result:

[
  {"code": "114010", "fullCode": "2010114010", "codeName": "콘크리트 공사 일반"},
  {"code": "114020", "fullCode": "2010114020", "codeName": "콘크리트 배합"},
  {"code": "114030", "fullCode": "2010114030", "codeName": "콘크리트 타설"}
]

예시 2: 문서 내부 조항 검색 | Example 2: Search Within a Document

콘크리트 공사 일반 기준에서 거푸집 관련 내용을 찾아줘
kcsc_search_sections(code_type="KCS", code="114010", keyword="거푸집", limit=5)

문서 전체를 읽지 않고도, 해당 키워드가 등장하는 제목과 본문 단락만 빠르게 확인할 수 있습니다.

예시 3: 기준 문서 본문 조회 | Example 3: Read Full Document

KCS 114010 전문을 보여줘
kcsc_get_content(code_type="KCS", code="114010", plain_text=True)

plain_text=True로 설정하면 HTML 태그가 제거된 깨끗한 텍스트를 받습니다.

예시 4: 도로 설계기준 목록 조회 | Example 4: List Road Design Standards

도로 관련 KDS 기준 목록을 보여줘
kcsc_list_codes(code_type="KDS", keyword="도로", limit=20)

code와 fullCode | About code vs fullCode

KCSC API 응답에는 code(6자리)와 fullCode(10자리)가 함께 나옵니다:

필드

예시

설명

code

114010

문서 본문 조회에 사용하는 6자리 코드

fullCode

2010114010

목록에서 보이는 10자리 전체 코드

이 서버에서는 둘 다 입력으로 받을 수 있습니다. 내부적으로 적절한 코드로 변환하여 API를 호출합니다.

Both code and fullCode are accepted as input. The server normalizes them internally.


캐시 | Caching

반복 호출을 줄이기 위해 메모리 캐시를 사용합니다.

항목 Item

설명 Description

코드 목록

전체 코드 목록 캐시

문서 본문

문서별 본문 캐시

기본 TTL

600초 (10분)

# 캐시 TTL 조정 (초) | Adjust cache TTL (seconds)
KCSC_CACHE_TTL_SECONDS=600

SSL/네트워크 설정 | SSL/Network Configuration

일부 Windows/사내망 환경에서 SSL 인증서 문제가 발생할 수 있습니다.

SSL certificate issues may occur in some Windows/corporate network environments.

검증 우선순위 | Verification priority:

순위

방법

설정

1 (권장)

기본 설정 그대로

(설정 불필요)

2

사내 CA 번들 지정

KCSC_CA_BUNDLE=C:\certs\corp-ca.pem

3 (비권장)

SSL 검증 비활성화

KCSC_VERIFY_SSL=false


프로젝트 구조 | Project Structure

KCSC-MCP/
|-- server.py          # MCP 서버 (4개 도구) | MCP server (4 tools)
|-- pyproject.toml     # 프로젝트 메타데이터 | Project metadata
|-- requirements.txt   # 의존성 | Dependencies
|-- .env.example       # 환경변수 템플릿 | Environment template
+-- tests/
    +-- test_server.py # 테스트 | Tests

테스트 실행 | Running Tests

pytest

테스트 항목: 코드 타입 검증, HTML 제거, 오류 정규화, 섹션 검색, 캐시 불변성


환경 변수 목록 | Environment Variables

변수 Variable

필수

설명 Description

KCSC_API_KEY

필수

KCSC OpenAPI 키

KCSC_CACHE_TTL_SECONDS

선택

캐시 TTL (기본: 600초)

KCSC_CA_BUNDLE

선택

사내 CA 인증서 번들 경로

KCSC_VERIFY_SSL

선택

SSL 검증 비활성화 (false)


자주 묻는 질문 | FAQ

API 키를 넣었는데 동작하지 않아요

  • 키 만료 여부 확인

  • .env 파일이 프로젝트 루트에 있는지 확인

  • Claude Desktop 설정의 env에도 키를 넣었는지 확인

SSL 인증서 오류가 나요

  • 먼저 기본 설정으로 재시도

  • 사내망이면 KCSC_CA_BUNDLE에 사내 CA 번들 지정

  • 최후 수단으로만 KCSC_VERIFY_SSL=false 사용

code와 fullCode가 헷갈려요

  • 둘 다 입력 가능합니다. 서버가 자동으로 변환합니다.


라이선스 | License

MIT License -- 자유롭게 사용, 수정, 배포할 수 있습니다.

MIT License -- Free to use, modify, and distribute.


만든 사람 | Author

22B Labs (sinmb79) -- The 4th Path

문의사항이나 기여는 Issues를 이용해 주세요.

For questions or contributions, please use Issues.

Available Tools

4 tools
kcsc_get_contentA
Read-onlyIdempotent

Fetch the full document content for a specific KCS or KDS code.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, so the description adds little beyond confirming the read-only nature. No additional behavioral traits like error handling or pagination are disclosed, but the description does not contradict annotations.

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 and resource. Every word is informative with no unnecessary fluff.

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 description states it fetches 'full document content', and since an output schema exists (though not displayed), it compensates for missing return value details. It does not mention error handling or invalid codes, but for a simple fetch tool, this is adequate.

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

Parameters3/5

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

The input schema provides thorough descriptions for all three parameters (code_type, code, plain_text), so the description adds no extra meaning. Schema description coverage is effectively high, meeting the baseline of 3.

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 verb 'Fetch' and the resource 'full document content for a specific KCS or KDS code'. It distinguishes from sibling tools like kcsc_list_codes (listing codes) and kcsc_search_codes (searching), making the tool's purpose unambiguous.

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 usage when you have a specific code, but it does not explicitly state when to use this tool versus alternatives or provide any guidance on when not to use it. Minimal contextual cues are given.

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

kcsc_list_codesB
Read-onlyIdempotent

List available KCSC codes with optional filtering and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds that the tool supports optional filtering and pagination, which is consistent but not deeply informative. No contradiction.

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 only one sentence, which is very concise and front-loaded with the key action and resource. It is appropriate in length, but could be slightly expanded without harming conciseness.

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?

Given the presence of an output schema, the description does not need to detail return values. However, it does not mention pagination semantics or how filtering interacts with the list, which could be useful context. Adequate but not thorough.

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%, so the tool description should compensate by explaining the parameters. It does not mention any of the four parameters (code_type, keyword, limit, offset), although the schema itself provides descriptions. The tool description adds no value to parameter understanding.

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

Purpose4/5

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

The description clearly states the action ('List') and resource ('available KCSC codes') with optional filtering and pagination. However, it does not differentiate from sibling tools like kcsc_search_codes, which might perform similar listing with different scope.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives or when filtering is appropriate. The description lacks context about prerequisites or use cases.

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

kcsc_search_codesB
Read-onlyIdempotent

Search KCSC codes by keyword.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true. Description matches that but adds no additional behavioral context (e.g., rate limits, auth needs). Adequate but no extra value.

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?

Single sentence, no waste. Could be slightly more informative but is concise and front-loaded.

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?

Description doesn't mention optional filters (code_type, limit) or that it returns a list. However, output schema exists and annotations cover safety. Could be more complete but adequate for a simple search.

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 parameter descriptions are present and detailed (keyword required, code_type optional with values 'KCS'/'KDS', limit with range). Description adds no parameter info, but with high schema coverage, baseline 3 is appropriate.

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

Purpose4/5

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

Description clearly states verb (search), resource (KCSC codes), and method (by keyword). It distinguishes from sibling tools like kcsc_list_codes and kcsc_search_sections, though not explicitly.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. No mention of when not to use or context for selecting this over siblings like kcsc_list_codes or kcsc_search_sections.

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

kcsc_search_sectionsA
Read-onlyIdempotent

Search titles and contents inside a single KCSC document.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, indicating a safe, read-only operation. The description adds no behavioral context beyond what annotations provide, such as rate limits or side effects. It does not contradict annotations.

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

Conciseness4/5

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

The description is a single sentence that directly states the purpose. While concise, it is somewhat minimal but still clear. No wasted words.

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 that the tool has an output schema and annotations covering safety and idempotency, the description is sufficiently complete for its simplicity. It does not explain return format, but that is handled by the output schema.

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

Parameters3/5

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

The input schema includes detailed descriptions for each parameter (e.g., 'Code type. Use 'KCS' or 'KDS'.'), so the description adds no additional parameter meaning. With schema coverage effectively high, a baseline score of 3 is appropriate.

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's action ('search') and resource ('titles and contents inside a single KCSC document'). It distinguishes itself from siblings like 'kcsc_search_codes' which searches codes, and 'kcsc_get_content' which gets content.

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 does not provide explicit guidance on when to use this tool versus alternatives. It implies usage context (needs a KCSC document and code) but offers no exclusions or alternative recommendations.

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. 4 tool updatesv0.1.0
    • First observedkcsc_get_content
    • First observedkcsc_list_codes
    • First observedkcsc_search_codes
    • First observedkcsc_search_sections

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: listing codes, searching codes, getting full content for a code, and searching within a single document. No overlap or ambiguity.

Naming Consistency5/5

All tools follow the consistent 'kcsc_verb_noun' pattern with snake_case, e.g., kcsc_get_content, kcsc_list_codes, kcsc_search_codes, kcsc_search_sections.

Tool Count5/5

Four tools is well-scoped for a code/document lookup server, covering key operations without redundancy or deficiency.

Completeness4/5

The set covers listing, searching, and retrieving content for KCSC codes. A minor gap is the lack of a standalone 'list sections' or metadata-only endpoint, but search_sections partially addresses in-document navigation.

Maintenance

ActivityInactive
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

  • F
    license
    A
    quality
    B
    maintenance
    Enables AI systems to search, retrieve, and analyze Korean legal information from the National Law Information API (law.go.kr), including laws, administrative rules, English translations, and law-ordinance linkages.
    26
    2
    -
  • 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
    -

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/sinmb79/KCSC-MCP'

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