npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

baton-board-mcp

v0.1.0

Published

MCP server for Baton Board — lets an AI agent (Claude Desktop/Code) read and update your local board (data.json).

Readme

Baton Board MCP サーバー

AIエージェント(Claude Desktop / Claude Code など MCP対応クライアント)が、あなたのローカルの Baton Board(data.json)を直接 読み書きできるようにする MCP サーバー。 =「人間とAIが同じ盤を共有する」を、コピペ無しの直接連携で実現します。

  • ローカルのみ・ネットワーク非経由(ゼロトラスト)。クラウドに何も送りません。
  • 対象=デスクトップ版や data.json をファイルで持っている使い方(純ブラウザのみの人は対象外)。

公開しているツール

| ツール | 説明 | |---|---| | get_board | 盤の要約(ボード・ウィジェット・未完/全タスク数) | | list_widgets | ウィジェット一覧(id/種別/タイトル)=対象特定用 | | list_tasks | タスク一覧(status: open / done / all) | | add_task | タスク追加(text、任意で due=YYYY-MM-DD。source は ai で記録) | | complete_task | 完了マーク(taskId 優先・無ければ text 完全一致) | | add_note | メモ追記(notes widget へ・無ければ作成) | | record_kpi | KPIに日付つき値を記録(value・任意 label/unit/date・履歴追加+現在値更新) | | mark_habit | 習慣をその日「達成」に(name・任意 date/done・無ければ作成) | | list_boards | ボード(プロファイル)一覧。add_taskprofileId で対象指定 | | bulk_add_tasks | 箇条書き(配列)を一括タスク化 | | update_goal | 目標の現在値/目標値を更新(label で特定・無ければ作成) | | search_board | 盤を横断検索(タスク/タグ・メモ・リンク・目標・KPI・カウントダウン・習慣) | | get_agenda | 直近N日(既定7)+期限超過の未完タスクを締切順で |

セットアップ(npx・推奨・インストール不要)

data.json の場所を環境変数 BATON_BOARD_DATA で渡します(デスクトップ版の保存ファイル、または書き出した data.json)。

npx -y baton-board-mcp

(単独実行では stdio 待ちで無反応に見えますが正常。AIクライアント側の MCP 設定から起動されると動きます)

Claude Desktop の設定例(claude_desktop_config.json

{
  "mcpServers": {
    "baton-board": {
      "command": "npx",
      "args": ["-y", "baton-board-mcp"],
      "env": {
        "BATON_BOARD_DATA": "C:/path/to/your/data.json",
        "POLAR_ORG_ID": "org_xxx",
        "BATON_BOARD_LICENSE": "your-pro-license-key"
      }
    }
  }
}

Claude Code の場合

claude mcp add baton-board -e BATON_BOARD_DATA=C:/path/to/your/data.json -- npx -y baton-board-mcp

ローカルのソースから直接起動する場合(開発・このリポジトリを clone 済みの場合)

cd mcp
npm install        # @modelcontextprotocol/sdk を取得

command/argsnode / ["C:/Projects/baton-board/mcp/server.mjs"] に置き換えれば同様に動きます(npx 版と挙動は同じ)。

設定後、AI に「ボードの状況を見て」「"請求書を送る" をタスク追加して」のように頼むと、 AI が get_board / add_task などを呼んであなたの盤を直接更新します(追記は source=ai 記録=アクティビティログに残る)。

Pro限定(買ってから連携)

MCP連携は Pro機能です。Polar のライセンスキーで検証します(src/license.ts と同じ公開エンドポイント)。

  • POLAR_ORG_ID=Polar organization ID(アプリと同値)/BATON_BOARD_LICENSE=購入者の Pro キー。
  • 挙動:
    • POLAR_ORG_ID 未設定=ゲート無効(launch前/開発中は誰でも動く)。
    • POLAR_ORG_ID 設定済み+キーが有効=全ツール利用可。
    • キー無効/未設定=全ツールが「Pro が必要」エラーを返す。
    • オフライン/Polar障害時は grace で許可(支払い済みユーザーをオフラインで締め出さない)。ローカルコードゆえ完全強制ではありません(アプリのProゲートと同程度)。
  • 検証は起動時に1回。キー更新後はサーバー再起動で再検証。

セキュリティ

  • 通信は AIクライアント ↔ ローカルプロセス(stdio)のみ=ネットワークに出ません。
  • 書き込みは data.json を原子的に置換(temp→rename)。当社サーバーは一切関与しません。
  • 書込前に1世代バックアップdata.json.bak)=AIの誤操作からすぐ戻せる安全網。

開発メモ

  • board.mjsdata.json 読み書き+操作の純ロジック(テスト容易)。
  • server.mjs … MCP(stdio)でツールを公開。
  • 依存は mcp/ 配下に隔離(本体アプリの依存は汚さない)。node_modules はコミットしない。

License

MIT License. See LICENSE.