KCSC MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@KCSC MCP Server콘크리트 관련 KCS 기준 찾아줘"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
KCSC MCP Server
국가건설기준(KCS/KDS)을 AI 대화 안에서 바로 검색하고 읽습니다 Search and read Korean Construction Standards (KCS/KDS) directly within AI conversations
소개 | 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 |
| KCS/KDS 코드 목록 조회 (타입, 키워드, 페이지네이션) / List codes with filtering |
2 |
| 코드명 기반 빠른 검색 / Quick search by code name |
3 |
| 특정 문서 전체 본문 조회 (HTML 제거 옵션) / Get full document content |
4 |
| 문서 내부 제목/본문 키워드 검색 / 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_key3단계: 서버 실행 | Step 3: Start Server
# 방법 1: Python 직접 실행
python server.py
# 방법 2: 설치된 스크립트
kcsc-mcp4단계: 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.pyCodex
codex mcp add kcsc -- python server.py실전 사용 예시 | Real-World Usage Examples
추천 사용 흐름 | Recommended Workflow
가장 효율적인 순서입니다. 처음부터 본문을 열지 마세요.
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자리)가 함께 나옵니다:
필드 | 예시 | 설명 |
|
| 문서 본문 조회에 사용하는 6자리 코드 |
|
| 목록에서 보이는 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=600SSL/네트워크 설정 | SSL/Network Configuration
일부 Windows/사내망 환경에서 SSL 인증서 문제가 발생할 수 있습니다.
SSL certificate issues may occur in some Windows/corporate network environments.
검증 우선순위 | Verification priority:
순위 | 방법 | 설정 |
1 (권장) | 기본 설정 그대로 | (설정 불필요) |
2 | 사내 CA 번들 지정 |
|
3 (비권장) | SSL 검증 비활성화 |
|
프로젝트 구조 | 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 OpenAPI 키 |
| 선택 | 캐시 TTL (기본: 600초) |
| 선택 | 사내 CA 인증서 번들 경로 |
| 선택 | SSL 검증 비활성화 ( |
자주 묻는 질문 | 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 toolskcsc_get_contentARead-onlyIdempotent
Fetch the full document content for a specific KCS or KDS code.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_codesBRead-onlyIdempotent
List available KCSC codes with optional filtering and pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_codesBRead-onlyIdempotent
Search KCSC codes by keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_sectionsARead-onlyIdempotent
Search titles and contents inside a single KCSC document.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
v0.1.0- First observed
kcsc_get_content - First observed
kcsc_list_codes - First observed
kcsc_search_codes - First observed
kcsc_search_sections
TDQS
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.
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.
Four tools is well-scoped for a code/document lookup server, covering key operations without redundancy or deficiency.
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
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
Curated Korean AEC expertise for AI agents — codes, practice, and the reasoning between them.
131- mcpweaveOAuthcom.mcpweave
Korea-native MCP gateway: Korean commerce, payments, messaging, gov & finance APIs for AI agents.
Search and query nTop's knowledge base and engineering guides from AI applications.
Knowledge base MCP for AI agents on iknow.dev. Search, read, and maintain via OAuth.
Related MCP Servers
- FlicenseAqualityBmaintenanceEnables 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.262-
- FlicenseNot gradedqualityDmaintenanceEnables 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-
- FlicenseNot gradedqualityNot gradedmaintenanceEnables Claude to search and analyze Korean academic papers using the Korea Citation Index (KCI) Open API. Supports paper search, detailed metadata retrieval, reference analysis, author and keyword searches, and citation index queries.1-
- FlicenseNot gradedqualityDmaintenanceEnables searching and retrieving Korean laws, precedents, and administrative rules through the National Law Information Center Open API, optimized for AI agents.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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