SCP Diagram MCP Server
Python diagrams 패키지를 사용해 SCP(Samsung Cloud
Platform) 아키텍처 다이어그램과 Terraform IaC 참조 코드를 생성하는 MCP 서버.
주요 기능
- SCP 아키텍처 다이어그램 생성
- 여러 다이어그램 유형 지원 (SCP, sequence, flow, class, k8s, onprem, custom)
- 사용 가능한 SCP 아이콘 및 서비스 조회
- 다이어그램 예제 및 템플릿 제공
- SCP Terraform 프로바이더 문서 조회 (리소스, 데이터소스)
scpv2SDK를 통한 실제 SCP 리소스 조회·생성·삭제
SCP 아이콘 프로바이더는 이 패키지 안에 번들되어 있으므로, 설치 후 별도의 아이콘 생성 단계가 필요하지 않다.
사전 준비물
MCP 클라이언트를 실행하는 컴퓨터에 다음 두 가지가 준비되어 있어야 한다.
- uv — 서버를 내려받아 실행하는 데 사용된다.
- Windows:
irm https://astral.sh/uv/install.ps1 | iex - macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Windows:
- Graphviz —
diagrams패키지가 PNG를 렌더링할 때 Graphviz의dot실행 파일을 호출한다. 네이티브 프로그램이므로 별도로 설치하고PATH에 등록되어 있어야 한다.- Windows: graphviz.org에서 설치(또는
winget install Graphviz.Graphviz)하고bin디렉터리를PATH에 추가 - macOS:
brew install graphviz - Linux (Debian/Ubuntu):
sudo apt-get install graphviz
- Windows: graphviz.org에서 설치(또는
Python 의존성(diagrams, mcp, pydantic, bandit, scpv2-sdk)은 uvx가 자동으로
설치하므로, 직접 pip install할 필요가 없다.
사용법
MCP 클라이언트에 등록
MCP 클라이언트 설정에 아래 항목을 추가한다. uvx가 필요 시 자동으로 내려받아 실행하므로
수동 설치가 필요 없다.
{
"mcpServers": {
"scp-diagram": {
"command": "uvx",
"args": ["scp-diagram-mcp-server"]
}
}
}
소스에서 로컬 실행 (개발용)
uv run python -m scp_diagram_mcp_server.server
도구 (Tools)
| 도구 | 기능 |
|---|---|
list_icons |
사용 가능한 프로바이더/서비스/아이콘 탐색 (provider_filter="scp" 사용) |
get_diagram_examples |
유형별 다이어그램 예제 코드 조회 |
generate_diagram |
diagrams DSL 코드로 PNG 렌더링 |
list_terraform_resources |
SCP Terraform 리소스/데이터소스 유형 목록 |
get_terraform_examples |
SCP 리소스의 예제 HCL + 속성 스키마 조회 |
scp_list_services |
scpv2 SDK가 지원하는 SCP 서비스 목록 |
scp_describe_operation |
오퍼레이션의 파라미터 + 검증 규칙 + 중첩 요청 본문 예제 조회 (예: create_vpc) |
scp_list_resources |
SCP 리소스 읽기(list_/show_/get_/describe_) — 항상 허용 |
scp_create_resource |
실제 SCP 리소스 생성 — 쓰기, 옵트인 |
scp_delete_resource |
실제 SCP 리소스 삭제 — 쓰기, 옵트인 + confirm |
실제 SCP 리소스 프로비저닝 (scpv2 SDK)
scp_* 도구는 scpv2 SDK를 통해 실제 과금되는
클라우드 리소스를 생성·삭제하므로, 다음과 같이 보호된다.
- 읽기(
scp_list_resources,scp_list_services,scp_describe_operation)는 항상 허용된다. - 생성/삭제는 서버 환경에
SCP_MCP_ALLOW_WRITE=1이 설정된 경우에만 동작한다. - 삭제는 추가로 호출 시
confirm=true를 요구한다.
인증정보는 SDK의 탐색 순서를 따른다 — SCP_ACCESS_KEY / SCP_SECRET_KEY 환경변수, 또는
~/.scpconf/credentials.json(그리고 ~/.scpconf/config.json). API 엔드포인트 호스트는
{api}.{region}.{environment}.samsungsdscloud.com 형태이므로, 리전(region 인자 또는
SCP_REGION, 기본값 kr-west1)과 환경(environment 인자 또는 SCP_ENVIRONMENT,
예: e 또는 s, 기본값 e)이 모두 대상 계정과 일치해야 한다.
사내 SSL 검사 프록시 환경인가요? SCP API 호출이 TLS 인증서 검증 오류로 실패하면,
SCP_NO_PROXY=1을 설정(또는 no_proxy=true 전달)하여 SDK가 프록시를 우회하고 실제 SCP
서버 인증서로 검증하도록 한다.
쓰기를 활성화하려면 MCP 클라이언트 설정의 env에 다음과 같이 지정한다.
{
"mcpServers": {
"scp-diagram": {
"command": "uvx",
"args": ["scp-diagram-mcp-server"],
"env": {
"SCP_MCP_ALLOW_WRITE": "1",
"SCP_REGION": "kr-west1",
"SCP_ENVIRONMENT": "e",
"SCP_NO_PROXY": "1",
"SCP_ACCESS_KEY": "...",
"SCP_SECRET_KEY": "..."
}
}
}
}
라이선스
Apache-2.0
Release files for scp-diagram-mcp-server 1.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| scp_diagram_mcp_server-1.1.7.tar.gz | 798.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scp_diagram_mcp_server-1.1.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.9 MB
Release files / scp_diagram_mcp_server-1.1.7.tar.gz
| Download URL | scp_diagram_mcp_server-1.1.7.tar.gz |
|---|---|
| Size | 798.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
957f240d96adc45253a3081399196b181bbea9fa48cd2fda0f460a8e694274d0
|
|
BLAKE2b-256 checksum How to use checksums |
3213b62f049f96ed4fbf1b6e5d8d8eb22909f1480e55c9d6b56dc27e6c5d9a11
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.13
|
Release files / scp_diagram_mcp_server-1.1.7-py3-none-any.whl
| Download URL | scp_diagram_mcp_server-1.1.7-py3-none-any.whl |
|---|---|
| Size | 1.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e46db17d3b8aa9e61135e20daa8f7792162b4e416fddc7248f7887768957ea94
|
|
BLAKE2b-256 checksum How to use checksums |
7a400b6cc3ef476980d9ed435b0ba2e19ea34170e36cf162ede3e1979da37d16
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.13
|