KIP MCP Server

io.github.dillan由 GitHub 账号 dillan 发布v1.12.0更新于 Oct 25, 2026

Reads a boat's Signal K data and helps an AI assistant design and install KIP dashboards.

已验证STDIO仅桌面位置与生活数据与分析

概览

AI 生成的概览

一个 MCP 服务器,读取船只的 Signal K 数据,并帮助助手设计、预览和安装 KIP 仪表盘。

可以做什么
查看船只数据:列出 Signal K 数据路径、单位和已安装插件,并分析船只上报的内容。了解 KIP 组件:列出所有 KIP 小部件及其配置,以及支持的颜色、图标和单位。设计仪表盘:根据可用数据推荐一组仪表盘,为选定用途构建一个,并绘制预览图。审查可用性:从层级、分组、一致性和标签等方面评审仪表盘,给出带严重级别的发现,并有确定性 lint 检查。校验与保存:检查仪表盘格式是否正确,导出为文件,或在确认后写入船只。
适用场景
适合运行 Signal K 和 KIP 的船主,希望助手把船只实时数据转化为现成的航行、机动、锚泊、导航或天气仪表盘,并在保存前先查看预览。
运行要求
通过 npx 在本地运行,需要 Node.js 24 或更新版本。需要可访问的 Signal K 服务器,用 SIGNALK_HOST、SIGNALK_PORT 和 SIGNALK_TLS 配置;KIP_URL 可覆盖 KIP 的服务地址。读取数据无需登录;写入仪表盘需要 SIGNALK_TOKEN,或 SIGNALK_USER 配合 SIGNALK_PASSWORD。可选的 HTTP 模式还需 MCP_BEARER_TOKEN 等相关设置。
安装前请注意
写入仪表盘会改动船只的 KIP 配置;默认是试运行且助手会先询问,但批准前请自行确认。SIGNALK_TOKEN 或 SIGNALK_PASSWORD 具有 Signal K 服务器的写入权限,不要放进共享配置。可选 HTTP 模式对所有会话共用同一个 Signal K 登录,且在未设置 MCP_BEARER_TOKEN 或绑定非回环地址时默认拒绝启动,除非设置 MCP_ALLOW_INSECURE。

安装

在 SourceWeft 中

  1. 打开 控制台中的 KIP MCP Server,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

kip-mcp-server

[CI] [npm version] [npm downloads] [license] [node]

An MCP server that lets an AI assistant (such as Claude, Codex, or Gemini) look at your boat's Signal K data and help you design and install KIP dashboards — the gauges and panels you see on your chartplotter or tablet.

You stay in control: the assistant shows you a picture of each dashboard first, and it only saves anything to your boat after you say yes.

What it does

  • Looks at your boat's data. It finds the values your boat reports through Signal K — speed, wind, depth, batteries, engine, and so on.
  • Suggests dashboards. It proposes a general dashboard plus ones for specific jobs: sailing, motoring, power, anchoring, navigation, and weather.
  • Shows you a preview. You see a simple picture of each dashboard before anything is saved.
  • Installs them — with your OK. It writes the dashboards to your KIP setup, or hands you a file you can import yourself.

What it looks like

A short session with an AI assistant, after pointing it at your boat:

text
You:  Look at my boat's data and suggest some KIP dashboards.
  → analyze_signalk_data            142 paths · speed, wind, depth, battery, engine  → recommend_dashboard_set         6 dashboards the data supports
Assistant: Your boat reports navigation, wind, depth, electrical and engine data,so I can build these. Here's the "Sailing" one — a preview, nothing saved yet:
  ┌─────────────┬─────────────┬───────────────────────────┐  │ SOG  6.2 kn │ AWS 14 kn   │                           │  ├─────────────┼─────────────┤        wind steering       │  │ DPT  8.4 m  │ AWA  42°    │                           │  └─────────────┴─────────────┴───────────────────────────┘
You:  Looks good — install the sailing and anchor ones.
  → apply_kip_config (dry run)      2 dashboards → KipConfig (global)Assistant: This will add "Sailing" and "Anchor" to KIP. Go ahead?You:  Yes.  → apply_kip_config                written ✓  — open KIP to see them.

The assistant always shows a preview first and asks before writing anything to your boat.

Quick start (for boat owners)

You need a Signal K server running on your boat (or on your network), with KIP installed.

  1. Find your Signal K address. It usually looks like http://your-boat:3000. Note the host name (or IP) and port.
  2. Get this server. You don't need to install anything by hand — your AI assistant can run it on demand with npx (which comes with Node.js 24 or newer):
    bash
    npx -y kip-mcp-server
    The next step wires this command into your assistant. (Prefer to build from source? See Develop below.)
  3. Connect it to your AI assistant. Pick your assistant in docs/clients and follow the short setup there. You tell the assistant your boat's host and port.
  4. Ask it to help. Say something like "Look at my boat's data and suggest some KIP dashboards." Review the previews it shows you.
  5. Say yes. When you're happy, tell it to go ahead. It asks before writing anything. If your Signal K server is older, it gives you a KipConfig.json file to import from KIP's Settings instead.

