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 分