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:
- 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
- Windows:
- Graphviz — the
diagramspackage shells out to the Graphvizdotexecutable to render PNGs. It is a native program and must be installed separately and available onPATH.- Windows: install from graphviz.org (or
winget install Graphviz.Graphviz) and ensure thebindirectory is onPATH - macOS:
brew install graphviz - Linux (Debian/Ubuntu):
sudo apt-get install graphviz
- Windows: install from graphviz.org (or
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 parameters (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=trueon the call.
Credentials follow the SDK's discovery order — SCP_ACCESS_KEY / SCP_SECRET_KEY
environment variables, or ~/.scp/credential.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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scp_diagram_mcp_server-1.1.3.tar.gz.
File metadata
- Download URL: scp_diagram_mcp_server-1.1.3.tar.gz
- Upload date:
- Size: 628.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
580da27d8c4fcfeb8128f2ee74fbef77870029c6968ff80c83291a59d7c40208
|
|
| MD5 |
8b392401da2ac7761fcf17111add0ffa
|
|
| BLAKE2b-256 |
9891f44ae0224ad1a1c165a78c01561bbfd3f8deb128f8ca093d1c9a75effe29
|
File details
Details for the file scp_diagram_mcp_server-1.1.3-py3-none-any.whl.
File metadata
- Download URL: scp_diagram_mcp_server-1.1.3-py3-none-any.whl
- Upload date:
- Size: 916.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
931a4c6ef95b37b7563256ed7b42e2eb6effe393f468fb08c2405cfa493065cc
|
|
| MD5 |
75947201ccd2db559157e567da1bb56a
|
|
| BLAKE2b-256 |
7768f1c68ac24c53e720a212e11d25e0460d506e4ffcf9896c049af4f662ab17
|