---
name: kenshoku-hub-listing
description: 健食ビジネスハブ（https://kenshoku-hub.com）に載っている自社の掲載（会社情報・電話番号・公式サイト・紹介文・製品・製品の成分・OEM の特徴と事例）を読み、直す。担当者が「健食ハブの掲載を直して」「製品を足して」「取扱原料を見せて」「OEM事例を足して」と頼んだときに使う。有料プランの会社だけが使える。
---

# 健食ビジネスハブの掲載を読む・直す

健康食品・サプリメント原料の業界サイト「健食ビジネスハブ」に載っている、担当者の会社の掲載を読み書きする。
書き込みは会社管理画面の保存と同じ処理で**すぐ公開ページに反映**され、会社管理画面「AI連携」の「AI が行った変更」に残る。

## つなぎ方

- **MCP**（推奨）: 接続先 `https://kenshoku-hub.com/mcp`（Streamable HTTP）。
  - claude.ai・ChatGPT はカスタムコネクタにこの URL を登録し、開いたログイン画面で担当者がログインして会社を選ぶ（OAuth）。
  - Claude Code・Cursor は、担当者が会社管理画面「AI連携」で発行した個人トークンを `Authorization: Bearer <トークン>` で渡す。
    例: `claude mcp add --transport http kenshoku-hub https://kenshoku-hub.com/mcp --header "Authorization: Bearer <トークン>"`
- **REST**: 起点 `https://kenshoku-hub.com/api/v1/`。同じトークンを `Authorization: Bearer` で渡す。
  仕様は `https://kenshoku-hub.com/api/v1/openapi.json`。会社はトークンから決まるので、パスは `companies/me/…`。

## 守ること

1. **文章を書く・直す前に `get_writing_rules`（REST は `GET /api/v1/writing-rules`）を読む。** 効能・効果、最上級・
   比較優位の語（業界No.1・日本一 等）、本文中の URL・メールアドレス・電話番号、字数超えは保存されず、`errors` に
   理由と直し方が返る。言い換えで押し通さず、原料・製法・形状・実績の事実に書き直す。
2. 「届出」と書くときは初出で「機能性表示食品の届出」と書く。受託製造会社は「OEM」と書く。
3. 製品・OEM事例の削除はできない（`set_product_status` で `hidden`、`set_oem_case_status` で `unpublished` まで）。消すのは担当者が会社管理画面で行う。
4. 確認待ち（`ai_draft`。貴社サイトの巡回で見つけた候補）の製品は直せない。反映するかは担当者が管理画面で決める
   （`list_pending` が承認する画面の URL を返す）。
5. 書き込みの上限: 電話番号・公式サイトは合わせて1日10件、文章・製品・OEM の変更は合わせて1日20件（直近24時間）。
   呼び出しは1分60回まで。値が変わらない書き込みは数えない。
6. 頼まれていない変更をしない。まとめて直すときは、変える前に担当者へ変更の一覧を見せる。

## 操作

| MCP ツール | REST | すること |
|---|---|---|
| `get_company_profile` | `GET /api/v1/companies/me/profile` | 会社名・所在地・公式サイト・紹介文・業態ごとの事業内容・電話番号 |
| `list_products` | `GET /api/v1/companies/me/products?status=` | 製品の一覧（`published`・`ai_draft`・`hidden` で絞れる） |
| `get_product` | `GET /api/v1/companies/me/products/{product_id}` | 製品1件の全項目と更新の知らせ |
| `list_ingredients` | `GET /api/v1/companies/me/ingredients` | 取扱原料（製品の成分から決まる） |
| `list_pending` | `GET /api/v1/companies/me/pending` | 担当者の確認待ち |
| `get_writing_rules` | `GET /api/v1/writing-rules` | 書き方の決まりと通る例・通らない例 |
| `get_oem_profile` | `GET /api/v1/companies/me/oem` | OEM の特徴（取得認証・対応剤形・最小ロット・見出し文）と選べる値 |
| `list_oem_cases` | `GET /api/v1/companies/me/oem-cases` | OEM事例の一覧と各欄の選べる値 |
| `get_oem_case` | `GET /api/v1/companies/me/oem-cases/{case_id}` | OEM事例1件の全項目 |
| `update_contact_phones` | `PUT /api/v1/companies/me/phones` | 電話番号（代表・原料サプライヤー窓口・OEM窓口）。空文字で消す |
| `set_website` | `PUT /api/v1/companies/me/website` | 公式サイトの URL（巡回先も変わる） |
| `update_profile_text` | `PUT /api/v1/companies/me/texts/{field}` | 会社の紹介文（`company_description`）・業態の事業内容（`role_ingredient`・`role_oem`。空文字で自動生成の文に戻る） |
| `create_product` | `POST /api/v1/companies/me/products` | 製品を足して公開する（名前・成分・見出し文・詳細情報） |
| `update_product` | `PATCH /api/v1/companies/me/products/{product_id}` | 製品の名前・見出し文・詳細情報・属性（渡した欄だけ変わる） |
| `set_product_status` | `PUT /api/v1/companies/me/products/{product_id}/status` | 公開（`published`）・非公開（`hidden`） |
| `set_ingredients` | `PATCH /api/v1/companies/me/products/{product_id}/ingredients` | 製品の成分を足す・外す（成分名か成分コード） |
| `update_oem_features` | `PATCH /api/v1/companies/me/oem` | OEM の特徴（渡した欄だけ変わる。配列は最終状態の全部を渡す） |
| `create_oem_case` | `POST /api/v1/companies/me/oem-cases` | OEM事例を足して公開する（題名・概要・剤形は必須。1社20件まで） |
| `update_oem_case` | `PATCH /api/v1/companies/me/oem-cases/{case_id}` | OEM事例を直す（渡した欄だけ変わる） |
| `set_oem_case_status` | `PUT /api/v1/companies/me/oem-cases/{case_id}/status` | OEM事例の公開（`published`）・非公開（`unpublished`） |

成分は名前か成分コード（`ING…`）で渡す。OEM の操作は OEM の業態か機能性表示食品の届出の製造実績がある会社だけ使える。成分マスタに無い名前は保存されず、近い候補が `errors[].hint` に返る。

## 戻り値

MCP・REST とも同じ形。REST は `ok=false` のとき `errors[0].reason` で status が決まる（`not_found`=404・
`forbidden`=403・それ以外=422）。認証の失敗は 401、無料プラン・上限は 403・429（トライアルはライトと同じく使える）。
本文の型・必須欄の誤り（数値の欄に文字列 等）は処理の前に弾かれ、FastAPI 標準の 422（`detail` の一覧）で返る。

```json
{"ok": true, "message": "人が読める1〜2文", "data": {}, "errors": [{"field": "", "reason": "", "hint": "直し方"}], "next": "担当者が次にする操作と URL"}
```

## 毎日・毎週の実行

健食ビジネスハブの側に予約の仕組みは無い。決まった時刻に回すときは、接続している AI の予約機能（Claude の
スケジュールタスク、ChatGPT のタスク等）か、自社のスクリプトの定期実行から呼ぶ。例:「毎週月曜に確認待ちの製品を
一覧にして知らせる」。
