结构化MCP服务器
   
A. 模型上下文协议(MCP) 服务器 结构,使像Claude这样的人工智能助手能够以代码的形式创建和管理C4架构图。
✅ 生产就绪 -所有功能均已实施、测试(覆盖率>95%)并准备就绪。
这是什么?
此MCP服务器允许大型语言模型:
- 创建和管理Structurizr工作区
- 构建C4架构模型(人员、系统、容器、组件)
- 定义架构元素之间的关系
- 生成系统上下文、容器和组件视图
- 导出为Structurizr-DSL格式
特性
✨ 23个MCP工具 -完整的工作空间和模型管理
- 工作空间管理 (4个工具):创建、检索、列出、删除
- C4模型楼 (5个工具):添加人员、系统、容器、组件、关系
- 视图和可视化 (5个工具):系统上下文、容器、组件、动态视图、自动布局
- 文档 (2个工具):添加文档部分和ADR
- 导出/导入 (4个工具):DSL、PlantUML、Mermaid格式
- 分析 (3个工具):依赖性分析、元素搜索、工作空间验证
🔍 7 MCP资源 -基于URI的数据访问
- 静态配置端点
- 工作空间、模型和视图检索
- 元素和视图特定查询
- DSL表示接入
💬 7 MCP提示 -LLM指导援助
- 分析:架构审查、安全分析、改进建议
- 生成:系统上下文、完整的C4模型、示例、C4解释
🏗️ 完全支持C4型号
- 所有四个C4级别:系统上下文、容器、组件、代码
- 运行时行为的动态视图
- 层次元素组织
- 完整的关系管理
📝 多种导出格式
- 结构化DSL(原生格式)
- PlantUML图
- 美人鱼图
- 工作区验证
🔒 产品品质
- > 95%的测试覆盖率(411次测试通过)
- PHPTan 8级合规性(最大静态分析)
- PSR-12代码风格合规性
- 全面的错误处理和安全性
🐳 自动CLI检测
- 自动检测本地Structurizr CLI安装
- 当本地CLI不可用时,回退到Docker
- 无需配置-只需工作!
安装
先决条件
- PHP 8.1或更高版本
- 作曲家
- Claude Desktop(或其他兼容MCP的客户端)
- 以下之一(用于DSL验证/导出):
- 码头工人 (推荐)-自动使用 structurizr/cli 图像 - 结构化CLI -
设置
- 克隆仓库
git clone https://github.com/Cubical6/structurizr-mcp.git
cd structurizr-mcp- 安装依赖项
composer install- 配置环境(可选)
cp .env.example .env
# Edit .env if you need to customize paths or logging- 配置Claude桌面
添加到您的Claude Desktop MCP设置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json
macOS/Linux配置:
{
"mcpServers": {
"structurizr": {
"command": "php",
"args": ["/absolute/path/to/structurizr-mcp/server.php"]
}
}
}Windows配置:
> ⚠️ Windows用户重要提示:您必须通过将JSON路径中的反斜杠加倍来转义它们(\\)或使用正斜杠(/).
选项1:使用正斜杠(推荐)
{
"mcpServers": {
"structurizr": {
"command": "php",
"args": ["C:/Users/YourName/Projects/structurizr-mcp/server.php"]
}
}
}选项2:使用转义反斜杠
{
"mcpServers": {
"structurizr": {
"command": "php",
"args": ["C:\\Users\\YourName\\Projects\\structurizr-mcp\\server.php"]
}
}
}❌ 这在Windows上不起作用:
{
"mcpServers": {
"structurizr": {
"command": "php",
"args": ["C:\Users\YourName\Projects\structurizr-mcp\server.php"]
}
}
}*JSON中的单反斜杠无效,将导致“无法读取未定义的属性(读取'cmd')”错误。*
- 重新启动克劳德桌面
可用工具(共23个)
工作空间管理(4个工具)
create_workspace-创建新的Structurizr工作区get_workspace-检索工作区详细信息(JSON或DSL格式)list_workspaces-列出所有可用工作区delete_workspace-删除工作区
模型构建(5个工具)
add_person-将一个人(用户、演员)添加到模型中add_software_system-添加软件系统add_container-将容器添加到系统中add_component-将组件添加到容器中add_relationship-在元素之间创建关系
视图(5工具)
create_system_context_view-创建系统上下文关系图create_container_view-创建容器关系图create_component_view-创建组件图create_dynamic_view-创建动态图(运行时行为)apply_auto_layout-将自动布局应用于视图
文档(2个工具)
add_documentation_section-添加文档部分add_adr-添加架构决策记录
导出/导入(4个工具)
export_to_dsl-将工作空间导出到Structurizr-DSLexport_to_plantuml-将视图导出到PlantUMLexport_to_mermaid-将视图导出到Mermaidimport_from_dsl-从DSL导入工作区
分析(3个工具)
analyze_dependencies-分析元素依赖关系find_element-按名称查找元素validate_workspace-验证工作空间结构
可用资源(共7个)
静态资源
structurizr://config-服务器配置和状态
工作区资源
structurizr://workspace/{workspaceId}-完整工作空间数据structurizr://workspace/{workspaceId}/model-仅模型元素structurizr://workspace/{workspaceId}/views-仅查看定义structurizr://workspace/{workspaceId}/dsl-DSL表示
元素和视图资源
structurizr://workspace/{workspaceId}/element/{elementId}-特定元素数据structurizr://workspace/{workspaceId}/view/{viewKey}-特定视图数据
可用提示(共7个)
分析提示(3个提示)
analyze_architecture-基于7点框架的综合架构分析review_security-带6点检查表的安全审查suggest_improvements-可定制重点领域的改进建议
生成提示(4个提示)
generate_system_context-根据描述生成C4系统上下文图create_from_description-创建完整的多级C4模型(6阶段过程)explain_c4_model-用实例全面解释C4模型create_example_workspace-生成示例工作区(电子商务、微服务、单体、SaaS)
使用示例
示例1:简单电子商务系统
Claude, help me create a C4 model for an e-commerce system:
1. Create a workspace called "E-commerce Platform"
2. Add a customer (person)
3. Add an e-commerce system
4. Add a payment gateway (external system)
5. Create relationships between them
6. Generate a system context view
7. Export the DSLClaude将使用MCP工具:
- 创建工作区
- 添加所有元素
- 定义关系
- 生成视图
- 提供完整的DSL
示例2:微服务架构
Create a microservices architecture model:
- API Gateway system with these containers:
- Web API (Spring Boot)
- Redis Cache
- User Service with PostgreSQL database
- Order Service with MongoDB database
- Add relationships showing the data flow示例3:检查现有工作区
Show me all workspaces, then export the DSL for workspace ID ws_abc123建筑
structurizr-mcp/
├── server.php # MCP server entry point
├── src/
│ ├── Configuration.php # Environment configuration
│ ├── Tools/ # MCP tool implementations
│ │ ├── WorkspaceTools.php
│ │ └── ModelTools.php
│ ├── Structurizr/ # Core domain logic
│ │ ├── Workspace.php
│ │ ├── WorkspaceManager.php
│ │ └── DslBuilder.php
│ └── Exception/ # Custom exceptions
├── workspaces/ # Local workspace storage
├── cache/ # Discovery cache
└── sessions/ # Session storage发展
运行测试
composer test静态分析
composer stan代码风格
composer cs-fix实施状态
✅ 核心功能-完整
- \[x\] 工作区CRUD操作(创建、读取、更新、删除)
- \[x\] C4模型元素创建(人、系统、容器、组件)
- \[x\] 利用技术和标签进行关系管理
- \[x\] 系统上下文、容器和组件视图
- \[x\] 运行时行为的动态视图
- \[x\] 自动布局支持
- \[x\] DSL导出和导入
- \[x\] 导出到PlantUML和Mermaid
- \[x\] 文件部分和ADR
- \[x\] 依赖性分析和验证
- \[x\] MCP资源(7个端点)
- \[x\] MCP提示(7个分析和生成提示)
🔵 未来增强功能(可选)
- \[\]Structurizer云推/拉集成
- \[\]自定义样式和主题
- \[\]从代码中发现组件
- \[\]批量操作
- \[\]HTTP传输支持
贡献
欢迎投稿!请看 CLAUDE.md 用于项目文件和 TASKS.md 实施路线图。
许可证
MIT许可证-请参阅 许可证 了解详情。
资源
支持
______________________________________________________________________
内置于❤️ 使用 PHP-MCP-SDK
