Token导航 LogoToken导航TokenDH.com
MCP Can logo
运维云端stdio官方级别未说明来源级核验

MCP Can

MCP Server

一个用于将车辆CAN/OBD数据呈现给LLM/SLM的MCP服务器,模拟虚拟CAN总线上的ECU,并通过DBC解码,无需硬件即可运行。

工具数

0

提示词数

0

GitHub Stars

6

资源数

0
PythonLLM工具云端部署

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

farzadnadiri

提供方

farzadnadiri

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

MCP-CAN:虚拟CAN+MCP服务器

专用于将车辆CAN/OBD数据传输到LLM/SLM的MCP服务器。它在虚拟CAN总线上模拟ECU,通过DBC进行解码,并通过SSE公开MCP工具——默认情况下不需要硬件。

______________________________________________________________________

亮点

  • CAN/OBD的MCP服务器→ LLM/SLM(工具+SSE上的DBC元数据)。
  • 虚拟CAN后端(python CAN)开箱即用;Linux上的可选SocketCAN/vCAN。
  • DBC驱动的编码/解码 cantools.
  • ECU模拟器,可流式传输多条消息以及演示OBD-II响应。
  • MCP服务器(SSE)公开用于帧、过滤、监视和DBC信息的工具。
  • 类型CLI: mcp-can (模拟、服务器、帧、解码、监视、obd请求)。
  • Dockerfile+docker组成服务器+模拟器。
  • 单元测试、类型提示、lint配置(ruff、mypy)。

仓库布局

  • src/mcp_can/

- cli.py –打字机命令 - bus.py –python can助手 - dbc.py –DBC加载/解码 - config.py –环境设置(MCP_CAN_*) - models.py –简单的数据类 - simulator/runner.py –ECU模拟器+OBD应答器 - server/fastmcp_server.py –MCP工具(SSE) - obd.py –最小OBD-II请求/响应助手

  • vehicle.dbc –CAN数据库示例
  • simulate-ecus.py, can-mcp.py –入口点
  • docker/compose.yml, Dockerfile
  • tests/ –单元测试

先决条件

  • Python 3.10+
  • (可选)Docker/Docker Compose
  • (可选)Ollama(如果您想要本地LLM后端)

安装(Python)

从repo根目录:

pip install -r requirements.txt
pip install -e .

快速启动(模拟器+MCP服务器)

两个终端:

# Terminal A: start ECU simulator on virtual bus0
mcp-can simulate

# Terminal B: start MCP server (SSE on 6278)
mcp-can server --port 6278

单个进程(如果虚拟后端不跨进程共享,则在Windows上会有所帮助):

mcp-can demo --port 6278

交互示例:

mcp-can frames --seconds 2
mcp-can decode --id 0x100 --data "01 02 03 04 05 06 07 08"
mcp-can monitor --signal ENGINE_SPEED --seconds 3
mcp-can obd-request --service 0x01 --pid 0x0D

MCP检查器(用于工具的GUI)

使用官方检查器探索和调用您的MCP工具,而无需编写主机:

npx @modelcontextprotocol/inspector

出现提示时,连接到服务器:

  • 网址: http://localhost:6278/sse

然后,您可以:

  • 列出工具和资源(read_can_frames, decode_can_frame, filter_frames, monitor_signal, dbc_info).
  • 调用工具(例如监视器 ENGINE_SPEED 5秒)并实时查看JSON输出。

与Ollama(当地LLM)一起使用

  1. 确保Olama正在运行: ollama serve 并拉取一个模型: ollama pull llama3
  2. 运行模拟器+MCP服务器(请参阅快速入门)。
  3. 将支持MCP的主机指向 http://localhost:6278/sse 并将其模型端点配置为 http://localhost:11434 使用您的型号名称(例如。, llama3).
  4. 提示主机:“监控ENGINE_SPEED 5秒”或“列出所有DBC消息”

如果你需要一个最小的主机,配对 @modelcontextprotocol/sdk 使用Ollama(请参阅SDK文档)或使用Inspector进行手动工具调用。

示例主机配置(本地Ollama的OpenAI兼容端点):

{
  "model": {
    "type": "openai-compatible",
    "baseUrl": "http://localhost:11434/v1",
    "model": "llama3"
  },
  "mcpServers": {
    "can-mcp-server": {
      "serverUrl": "http://localhost:6278/sse"
    }
  }
}

CLI参考

  • mcp-can simulate –使用启动ECU模拟器 vehicle.dbc.
  • mcp-can server [--port 6278] –运行MCP SSE服务器。
  • mcp-can frames --seconds 1.0 将原始帧捕获为JSON格式。
  • mcp-can decode --id --data –解码单个帧。
  • mcp-can monitor --signal --seconds 2.0 看一个信号。
  • mcp-can obd-request --service [--pid ] –演示OBD-II请求。

配置

Env变量(前缀 MCP_CAN_):

  • CAN_INTERFACE (默认值 virtual)
  • CAN_CHANNEL (默认值 bus0)
  • DBC_PATH (默认值 vehicle.dbc)
  • MCP_PORT (默认值 6278)

您可以在 .env 位于repo根目录的文件。

码头工人

构建:

docker build -t mcp-can .

运行(组合服务器+模拟器):

docker run -d --name mcp-can -p 6278:6278 -p 5000:5000 -p 8080:8080 mcp-can

作曲(从 docker/):

docker compose up -d --build

开发与测试

pip install -r requirements.txt
pip install -e .
pip install pytest ruff mypy

ruff check .
mypy src
pytest -q

故障排除

  • 没有相框?确保模拟器和服务器使用相同的接口/通道(virtual/bus0 默认情况下)。
  • DBC失踪?集 MCP_CAN_DBC_PATH 或地点 vehicle.dbc 在repo根目录中。
  • Docker网络:公开 6278 因此,您的MCP主机可以连接到SSE。

许可证

麻省理工学院(见 LICENSE).仅用于教育/原型制作——使用经过认证的硬件进行实际的汽车工作。

目录标签

目录标签

PythonLLM工具云端部署CAN总线本地部署OBD解码虚拟ECU车联网

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP