Fishbowl MCP Server

by jacksonedgecoai

264 downloads
Not rated
GitHub

About

We are using the code from githhub repo to code our MCP server

Details

Author
jacksonedgecoai
Downloads
264
Categories
Developer Tools

- Automatic authentication with Fishbowl API
- Simplified API access to Fishbowl functionality
- Support for parts, inventory, purchase orders, manufacture orders
- Memo management for purchase and manufacture orders
- Endpoints for vendors, units of measure, users, and products

Clone the repository, install dependencies (npm install), configure a .env file with Fishbowl credentials and API URL, then start with npm run dev. For production deployment, follow the Railway instructions: install the Railway CLI, login, set environment variables (e.g., FISHBOWL_API_URL, FISHBOWL_USERNAME, FISHBOWL_PASSWORD), and deploy with railway up.

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

1. Clone this repository:

   git clone https://your-repo-url/fishbowl-mcp-server.git
cd fishbowl-mcp-server

2. Install dependencies:

   npm install

3. Create a .env file based on the template:

   cp .env.template .env

4. Edit the .env file with your Fishbowl credentials and API URL.

5. Start the development server:

   npm run dev

Deploying to Railway

1. Create a Railway account at railway.app if you don't have one.

2. Install the Railway CLI:

   npm i -g @railway/cli

3. Login to Railway:

   railway login

4. Initialize your project:

   railway init

5. 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

6. Deploy your application:

   railway up

7. Open your deployed application:

   railway open

API Endpoints

Authentication

- POST /api/login - Log in to Fishbowl API
- POST /api/logout - Log out from Fishbowl API

Parts & Inventory

- GET /api/parts - Search parts
- GET /api/parts/inventory - Get part inventory
- GET /api/parts/:id/best-cost - Get best cost for a part
- POST /api/parts/:id/inventory/add - Add inventory for a part
- POST /api/parts/:id/inventory/cycle - Cycle inventory
- POST /api/parts/:id/inventory/scrap - Scrap inventory

Purchase Orders

- GET /api/purchase-orders - List purchase orders
- GET /api/purchase-orders/:id - Get purchase order by ID
- POST /api/purchase-orders - Create purchase order
- POST /api/purchase-orders/:id - Update purchase order
- POST /api/purchase-orders/:id/issue - Issue purchase order
- POST /api/purchase-orders/:id/unissue - Unissue purchase order
- POST /api/purchase-orders/:id/close-short - Close purchase order short
- POST /api/purchase-orders/:id/void - Void purchase order
- DELETE /api/purchase-orders/:id - Delete purchase order

Manufacture Orders

- GET /api/manufacture-orders - List manufacture orders
- GET /api/manufacture-orders/:id - Get manufacture order by ID
- POST /api/manufacture-orders - Create manufacture order
- POST /api/manufacture-orders/:id/issue - Issue manufacture order
- POST /api/manufacture-orders/:id/unissue - Unissue manufacture order
- POST /api/manufacture-orders/:id/close-short - Close manufacture order short
- DELETE /api/manufacture-orders/:id - Delete manufacture order

Memos

- GET /api/{type}/:id/memos - Get memos for a PO or MO
- GET /api/{type}/:id/memos/:memoId - Get specific memo
- POST /api/{type}/:id/memos - Create memo
- POST /api/{type}/:id/memos/:memoId - Update memo
- DELETE /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 product
- GET /api/uoms - List units of measure
- GET /api/vendors - List vendors
- GET /api/users - List users
- GET /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

1. 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

2. 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

3. 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.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.