About Hono Apps SDK
Hono Apps SDK is an MCP server published by ts-76 in the Developer Tools category: mCP server: Hono Apps SDK.
The repository has 1 stars and 0 forks, with the last commit 10 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/ts-76/hono-apps-sdkThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Hono Apps SDK
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- !License declaredNo license file. Legally you have no right to use it in a product.
- !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
hono-todo
プロジェクト概要
hono-todo は Hono 製 MCP サーバーが Todo ウィジェットを提供するサンプルです。hono/jsx によるサーバーサイドレンダリングと hono/jsx/dom を用いたクライアント側の軽量インタラクションを組み合わせ、ChatGPT Apps SDK (Streamable HTTP) から Todo リストを表示・更新できます。
- MCP サーバー:
@hono/mcp,@modelcontextprotocol/sdk - サーバー側レンダリング:
hono/jsx/dom/server - クライアント:
hono/jsx/domHooks +window.openai - バンドラ: Vite (
dist/manifest.jsonを参照)
セットアップ
事前に Bun をインストールしてください。
bun install
開発時は MCP サーバーと Vite を並行起動します。
# MCP サーバー (ホットリロード)
bun run dev:server
# クライアントバンドル (HMR)
bun run dev:client
本番用アセットは次で生成します。
bun run build:client
生成した dist/ を利用してサーバーを起動する場合は、別ターミナルで次を実行します。
NODE_ENV=production bun run start
ディレクトリ構成 (抜粋)
src/
server.tsx # Hono アプリと MCP サーバーのエントリ
server/assets.ts # Vite manifest / 開発時エントリの解決
server/store.ts # Zod スキーマとメモリ内 Todo ストア
server/widget.tsx # SSR 用 JSX テンプレート
client/todo/main.tsx # hono/jsx/dom でウィジェットをマウント
client/todo/controller.tsx # TodoApp コンポーネント (Hooks 実装)
client/todo/types.ts # 型定義と type guard
styles/todo.css # Todo ウィジェットのスタイル
サーバー実装のポイント
src/server.tsx/mcpにStreamableHTTPTransportをマウントし、MCPServerと接続。- Todo リスト表示・追加・トグルのツールとリソース (
ui://widget/todo-list.html) を登録。 renderWidgetHtml(loadAssetMap())で SSR 済み HTML を返却。/assets/*でdist/配下のビルド成果物を配信。
src/server/assets.ts- 開発時は
VITE_DEV_SERVER_ORIGINを利用し、HMR クライアントとモジュールを挿入。 - 本番時は
dist/manifest.jsonからエントリ JS/CSS を解決しキャッシュ。
- 開発時は
src/server/store.ts- Zod で入力検証を行い、メモリ内の Todo リストを管理。
クライアント実装のポイント
src/client/todo/controller.tsxuseState,useEffect,useRefで TodoApp コンポーネントを構築。window.openai.callToolを介して Todo 追加・トグルを実行。openai:set_globalsイベントでサーバーからの最新状態に追従。
src/client/todo/main.tsx- 初期
structuredContentから Todo 配列を抽出してTodoAppに渡し、render()で#todo-rootにマウント。
- 初期
動作確認手順
bun run dev:serverを起動。- 別ターミナルで
bun run dev:clientを起動し、Vite の HMR を有効化。 bunx @modelcontextprotocol/inspector http://localhost:3000/mcpを実行し、todo-listツールを呼び出してウィジェット表示と操作を確認。
本番相当の挙動を確かめる場合は bunx vite build でバンドル後、NODE_ENV=production bun run start を実行して同様に検証してください。
補足情報
- SSR された HTML はシリアライズされた JSX 関数ではなくプレーンなマークアップを返すため、ChatGPT 上でもそのまま描画されます。
- Todo データはメモリ上で管理しているため、プロセス再起動で初期状態に戻ります。永続化が必要な場合は
InMemoryTodoStoreを差し替えてください。 PORT環境変数で待ち受けポートを変更できます (初期値 3000)。- ChatGPT Apps SDK に接続する際は、HTTPS の公開エンドポイント (例: Cloudflare Tunnel / ngrok) を用意し
/mcpを指定してください。
README fetched from the repository 7 days ago. The original is authoritative.