Skip to main content

MCP server for SCP architecture diagrams, Terraform reference docs, and scpv2 resource provisioning

Project description

SCP Diagram MCP Server

An MCP server that generates SCP (Samsung Cloud Platform) architecture diagrams and Terraform IaC reference code using the Python diagrams package.

Features

  • Generate professional SCP architecture diagrams
  • Support for multiple diagram types (SCP, sequence, flow, class, k8s, onprem, custom)
  • List available SCP icons and services
  • Get diagram examples and templates
  • Query SCP Terraform provider documentation (resources, data-sources)

The SCP icon provider is bundled inside this package, so no post-install icon generation step is required.

Prerequisites

Two things must be available on the machine that runs the MCP client:

  1. uv — used to download and run the server.
    • Windows: irm https://astral.sh/uv/install.ps1 | iex
    • macOS/Linux: curl -LsSf https://astral.sh/uv/install.sh | sh
  2. Graphviz — the diagrams package shells out to the Graphviz dot executable to render PNGs. It is a native program and must be installed separately and available on PATH.
    • Windows: install from graphviz.org (or winget install Graphviz.Graphviz) and ensure the bin directory is on PATH
    • macOS: brew install graphviz
    • Linux (Debian/Ubuntu): sudo apt-get install graphviz

uvx installs the Python dependencies (diagrams, mcp, pydantic, bandit) automatically; you do not need to pip install anything yourself.

Usage

Register with an MCP client

Once the package is published, add it to your MCP client configuration. uvx downloads and runs it on demand — no manual install:

{
  "mcpServers": {
    "scp-diagram": {
      "command": "uvx",
      "args": ["scp-diagram-mcp-server"]
    }
  }
}

Run locally from source (development)

uv run python -m scp_diagram_mcp_server.server

Tools

Tool Purpose
list_icons Discover available providers/services/icons (use provider_filter="scp")
get_diagram_examples Get example diagram code by type
generate_diagram Render a PNG from diagrams DSL code
list_terraform_resources List SCP Terraform resource/data-source types
get_terraform_examples Get example HCL + attribute schema for SCP resources
scp_list_services List SCP services available through the scpv2 SDK
scp_describe_operation Show an operation's params + validation rules + a documented nested body example (e.g. create_vpc)
scp_list_resources Read SCP resources (list_/show_/get_/describe_) — always allowed
scp_create_resource Create a real SCP resource — write, opt-in
scp_delete_resource Delete a real SCP resource — write, opt-in + confirm

Provisioning real SCP resources (scpv2 SDK)

The scp_* tools create and delete real, billable cloud resources via the scpv2 SDK, so they are guarded:

  • Read (scp_list_resources, scp_list_services, scp_describe_operation) is always allowed.
  • Create/Delete only run when the server environment has SCP_MCP_ALLOW_WRITE=1.
  • Delete additionally requires confirm=true on the call.

Credentials follow the SDK's discovery order — SCP_ACCESS_KEY / SCP_SECRET_KEY environment variables, or ~/.scpconf/credentials.json (with ~/.scpconf/config.json). The API endpoint host is {api}.{region}.{environment}.samsungsdscloud.com, so both region (region arg or SCP_REGION, default kr-west1) and environment (environment arg or SCP_ENVIRONMENT, e.g. e or s, default e) must match your account.

Behind a corporate SSL-inspection proxy? If SCP API calls fail with TLS certificate verification errors, set SCP_NO_PROXY=1 (or pass no_proxy=true) so the SDK bypasses the proxy and verifies against the real SCP server certificate.

To enable writes, set the env in your MCP client config, e.g.:

{
  "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": "..."
      }
    }
  }
}

Regenerating the bundled SCP provider

The provider under scp_diagram_mcp_server/scp/ is generated from the SCP icon asset package and committed to the repo. Only re-run this when the icons change:

python scripts/generate_scp_provider.py [icon_source_dir]

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scp_diagram_mcp_server-1.1.5.tar.gz (796.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scp_diagram_mcp_server-1.1.5-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file scp_diagram_mcp_server-1.1.5.tar.gz.

File metadata

File hashes

Hashes for scp_diagram_mcp_server-1.1.5.tar.gz
Algorithm Hash digest
SHA256 4b61e1eadb4930814d877f3fd028c3d5c3969f78cb9960a1ca9f3ef150395a79
MD5 53bed31601f75e3d769729a836821f8b
BLAKE2b-256 af42a8d13d47845a24b46106d8dcc8ee1b3338820dd9d78b5ea0473ab6b9dd36

See more details on using hashes here.

File details

Details for the file scp_diagram_mcp_server-1.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for scp_diagram_mcp_server-1.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 c138b3c7ea96ebb51b32567c550b920cfd28a96d8f2dd940c7192732911aa40a
MD5 b44ea6b98da91d46508f87f807ae2300
BLAKE2b-256 43791bfb4d976dba13ff6eb88dd2c7b6ca711d9a3579a9f8fa2f6b1a5e85bb41

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page