Skip to main content

SCP Diagram MCP Server

Python diagrams 패키지를 사용해 SCP(Samsung Cloud Platform) 아키텍처 다이어그램과 Terraform IaC 참조 코드를 생성하는 MCP 서버.

주요 기능

  • SCP 아키텍처 다이어그램 생성
  • 여러 다이어그램 유형 지원 (SCP, sequence, flow, class, k8s, onprem, custom)
  • 사용 가능한 SCP 아이콘 및 서비스 조회
  • 다이어그램 예제 및 템플릿 제공
  • SCP Terraform 프로바이더 문서 조회 (리소스, 데이터소스)
  • scpv2 SDK를 통한 실제 SCP 리소스 조회·생성·삭제

SCP 아이콘 프로바이더는 이 패키지 안에 번들되어 있으므로, 설치 후 별도의 아이콘 생성 단계가 필요하지 않다.

사전 준비물

MCP 클라이언트를 실행하는 컴퓨터에 다음 두 가지가 준비되어 있어야 한다.

  1. uv — 서버를 내려받아 실행하는 데 사용된다.
    • Windows: irm https://astral.sh/uv/install.ps1 | iex
    • macOS/Linux: curl -LsSf https://astral.sh/uv/install.sh | sh
  2. Graphvizdiagrams 패키지가 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

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)

Source distribution for scp-diagram-mcp-server 1.1.7
File Size Uploaded
scp_diagram_mcp_server-1.1.7.tar.gz 798.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for scp-diagram-mcp-server 1.1.7
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.1.7 This release

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page