MCP_HCL
Provides tools for interacting with H3C Cloud Lab (HCL) project files: listing and read-only inspecting existing .net projects (devices, coordinates, links), and staging additive changes by generating independent copies of a project that add a device (copied from an existing same-model device in the project) or add a dual-end link between two free ports. Callers then open the resulting .net file in HCL to validate the topology; the server does not modify source projects in place or control the live HCL canvas.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP_HCLadd a new router to project Lab1 and link it to switch1"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP_HCL
与 Agent 客户端无关的 HCL MCP Server,当前版本 0.5.0。本地主分支整合了已有分支历史和最新已验证的软件成果;完整 MCP-Packet-Tracer 62 工具/5 资源等价仍为 Incomplete。
接手读 HANDOFF.md,完整索引见 docs/README.md。当前发现面为 55 工具/6 资源;发现、软件合同、原生配置与真实流量分别记账,full_live_gate_passed=false。
能力与限制
离线工程检查、阶段副本、编辑、严格规划与配置/操作清单生成,支持哈希绑定的导出和重载。
原生配置服务包含 ACL/VLAN/NAT、接口调优、STP/端口安全与 NetStream;默认写入关闭,必须绑定实际设备、备份、范围回读和恢复入口。
差异、健康、地址观察和安全审计保留未知值及模拟/原生来源;不把缺字段、阶段库存或保存文件解释为完整实时拓扑。
GUI 保护验证身份、当前账号目录、监听者及工程回执;不能证明厂商运行时环境或清理边界。
上游工具库存仍为 12 implemented / 47 planned / 3 unverified。原生完整设备/线缆库存、若干 IOS→Comware 行为映射、命名 exporter/monitor 与安全 Phone 关联等仍缺。
2026-10-11 具名报告记录一次单设备隔离生命周期和账号清理;候选独占 CLI 被后台 MultiCC 保护拒绝,配置与网络验收未完成。证据位置与后续门槛见 当前交接 和 测试指南。
Related MCP server: Vivado Agent MCP
安装与运行
需要 Python 3.11+;原生功能需要合法安装的 Windows HCL。使用当前工作区的独立环境:
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e '.[dev]'
$env:MCP_HCL_PROJECT_ROOTS = 'C:\Users\YOUR_NAME\HCL\Projects'
$env:MCP_HCL_OUTPUT_ROOT = (Join-Path (Get-Location) 'work\staged')
$env:MCP_HCL_INSTALL_ROOT = 'D:\HCL'
$env:MCP_HCL_ALLOW_LIVE_WRITE = '0'
.\.venv\Scripts\python.exe -m mcp_hcl.serverstdio 服务等待协议输入;在 MCP 客户端配置相同解释器、工作区和环境。阶段工具仅写隔离输出副本。原生写入须按 统一测试计划 处理身份、资产和恢复前提。
开发与验证
.\.venv\Scripts\python.exe scripts\check_all.py该入口运行 Ruff 和全部软件检查,强制真实写开关为 0,并为每轮保存独立回执。历史成功与失败不覆盖。开发规范和模块职责见 development.md。原始检查结果定位见 HANDOFF。
参数见 离线 API、严格合同 v2 和 Schema。日期化报告、重复交接与旧脚本快照已移出维护文档,保留 Git 历史和仓库外备份。
Available Tools
5 toolshcl_capabilitiesC
Describe verified capabilities and the activation boundary.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure, and it says nothing about side effects, permissions, or whether this is a safe read. The word 'verified' hints that some capabilities may be unverified, but that distinction is never explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the object stated up front and no filler. It is efficient, though the brevity comes at the cost of the detail that would make it actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described in prose, which relieves much of the burden. Still, with no annotations and abstract terminology, the definition leaves an agent unsure what 'activation boundary' refers to or when invoking this tool is the right move.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing for the description to clarify on the input side.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description has a verb ('Describe') and an object ('verified capabilities and the activation boundary'), so it is not a tautology. However, 'capabilities' and 'activation boundary' are abstract domain terms with no concrete indication of what is actually returned or what area of the API this covers, so an agent cannot confidently distinguish its scope from siblings like hcl_inspect_project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this tool, when not to, or which sibling to prefer. The sibling names (hcl_list_projects, hcl_inspect_project, hcl_stage_add_device, hcl_stage_link) suggest an orchestration workflow where a capability-check step would matter, but the description does not connect itself to that flow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hcl_inspect_projectB
Read devices and links from one saved HCL project without changing it.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the key behavioral trait that the operation does not modify the project, which is valuable, but it says nothing about auth requirements, error behavior, or scope limits. The read-only disclosure is the main value-add.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb first and zero wasted words. It is exactly as long as it needs to be for a simple one-parameter read tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the tool is low-complexity with one parameter. The description covers purpose and the non-mutation behavior; the only real gap is the undocumented project_path semantics, which keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter (project_path) with 0% schema description coverage, so the description must compensate. It only implies that the path refers to a 'saved HCL project' but gives no format, path style, or resolution details, leaving the sole parameter effectively undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (read) and resource (devices and links from one saved HCL project), which is clearly distinguishable from hcl_list_projects and the stage_* write tools. It stops short of naming any sibling explicitly, so it does not reach the sibling-differentiation bar for a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'one saved HCL project' implies you use this to inspect a project that already exists, and 'without changing it' implies a safe read. However there is no explicit when-to-use vs alternatives (e.g., hcl_list_projects vs this), and no stated prerequisites, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hcl_list_projectsA
List HCL projects immediately under configured project roots.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the non-recursive scope ("immediately under"), which is genuine behavioral information, but it says nothing about whether it requires configured roots to exist, how it behaves when none are set, or that it is a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero filler, front-loading the verb and resource and placing the scope qualifier where it is immediately readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with an output schema present, the description is close to sufficient: return shape is covered by the schema and scope is stated. It could add one clause about the dependency on configured project roots or the follow-up inspection path.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is no parameter semantics to document. Baseline 4 applies; the description correctly implies the tool takes no filtering arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ("List HCL projects") with a scoping qualifier ("immediately under configured project roots") that distinguishes it from a deep/recursive listing. It is distinguishable from hcl_inspect_project, which clearly targets a single project, though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance and no alternatives named. The agent must infer that this is the entry-point discovery tool and that hcl_inspect_project is the follow-up for detail; nothing in the description routes it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hcl_stage_add_deviceC
Copy a project, add a device cloned from a known model, and optionally link it.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | ||
| y | Yes | ||
| new_name | Yes | ||
| new_port | No | ||
| connect_to | No | ||
| stage_name | Yes | ||
| project_path | Yes | ||
| connect_to_port | No | ||
| template_device | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that the tool copies a project and adds a device, implying mutation, but does not cover irreversibility, permissions, side effects on existing project data, or how optional linking behaves. The output schema covers return values, but the mutation behavior remains opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler, moving directly through the action sequence. Its brevity is efficient, though arguably under-specified for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter mutation tool with no annotations and zero schema descriptions, this one-sentence description is far too thin. It omits parameter semantics and usage context needed to invoke the tool correctly; the existence of an output schema does not compensate for the missing input guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for 9 parameters, so the description must compensate but does not. It names no parameters and explains none of the required inputs such as project_path, stage_name, new_name, x, or y; at best it vaguely hints at template_device via 'known model' and connect_to via 'link'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states specific actions (copy a project, add a device cloned from a known model, optionally link it) and names the resources involved. It does not differentiate from siblings like hcl_stage_link or hcl_inspect_project, and the initial 'Copy a project' clause is slightly at odds with the tool name hcl_stage_add_device, but the overall purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no mention of alternatives among the sibling tools. The description simply lists what the tool does, leaving the agent to infer context and prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hcl_stage_linkC
Copy a project and add a reciprocal link between two free ports.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | ||
| b | Yes | ||
| a_port | Yes | ||
| b_port | Yes | ||
| stage_name | Yes | ||
| project_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a write operation ('copy', 'add link') but omits permissions, side effects, reversibility, and what happens to existing projects or ports during the copy.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is efficient, though its extreme brevity contributes to the definition's overall under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six required parameters, zero schema descriptions, no annotations, and a complex operation, the description is far too thin. It leaves the agent without enough information to correctly bind parameters or understand the tool's role among its siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain six required parameters. It vaguely hints at 'project' and 'two free ports', which loosely correspond to project_path and the port parameters, but it never clarifies a, b, stage_name, or the port concepts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: copying a project and adding a reciprocal link between two free ports. However, it uses domain jargon ('free ports') and does not distinguish this tool from siblings like hcl_stage_add_device or explain what a 'stage link' is in context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or the sibling tools that might handle related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.0- First observed
hcl_capabilities - First observed
hcl_inspect_project - First observed
hcl_list_projects - First observed
hcl_stage_add_device - First observed
hcl_stage_link
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: capabilities (meta), list_projects (enumerate), inspect_project (read), stage_add_device (add device), and stage_link (add link). The optional linking in stage_add_device could be confused with stage_link, but the descriptions clarify the primary actions and when to use each.
All tools use the hcl_ prefix and snake_case, with operational tools following a verb_noun pattern (list_projects, inspect_project, stage_add_device, stage_link). hcl_capabilities is a noun phrase and breaks the verb-based convention, but only as a minor deviation.
Five tools is well-scoped for a server focused on HCL project inspection and staged modifications. Each tool has a clear role, and there is no redundant or excessive tooling.
The surface covers listing, inspection, and additive staging (add device, add link), but lacks update, removal, or project creation/deletion operations. For a tool that manipulates HCL projects, these are notable gaps in lifecycle coverage.
Maintenance
Related MCP Connectors
Read project context and manage tasks in MCPBinder, with access you control.
Generate TIA Portal importable SimaticML (V19) from LadDoc IR, with strict validation, over MCP.
Project management shared by people and AI agents, with persistent project state through MCP.
Start and manage Reason cloud coding agents, projects and sessions from any MCP client.
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables MCP-compatible agents to perform read-only inspection of OpenPLC Editor projects, including retrieving project structure and listing programs, function blocks, and functions.3Apache 2.0
- AlicenseBqualityBmaintenanceEnables MCP-capable agents to execute boardless AMD Vivado Project Mode PL development flows through safe, policy-constrained tools while preserving diagnostic and reproducible project evidence.413Apache 2.0
- FlicenseNot gradedqualityBmaintenanceEnables network troubleshooting through an MCP Streamable HTTP endpoint, exposing diagnostic tools for Cisco Packet Tracer labs with human-in-the-loop review and NIST/CIS security validation.-
- AlicenseAqualityBmaintenanceEnables MCP clients to safely read, write, edit, search, and optionally run commands within one or more named project workspaces, while maintaining a work journal and tracking changes.19MIT