Fishbowl MCP Server について
Fishbowl MCP Serverは、Fishbowl InventoryとAPI利用側をつなぐミドルウェアです。認証を管理し、在庫、注文、メモなどの機能を提供します。
主な機能
- 01Fishbowl APIの自動認証
- 02部品と在庫の操作
- 03発注書と製造指図の管理
- 04発注書・製造指図のメモ管理
- 05ベンダー、単位、ユーザー、製品のエンドポイント
活用シーン
- 01部品の検索と在庫確認
- 02在庫の追加、棚卸し、廃棄
- 03発注書の作成と管理
- 04製造指図の作成と管理
MCP 対応
MCP サーバーとしてFishbowl APIへのリクエストを中継し、Fishbowlの操作をMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Fishbowl MCP サーバー
Fishbowl Inventory API と連携するためのミドルウェアサーバーです。
概要
この MCP(Message Control Program)サーバーは、Fishbowl Inventory ソフトウェアと通信する RESTful API を提供します。認証やトークン管理を行い、すべてのリクエストを Fishbowl API にプロキシします。
機能
- Fishbowl API への自動認証
- Fishbowl の機能に簡単にアクセスできる API
- 部品、在庫、発注書、製造指図書に対応
- 発注書と製造指図書のメモ管理
- ベンダー、UOM、ユーザー、製品の各エンドポイント
前提条件
- Node.js 18 以上
- API にアクセスできる Fishbowl Inventory ソフトウェア
- Fishbowl のアクセス認証情報
ローカル開発環境のセットアップ
-
このリポジトリをクローンします。
git clone https://your-repo-url/fishbowl-mcp-server.git cd fishbowl-mcp-server -
依存関係をインストールします。
npm install -
テンプレートを基に
.envファイルを作成します。cp .env.template .env -
.envファイルを編集し、Fishbowl の認証情報と API URL を設定します。 -
開発サーバーを起動します。
npm run dev
Railway へのデプロイ
-
アカウントをお持ちでない場合は、railway.app で Railway アカウントを作成します。
-
Railway CLI をインストールします。
npm i -g @railway/cli -
Railway にログインします。
railway login -
プロジェクトを初期化します。
railway init -
環境変数を追加します。
railway variables set FISHBOWL_API_URL=http://your-fishbowl-server-address:port railway variables set FISHBOWL_APP_NAME="MCP Server" railway variables set FISHBOWL_APP_ID=101 railway variables set FISHBOWL_USERNAME=your-username railway variables set FISHBOWL_PASSWORD=your-password -
アプリケーションをデプロイします。
railway up -
デプロイしたアプリケーションを開きます。
railway open
API エンドポイント
認証
POST /api/login- Fishbowl API にログインPOST /api/logout- Fishbowl API からログアウト
部品と在庫
GET /api/parts- 部品を検索GET /api/parts/inventory- 部品の在庫を取得GET /api/parts/:id/best-cost- 部品の最適な原価を取得POST /api/parts/:id/inventory/add- 部品の在庫を追加POST /api/parts/:id/inventory/cycle- 在庫を棚卸しPOST /api/parts/:id/inventory/scrap- 在庫を廃棄
発注書
GET /api/purchase-orders- 発注書の一覧を取得GET /api/purchase-orders/:id- ID で発注書を取得POST /api/purchase-orders- 発注書を作成POST /api/purchase-orders/:id- 発注書を更新POST /api/purchase-orders/:id/issue- 発注書を発行POST /api/purchase-orders/:id/unissue- 発注書の発行を取り消しPOST /api/purchase-orders/:id/close-short- 発注書を数量不足で完了POST /api/purchase-orders/:id/void- 発注書を無効化DELETE /api/purchase-orders/:id- 発注書を削除
製造指図書
GET /api/manufacture-orders- 製造指図書の一覧を取得GET /api/manufacture-orders/:id- ID で製造指図書を取得POST /api/manufacture-orders- 製造指図書を作成POST /api/manufacture-orders/:id/issue- 製造指図書を発行POST /api/manufacture-orders/:id/unissue- 製造指図書の発行を取り消しPOST /api/manufacture-orders/:id/close-short- 製造指図書を数量不足で完了DELETE /api/manufacture-orders/:id- 製造指図書を削除
メモ
GET /api/{type}/:id/memos- 発注書または製造指図書のメモを取得GET /api/{type}/:id/memos/:memoId- 指定したメモを取得POST /api/{type}/:id/memos- メモを作成POST /api/{type}/:id/memos/:memoId- メモを更新DELETE /api/{type}/:id/memos/:memoId- メモを削除
{type} には purchase-orders または manufacture-orders を指定できます。
その他のエンドポイント
GET /api/products/:id/best-price- 製品の最適な価格を取得GET /api/uoms- 計量単位の一覧を取得GET /api/vendors- ベンダーの一覧を取得GET /api/users- ユーザーの一覧を取得GET /api/health- サーバーの稼働状況と認証ステータスを確認
セキュリティに関する考慮事項
- Fishbowl の認証情報は、環境変数を使用して安全に保管してください
- 本番環境では HTTPS を使用して、転送中のデータを暗号化してください
- サーバーは認証トークンを自動的に処理しますが、トークンには有効期限があることに注意してください
- 本番環境で MCP サーバーに追加の認証を実装することを検討してください
トラブルシューティング
よくある問題
-
認証の失敗:
- .env ファイルの Fishbowl 認証情報を確認してください
- Fishbowl API が有効で、アクセス可能であることを確認してください
- Fishbowl ユーザーに適切な権限があるか確認してください
-
接続エラー:
- FISHBOWL_API_URL が正しいことを確認してください
- Fishbowl サーバーが稼働しており、MCP サーバーからアクセス可能であることを確認してください
- ファイアウォールやネットワークの制限がないか確認してください
-
Railway でのデプロイの問題:
- すべての環境変数が正しく設定されていることを確認してください
- エラーがないかログを確認してください:
railway logs - Railway プロジェクトに十分なリソースがあることを確認してください
貢献
貢献を歓迎します。お気軽にプルリクエストを送信してください。
ライセンス
このプロジェクトは ISC ライセンスの下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。