mymarketaccount.net Tally MCP Server
Lightweight Node MCP server for querying Tally product/category data used by mymarketaccount.net.
It uses the same endpoints seen in the web app:
GET /cartapi/cart/categoriesGET /cartapi/cart/products
and sends Authorization: Bearer <token>.
Prerequisites
- Node.js 18+
- A valid Tally bearer token (not the gateway/Auth0 token)
- Your
locationIdandaccountId
Install
npm install
Run
npm start
Optional environment variables
TALLY_TOKENdefault bearer tokenTALLY_LOCATION_IDdefault4dfd336941716947dba20acffc45660dTALLY_ACCOUNT_IDdefault accountTALLY_PAGE_SIZEdefault page size for product paging (default100)TALLY_BASE_URLdefaulthttps://tally.prod.readytouchpos.comTALLY_API_KEYdefault3C9DEDE2-EC3E-43E3-9C20-E591ED341127
MCP tools
set_tally_token(token)list_categories(locationId?, token?)list_products(locationId?, accountId?, token?, category?, search?, minPrice?, maxPrice?, sortBy?, limit?, pageSize?, maxPages?, maxRecords?)ask_products(question, locationId?, accountId?, token?, category?, search?, minPrice?, maxPrice?, sortBy?, limit?, pageSize?, maxPages?, maxRecords?)
ask_products supports lightweight question inference for phrases like:
under $3over 5between 2 and 4top 10cheapest,best deal,average,how many
Example MCP client config
{
"mcpServers": {
"tally": {
"command": "node",
"args": ["/home/kurtk/mtb-hq-snack-kiosk-mcp/src/index.js"],
"env": {
"TALLY_LOCATION_ID": "4dfd336941716947dba20acffc45660d",
"TALLY_ACCOUNT_ID": "<account-id>"
}
}
}
}
[mcp_servers.tally]
command = "node"
args = ["<path to repo>/src/index.js"]
[mcpServers.tally.env]
TALLY_LOCATION_ID = "4dfd336941716947dba20acffc45660d"
TALLY_ACCOUNT_ID = "<account-id>"
Then call:
set_tally_tokenwith your current token.ask_productsorlist_productsfor product/price questions.
Notes
- Token minting (
/tallyapi/auth/registerand/tallyapi/auth/login) is intentionally not implemented here; this server expects an already valid token. - Token set via
set_tally_tokenis held in process memory for the running MCP session.












