Fishbowl MCP Server
by jacksonedgecoai
The Fishbowl MCP Server is a middleware server designed to integrate with the Fishbowl Inventory API. It provides a RESTful API for simplified access to Fishbowl functionality, handling authentication and token management.
Last updated: N/A
Fishbowl MCP Server
A middleware server for integrating with Fishbowl Inventory API.
Overview
This MCP (Message Control Program) server provides a RESTful API that communicates with your Fishbowl Inventory software. It handles authentication, token management, and proxies all requests to the Fishbowl API.
Features
- Automatic authentication with Fishbowl API
- Simplified API access to Fishbowl functionality
- Support for parts, inventory, purchase orders, and manufacture orders
- Memo management for POs and MOs
- Vendor, UOM, user, and product endpoints
Prerequisites
- Node.js 18 or higher
- Fishbowl Inventory software with API access
- Access credentials for Fishbowl
Local Development Setup
-
Clone this repository:
git clone https://your-repo-url/fishbowl-mcp-server.git cd fishbowl-mcp-server -
Install dependencies:
npm install -
Create a
.envfile based on the template:cp .env.template .env -
Edit the
.envfile with your Fishbowl credentials and API URL. -
Start the development server:
npm run dev
Deploying to Railway
-
Create a Railway account at railway.app if you don't have one.
-
Install the Railway CLI:
npm i -g @railway/cli -
Login to Railway:
railway login -
Initialize your project:
railway init -
Add your environment variables:
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 -
Deploy your application:
railway up -
Open your deployed application:
railway open
API Endpoints
Authentication
POST /api/login- Log in to Fishbowl APIPOST /api/logout- Log out from Fishbowl API
Parts & Inventory
GET /api/parts- Search partsGET /api/parts/inventory- Get part inventoryGET /api/parts/:id/best-cost- Get best cost for a partPOST /api/parts/:id/inventory/add- Add inventory for a partPOST /api/parts/:id/inventory/cycle- Cycle inventoryPOST /api/parts/:id/inventory/scrap- Scrap inventory
Purchase Orders
GET /api/purchase-orders- List purchase ordersGET /api/purchase-orders/:id- Get purchase order by IDPOST /api/purchase-orders- Create purchase orderPOST /api/purchase-orders/:id- Update purchase orderPOST /api/purchase-orders/:id/issue- Issue purchase orderPOST /api/purchase-orders/:id/unissue- Unissue purchase orderPOST /api/purchase-orders/:id/close-short- Close purchase order shortPOST /api/purchase-orders/:id/void- Void purchase orderDELETE /api/purchase-orders/:id- Delete purchase order
Manufacture Orders
GET /api/manufacture-orders- List manufacture ordersGET /api/manufacture-orders/:id- Get manufacture order by IDPOST /api/manufacture-orders- Create manufacture orderPOST /api/manufacture-orders/:id/issue- Issue manufacture orderPOST /api/manufacture-orders/:id/unissue- Unissue manufacture orderPOST /api/manufacture-orders/:id/close-short- Close manufacture order shortDELETE /api/manufacture-orders/:id- Delete manufacture order
Memos
GET /api/{type}/:id/memos- Get memos for a PO or MOGET /api/{type}/:id/memos/:memoId- Get specific memoPOST /api/{type}/:id/memos- Create memoPOST /api/{type}/:id/memos/:memoId- Update memoDELETE /api/{type}/:id/memos/:memoId- Delete memo
Where {type} can be purchase-orders or manufacture-orders
Other Endpoints
GET /api/products/:id/best-price- Get best price for a productGET /api/uoms- List units of measureGET /api/vendors- List vendorsGET /api/users- List usersGET /api/health- Check server health and authentication status
Security Considerations
- Store your Fishbowl credentials securely using environment variables
- Use HTTPS in production to encrypt data in transit
- The server handles authentication tokens automatically, but be aware that they expire
- Consider implementing additional authentication for your MCP server in production
Troubleshooting
Common Issues
-
Authentication failures:
- Verify your Fishbowl credentials in the .env file
- Ensure the Fishbowl API is enabled and accessible
- Check if your Fishbowl user has appropriate permissions
-
Connection errors:
- Verify the FISHBOWL_API_URL is correct
- Ensure your Fishbowl server is running and accessible from the MCP server
- Check for any firewalls or network restrictions
-
Deployment issues on Railway:
- Verify all environment variables are set correctly
- Check the logs for any errors:
railway logs - Ensure your Railway project has sufficient resources
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the ISC License.