@firfi/voila-mcp
v0.1.7
Published
Voila MCP server for safe personal grocery search, cart, slots, and order-history workflows
Maintainers
Readme
@firfi/voila-mcp
Voila MCP server for safe personal grocery search, cart, slots, and order-history workflows. The server exposes small auditable tools and does not expose checkout or order placement.
Configuration
The server reads configuration from environment variables:
VOILA_AUTH_SESSION_PATH: path to an SDK session snapshot JSON file.VOILA_SESSION_WRITE_PATH: optional path for updated session snapshots. Defaults toVOILA_AUTH_SESSION_PATH.VOILA_GUEST=1: force guest-session behavior.MCP_TRANSPORT:stdioby default, orhttp.MCP_HTTP_HOST: HTTP bind host. Defaults to127.0.0.1.MCP_HTTP_PORT/PORT: HTTP port. Defaults to3000.MCP_HTTP_PATH: HTTP MCP path. Defaults to/mcp.
If a tool runs with a guest, expired, missing, or unreadable account session, the tool result includes authGuidance with the CLI command to run. The MCP server does not launch a browser; run the command, log in in Chromium, close the browser window to save, then retry the MCP request.
Client Example
{
"mcpServers": {
"voila": {
"command": "npx",
"args": ["-y", "@firfi/voila-mcp"],
"env": {
"VOILA_AUTH_SESSION_PATH": "/absolute/path/to/session.json"
}
}
}
}HTTP / Glama
HTTP transport is intended for registry inspection and deployments behind a trusted gateway:
MCP_TRANSPORT=http MCP_HTTP_HOST=0.0.0.0 PORT=8080 VOILA_GUEST=1 npx -y @firfi/voila-mcpVOILA_GUEST=1 lets Glama start the server and inspect tool definitions without a user browser session or account credentials. Do not expose HTTP with a real session file directly to the public internet; put authentication and access control in front of /mcp.
Tools
voila_check_session_healthvoila_get_active_shopping_contextvoila_get_slot_listingsvoila_reserve_slotvoila_search_productsvoila_get_category_productsvoila_get_discounted_productsvoila_get_completed_ordersvoila_get_order_detailsvoila_get_completed_order_itemsvoila_get_cartvoila_add_cart_itemsvoila_remove_cart_items
voila_get_active_shopping_context and voila_get_slot_listings are the preferred first steps for planning an order because product pricing and availability depend on delivery context. Product-first search remains available.
voila_reserve_slot mutates the active session and requires explicit confirmation flags from the caller.
voila_get_completed_orders reads completed orders with cursor pagination. It does not expose reorder, checkout, or order placement.
voila_get_order_details reads item-level details for one completed order, including received, substituted, missing, returned, and at-risk item groups when Voila returns them.
voila_get_completed_order_items aggregates received items across completed orders, optionally filtered by fromDate and toDate, so a client can answer questions such as what the user ordered last month.
The server does not expose checkout or order-placement tools.
