About Fishbowl MCP Server
Fishbowl MCP Server is middleware for connecting Fishbowl Inventory to API consumers. It manages authentication and provides access to inventory, orders, memos, and related endpoints.
Key features
- 01Automatic Fishbowl API authentication
- 02Parts and inventory operations
- 03Purchase and manufacture order management
- 04PO and MO memo management
- 05Vendor, UOM, user, and product endpoints
Use cases
- 01Search parts and check inventory
- 02Add, cycle, or scrap inventory
- 03Create and manage purchase orders
- 04Create and manage manufacture orders
MCP support
It acts as an MCP server that proxies requests to the Fishbowl API and exposes Fishbowl operations to MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEFishbowl 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.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.