MCP App Store
by KeenEthics

Overview

PharmacyOS is the retail-management system a Bangladeshi pharmacy runs its counter on — point of sale, inventory by batch and expiry, prescriptions, suppliers, and NBR-compliant receipts. This connector gives the owner and staff of one pharmacy a plain-language way into their own live records. Ask what sold last month and get the real figure, with the count, discounts, VAT and total. Ask what is running out and get the items at or below their reorder level, with a suggested quantity to cover the next fortnight. Ask who owes money and get the khata book, biggest debt first, with each customer's remaining credit. Ask what money is stuck on the shelf and get the stock that has not sold in ninety days, valued at cost. Ask about one receipt by the number printed on it and get every line, the cashier, the discount, the VAT and the customer. Ask what you actually made and get gross profit and the month's operating expenses side by side. With the owner's opt-in it also writes: create a medicine, change a price or a reorder level, receive a batch with its expiry, log rent or a salary, add a supplier, raise a draft purchase order, record a customer's payment against what they already owe, and save a photographed supplier invoice as a review session the owner finishes in the app. Everything is scoped to the single pharmacy the signed-in user belongs to. There is no parameter on any tool that could reach another business's data, and no way to ask for one. It is a business tool, not a clinical one. There is no drug monograph, indication, dose, interaction or therapeutic-equivalence information in any response, and no tool that provides any. Clinical questions belong with the pharmacist. Amounts are in Bangladeshi Taka, held as integer paisa. Dates are Asia/Dhaka. Bangla and English both work.

Tools

close_shift

ChatGPT
Ends a branch's open cash-drawer session against the cash counted out and records the variance. A closed drawer cannot be reopened, and a count off by more than Tk 1 is refused — that close needs a manager.

create_invoice_scan_session

ChatGPT
Writes a supplier-invoice REVIEW session from lines an assistant read off the invoice photo, and returns each line’s review-grid verdict plus a deep link into that grid. It creates no goods receipt and moves no stock, and no copy of the photo is retained.

create_product

ChatGPT
Writes one new product row in the business's own catalog. Prices are in paisa (minor units).

create_product_image_upload

ChatGPT
Mints one single-use browser link, valid 30 minutes, that attaches a single image of up to 5 MB as a product’s main photo. An earlier photo from this same flow is deleted; one the owner added in the app moves to position 2 and is kept. Nothing is written until that file arrives.

create_purchase_order

ChatGPT
Writes a DRAFT purchase order and its lines. It is never transmitted to the supplier and commits no money; sending stays behind maker-checker approval.

create_sale

ChatGPT
Writes one sale: an invoice with a receipt number, the stock decrement, and the payment. The branch, the stock lot, the price and the change are resolved by the business. Refunding it is not on this server; voiding it within 24 hours is (void_sale).

create_supplier

ChatGPT
Writes one new supplier record, including payment terms and any opening balance.

get_cash_position

ChatGPT
Money actually received over a date range, split by payment method — the daily-close figure.

get_cashier_performance

ChatGPT
Per-cashier sale count, revenue, discount given and voids over a date range.

get_customer_dues

ChatGPT
The receivables board: customers who owe the shop, biggest first, with the exact shop-wide total owed. With q, the matching customers and what each owes.

get_dead_stock

ChatGPT
Products with no sales in the lookback window, and the capital tied up in each one.

get_expense_summary

ChatGPT
Operating spend over a date range, totalled and broken down by expense category.

get_inventory_valuation

ChatGPT
Current stock value at cost and at retail, with per-category subtotals and a shop-wide total.

get_inventory_velocity

ChatGPT
Sell-through rate per product: units sold per day, and estimated days of stock remaining at that rate.

get_low_stock_items

ChatGPT
Products at or below their reorder level, with current stock on hand and the reorder point.

get_product_image_upload

ChatGPT
The most recent photo-upload link’s state for one product — awaiting_upload, uploaded, failed (sent but not stored, so nothing changed), expired or never_requested — plus the shop’s own photos in order with their photo_id, and whether it shows a shared-catalog picture instead.

get_profit_summary

ChatGPT
Gross profit (revenue minus cost of goods sold) over a date range. With a group_by dimension it returns the same figures broken down by that dimension instead of a single total.

get_reorder_suggestions

