Skip to main content

An MCP server that seamlessly creates GCP diagrams using the Python diagrams package DSL

Project description

GCP Diagram MCP Server

Model Context Protocol (MCP) server for GCP Diagrams

This MCP server that seamlessly creates diagrams using the Python diagrams package DSL. This server allows you to generate GCP diagrams, sequence diagrams, flow diagrams, and class diagrams using Python code.

Tests

Prerequisites

  1. Install uv from Astral or the GitHub README
  2. Install Python using uv python install 3.10
  3. Install GraphViz https://www.graphviz.org/

Installation

Cursor VS Code
Install MCP Server Install on VS Code

Configure the MCP server in your MCP client configuration (e.g., for Google AI Studio CLI, edit your MCP client config):

{
  "mcpServers": {
    "mclabs.gcp-diagram-mcp-server": {
      "command": "uvx",
      "args": ["mclabs.gcp-diagram-mcp-server"],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "autoApprove": [],
      "disabled": false
    }
  }
}

or docker after a successful docker build -t mclabs/gcp-diagram-mcp-server .:

  {
    "mcpServers": {
      "mclabs.gcp-diagram-mcp-server": {
        "command": "docker",
        "args": [
          "run",
          "--rm",
          "--interactive",
          "--env",
          "FASTMCP_LOG_LEVEL=ERROR",
          "mclabs/gcp-diagram-mcp-server:latest"
        ],
        "env": {},
        "disabled": false,
        "autoApprove": []
      }
    }
  }

Features

The Diagrams MCP Server provides the following capabilities:

  1. Generate Diagrams: Create professional diagrams using Python code
  2. Multiple Diagram Types: Support for GCP architecture, sequence diagrams, flow charts, class diagrams, and more
  3. Customization: Customize diagram appearance, layout, and styling
  4. Security: Code scanning to ensure secure diagram generation

Quick Example

from diagrams import Diagram
from diagrams.gcp.compute import Functions
from diagrams.gcp.database import Firestore
from diagrams.gcp.network import LoadBalancing

with Diagram("Serverless Application", show=False):
    lb = LoadBalancing("Load Balancer")
    function = Functions("Cloud Function")
    database = Firestore("Firestore")

    lb >> function >> database

Development

Testing

The project includes a comprehensive test suite to ensure the functionality of the MCP server. The tests are organized by module and cover all aspects of the server's functionality.

To run the tests, use the provided script:

./run_tests.sh

This script will automatically install pytest and its dependencies if they're not already installed.

Or run pytest directly (if you have pytest installed):

pytest -xvs tests/

To run with coverage:

pytest --cov=mclabs.gcp_diagram_mcp_server --cov-report=term-missing tests/

For more information about the tests, see the tests README.

Development Dependencies

To set up the development environment, install the development dependencies:

uv pip install -e ".[dev]"

This will install the required dependencies for development, including pytest, pytest-asyncio, and pytest-cov.

Acknowledgments

This project is based on the excellent work from the AWS Labs MCP project. We are grateful to the AWS Labs team for creating the original AWS Diagram MCP Server, which served as the foundation for this GCP version.

Original Project

  • Original Repository: awslabs/mcp
  • Original Package: awslabs.aws-diagram-mcp-server
  • License: Apache License 2.0

Special thanks to the AWS Labs team and all contributors to the original project for their innovative work in creating MCP servers for cloud architecture diagrams.

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

mclabs_gcp_diagram_mcp_server-1.0.5.tar.gz (96.8 kB view details)

Uploaded Source

Built Distribution

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

mclabs_gcp_diagram_mcp_server-1.0.5-py3-none-any.whl (26.2 kB view details)

Uploaded Python 3

File details

Details for the file mclabs_gcp_diagram_mcp_server-1.0.5.tar.gz.

File metadata

File hashes

Hashes for mclabs_gcp_diagram_mcp_server-1.0.5.tar.gz
Algorithm Hash digest
SHA256 d866eb9492adde3ea88c02dde90b6ecc800ba8190d22b09d015f81d92a44a9c8
MD5 b2d935836a4b48f634ed4451b2b8bf81
BLAKE2b-256 3a4b786d4c7b88faae091355e23c7749ef21899646b95be6b7ef6bd36994fb1f

See more details on using hashes here.

File details

Details for the file mclabs_gcp_diagram_mcp_server-1.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for mclabs_gcp_diagram_mcp_server-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 6bafcb0dc84e37cb5898dcb631183e9d19638fbe991090340139ea413a3ca3b6
MD5 fb37659a49c156fa3134e79949b5eb05
BLAKE2b-256 0676a054a5471280aaefbd70ed7f7c4034b241cbe88f43bc88fd4d29b2d4419c

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