How to connect it

The server reads a few settings from its environment:

SettingWhat it isDefault
SIGNALK_HOSTYour Signal K host name or IPlocalhost
SIGNALK_PORTYour Signal K port3000
SIGNALK_TLSSet to true if your server uses httpsfalse
SIGNALK_TOKENA Signal K login token, needed to write dashboards(none)
SIGNALK_USERA Signal K username — used with SIGNALK_PASSWORD instead of a token(none)
SIGNALK_PASSWORDThe matching Signal K password(none)
KIP_URLOverride where KIP is served, if it's not the default(derived)

Reading your data needs no login. Writing dashboards to the server needs either a token or a username and password; you can always use the file-export option instead, which needs nothing extra. For how to get a token (or why a username/password is simpler), see Signal K authentication.

Remote access over HTTP (optional, advanced)

By default the server talks over stdio — the assistant runs it as a local subprocess. There is also an optional HTTP mode (kip-mcp-http) for hosting the server so a remote assistant (such as Claude.ai) can reach it over the network. It is opt-in and meant for a single operator behind a reverse proxy that adds TLS.

bash
# Behind a TLS-terminating reverse proxy that forwards to 127.0.0.1:3017MCP_BEARER_TOKEN=a-long-random-secret \MCP_PUBLIC_URL=https://boat.example.com/mcp \  npx kip-mcp-http
SettingWhat it isDefault
HTTP_HOSTAddress to bind127.0.0.1 (loopback)
HTTP_PORTPort to listen on3017
HTTP_PATHURL path for the MCP endpoint/mcp
MCP_BEARER_TOKENOne or more (comma-separated) bearer tokens that callers must present(none)
MCP_PUBLIC_URLThe public URL clients reach, used for the Host allowlist and metadata(derived)
MCP_ALLOWED_ORIGINSComma-separated browser origins to accept (off by default)(none)
MCP_ALLOWED_HOSTSOverride the Host allowlist(derived)
MCP_ALLOW_INSECURESet to true to start anyway in an unsafe setup(unset)

Every request must present a valid Authorization: Bearer <token> and pass a Host/Origin allowlist before it reaches the MCP layer. The server refuses to start if it would bind to a non-loopback address or run without a bearer token, unless you set MCP_ALLOW_INSECURE=true. It uses one Signal K login for all sessions, so treat it as a single-tenant deployment; the same SIGNALK_* settings above apply.

What the assistant can do

The server gives the assistant a set of tools, grouped by job:

  • Look at the boat — list the data paths, their units, and which plugins are installed.
  • Know KIP's parts — list every KIP widget and how it's configured, plus the colours, icons and units KIP understands.
  • Design dashboards — suggest a set of dashboards, build one for a chosen job, and draw a preview.
  • Review the UX — critique a dashboard for marine usability (hierarchy, grouping, consistency, labels) with severity-tagged findings; the review_dashboard prompt drives it, backed by a deterministic check_dashboard_ux lint.
  • Check and save — check a dashboard is well-formed, export it to a file, or write it to the boat (asking first).

More help

  • Recipes — worked examples of asking the assistant to design dashboards.
  • Troubleshooting — fixes for the common problems, starting with the built-in --doctor check.
  • Tool reference — every tool and prompt the assistant can use.

Glossary

A few terms, in plain words:

  • Signal K — the open system many boats use to share data (speed, wind, depth, …) over the network.
  • path — the name of one piece of data, like navigation.speedOverGround (speed over ground).
  • KIP — the app that shows your boat's data as dashboards of gauges and panels.
  • widget — one gauge or panel on a dashboard (a number, a dial, a wind display, …).
  • dashboard — a screen full of widgets, laid out on a grid.
  • token — like a password for software: it lets the server save changes to your boat.
  • dry run — the assistant tells you what it would do, without actually doing it. Saving is a dry run by default.

Develop

This project uses Node.js 24 (LTS). Common commands:

bash
npm install        # install dependenciesnpm run typecheck  # check typesnpm run lint       # check code stylenpm test           # run the testsnpm run build      # compile to dist/npm run smoke      # start the built server and check it answersnpm run ci         # run the full set of checks

For a full guide to running and testing the server locally during development — pointing an AI client or the MCP Inspector at a local build, running the HTTP transport, and testing against Signal K (or offline) — see docs/development.md.

Commits follow Conventional Commits; releases and version numbers are produced automatically from those commit messages.

License

MIT — see LICENSE.

来源:README.md,提交 bd9a4eb

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.12.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分