Skip to main content
Glama
suzike

Agent2Canoe MCP Server

by suzike

为什么是 Agent2Canoe

传统 CANoe 自动化解决了“脚本如何调用工具”,Agent2Canoe 进一步解决“AI 如何理解工程、约束操作并证明结果”。

Related MCP server: packet-tracer-mcp

v0.2.0 能做什么

能力域

已集成能力

可用入口

CANoe 会话

打开/附着配置、启动/停止测量、恢复与退出

Python · REST · MCP

工程能力发现

网络、数据库、信号、系统变量、诊断、测试、CAPL

REST · MCP

网络管理

列出、新增、移除网络,配置软件通道并校验安全前提

Python · REST · MCP

测试结果统计

用例快照、通过/失败/其他数量、通过率、报告路径

Python

AI 安全编排

计划预览、能力校验、显式确认、dry-run、结构化结果

REST · MCP

硬件映射审计

检查 Windows、位宽、XL Driver DLL 和开放阻塞项

Python · REST · MCP

硬件安全边界

v0.2.0 的物理硬件通道写映射仍保持关闭。该能力依赖可审计的 Vector XL Driver SDK 来源、ABI/位宽验证以及真实 VN 设备回归;当前版本只提供只读前提审计,不打包第三方二进制。

AI 执行闭环

AI 不应直接把一句自然语言变成不可见的 COM 调用。Agent2Canoe 将工作拆成可检查的步骤:

  1. 读取 canoe_status,确认会话与测量状态。

  2. 调用 describe_agent_capabilities,了解接口、约束和确认策略。

  3. 调用 discover_capabilities,发现当前工程真正存在的对象。

  4. 使用 plan_task 将自然语言转换为确定性执行计划。

  5. 用户确认带副作用的步骤;只读操作无需额外授权。

  6. 调用 execute_plan,按安全边界执行。

  7. 根据结构化返回值复核实际状态、统计与证据。

快速开始

1. 准备环境

Agent2Canoe 运行于 Windows。真实自动化需要本机已安装并获得许可的 Vector CANoe; 没有 CANoe 时仍可使用 Mock 后端开发和验证 AI 工作流。

git clone https://github.com/suzike/Agent2Canoe.git
cd Agent2Canoe
uv sync --all-extras

2. 用 Python 控制 CANoe

from agent2canoe import Agent2Canoe

canoe = Agent2Canoe()
canoe.open(r"C:\work\demo.cfg")
canoe.start_measurement()

for network in canoe.list_networks():
    print(network)

canoe.stop_measurement()

3. 不连接 CANoe 先验证

# 查看命令行入口
uv run agent2canoe --version

# 启动 Mock REST 服务
uv run agent2canoe-api --mock --port 8765

# 启动 Mock MCP 服务
uv run agent2canoe-mcp --mock

AI / MCP 接入

Claude Code、Codex 或其他支持 MCP 的客户端可通过 stdio 启动 Agent2Canoe:

{
  "mcpServers": {
    "Agent2Canoe": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\path\\to\\Agent2Canoe",
        "run",
        "agent2canoe-mcp"
      ]
    }
  }
}

MCP 工具一览

工具组

代表工具

用途

状态与发现

canoe_status · describe_agent_capabilities · discover_capabilities

建立真实工程上下文

计划与执行

plan_task · execute_plan

预览、确认并执行自然语言任务

网络管理

list_networks · add_network · remove_network

管理网络及软件通道

工程操作

信号、系统变量、诊断、测试相关工具

驱动具体 CANoe 工作

硬件审计

audit_hardware_mapping

只读检查硬件映射开放前提

完整配置、确认语义和调用示例参见 AI 智能体集成指南

REST API

uv run agent2canoe-api --mock --port 8765

方法

路径

用途

GET

/agent/capabilities

返回 AI 能力、约束与接口清单

GET

/capabilities

发现当前 CANoe 工程对象

POST

/plans

由自然语言或结构化任务生成计划

POST

/plans/{id}/execute

在确认策略约束下执行计划

GET/POST/DELETE

/networks

网络管理

GET

/hardware/audit

只读硬件映射前提审计

直接写操作缺少确认时返回 HTTP 428,计划执行则按步骤 ID 确认。

项目结构

Agent2Canoe/
├─ src/
│  ├─ agent2canoe/          # 新品牌公共入口
│  └─ py_canoe/             # CANoe 实现与兼容层
│     └─ automation/        # 发现、计划、安全、REST、MCP、硬件审计
├─ tests/                   # 单元、Mock 与自动化接口测试
├─ integration_test/        # 需真实 CANoe 许可的集成测试
├─ docs/                    # 指南、审计与 API 文档
└─ demo/                    # 示例工程与脚本

v0.2.0 的首选导入路径是 agent2canoe。底层 py_canoe 暂作为兼容层保留, 已有脚本可渐进迁移;新的 CLI、发布包、文档和 MCP 标识统一使用 Agent2Canoe。

开发与质量门禁

uv run ruff check src/agent2canoe src/py_canoe/automation tests
uv run pytest -q
uv build
uv run mkdocs build --strict

真实 CANoe 集成测试不会默认执行,需显式设置:

$env:AGENT2CANOE_RUN_INTEGRATION = "1"
uv run pytest integration_test -m integration

当前基线

结果

默认测试套件

276 passed · 27 skipped

Python 3.10 自动化子集

27 passed

文档严格构建

通过

Wheel 隔离安装与导入

通过

以上为 v0.2.0 本地基线结果;最新状态以 GitHub Actions 为准。

版本路线

版本

主题

状态

v0.1.0

本地工程基线、基础自动化与中文文档

✅ 已完成

v0.2.0

Agent2Canoe 品牌、测试统计、网络管理、AI 发现与 MCP

🚧 集成开发线

v0.3.x

硬件实验台验证、策略扩展、可观测性与工程模板

🧭 规划中

进一步的风险、技术债与能力增强建议见 v0.2.0 工程审计硬件通道映射独立审计

文档导航

许可证

Agent2Canoe 采用 MIT License。Vector、CANoe 及相关产品名称归其各自权利人所有; 本项目不随包分发 CANoe、Vector SDK 或驱动二进制文件。

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/suzike/Agent2Canoe'

If you have feedback or need assistance with the MCP directory API, please join our Discord server