ChatGPT
Suggested purchase quantities per product, derived from recent sales velocity, current stock and reorder level.

get_sale

ChatGPT
One invoice in full: header totals, payment method and every line item on it.

get_sales_summary

ChatGPT
Completed-sale count and revenue totals (subtotal, discount, VAT, total) for a date range, for the signed-in business's own data only. Voided, refunded and pending sales are excluded.

get_sales_trend

ChatGPT
Revenue and sale count bucketed over time (by day, week or month) across a date range.

get_shift_status

ChatGPT
Whether a cash drawer (POS shift) is open at a branch, how long, who opened it, and the cash the close-out would expect in it: float + cash sales + khata + deposits − approved cash drops − expenses paid from the till. A drawer open for days was abandoned, not worked.

get_shop_profile

ChatGPT
The signed-in business's own storefront details: name, address, working hours, contact channels, BIN/TIN, storefront URL, theme and plan.

get_suppliers

ChatGPT
The supplier directory, and — for owner, admin, regional-manager and pharmacist callers — accounts payable per supplier, shop-wide totals and aging buckets; other roles receive the directory alone. Also the source of a supplier_id for a purchase order.

get_top_products

ChatGPT
Best-selling items over a date range, ranked by quantity sold or by revenue, capped at 50 rows.

get_wastage

ChatGPT
Stock written off over the last N days (max 366), in units: totals by kind (damaged, expired, and other wastage such as spoiled, stolen or lost), entry counts, and the most-wasted products. No money value. Items written off by weight add entries but no units.

list_products

ChatGPT
Products in the business's own catalog, optionally narrowed by free-text q, barcode or sku, with the matching total count.

list_sales

ChatGPT
Recent sales newest-first, header rows only, cursor-paginated, with voided ones flagged. get_sale with a sale_id gives one sale line by line.

log_expense

ChatGPT
Writes one operating-expense row: amount in paisa, category, date and an optional note.

logout

ChatGPT
Revokes EVERY assistant connection the signed-in operator holds to this business, not only the calling one: any other ChatGPT, Claude or connected app they signed in from stops too, on every brand. Other operators and counter devices are unaffected.

lookup_customer

ChatGPT
One customer's profile, khata (on-account) balance, loyalty position, lifetime spend and recent invoices.

open_shift

ChatGPT
Starts a branch's cash-drawer session with the cash counted into it; every later variance is measured against that float. One drawer per branch: a branch with one already open is refused.

receive_stock

ChatGPT
Writes ONE new pooled stock batch: quantity, the batch number and expiry date (both required), and an optional unit cost (default 0). The batch is sellable the moment this returns — no draft, no review grid and no manager PIN, unlike the counter's own multi-line supplier intake.

receive_unit

ChatGPT
Writes one serialized unit into stock, identified by its IMEI or serial number.

record_customer_payment

ChatGPT
Records money a customer handed over, against their khata (on-account) balance, and reduces what they owe. It moves no money at any payment gateway. Paying past zero is refused unless allow_advance is set. Only cash completes; other tenders need a reference it cannot take.

remove_product_photo

ChatGPT
Removes one photo from a product and permanently deletes its file, addressed by photo_id. With no photos left, the product shows its shared-catalog picture again, if it has one.

reorder_product_photos

ChatGPT
Rewrites the order of a product's photos, main photo first. The order lists every current photo_id exactly once; a gallery edited elsewhere meanwhile is reported, not overwritten.

search_help

ChatGPT
The published in-app user manual for this business's vertical — how the app works and how to do things in it. Product documentation only: no sales, stock, customer or staff data. A slug returns one article in full, in English and Bangla; otherwise matching titles.

set_primary_product_photo

ChatGPT
Makes one of a product's existing photos the main one by moving it to the front of the gallery, addressed by the photo_id the status tool lists. No file is uploaded or deleted.

update_product

ChatGPT
Overwrites editable fields on an EXISTING product: name, selling price, missing cost, storage location, reorder level, discontinued status, storefront listing, barcode, category, or the printed MRP reference.

void_sale

ChatGPT
Cancels one sale within 24 hours of it being rung up: the stock returns to its branch, the payments are reversed and any amount on a khata is credited back. The invoice number is kept. Older sales need a refund, which is not on this server.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps