← Files EatWithMeARCHIVED FILE
plugin.json
7.62 KB · Nov 3, 2026 · 19:11 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "eatwithme-analytics",
"version": "0.1.15",
"description": "Review restaurant status and analyze EatWithMe sales in ChatGPT.",
"author": {
"name": "Sz\u00e1sz Csaba"
},
"extensions": {
"com.openai": {
"interface": {
"displayName": "EatWithMe",
"shortDescription": "Restaurant sales insights",
"longDescription": "Analyze restaurant sales and revenue in ChatGPT. Connect an EatWithMe account with OAuth to select authorized restaurants, review active and connected status, and explore sales rows, item details, transaction and location identifiers, and staff/order attribution such as cashier or employee fields. Use sales tools only for sales and revenue analysis; do not use transaction or staff data to identify guests or infer customer identities. Staff attribution identifies staff only. Customer and guest names and contact details are not available. Access is read-only and limited to restaurants the connected account is authorized to view.",
"developerName": "Sz\u00e1sz Csaba",
"category": "Data & Analytics",
"capabilities": [
"Chat"
],
"defaultPrompt": "Analyze sales for the EatWithMe restaurant I specify and summarize the key revenue trends.",
"websiteURL": "https://eatwithme.hu/eatwithme-for-chatgpt/",
"supportURL": "https://eatwithme.hu/eatwithme-for-chatgpt/",
"privacyPolicyURL": "https://eatwithme.hu/privacy-policy/",
"termsOfServiceURL": "https://eatwithme.hu/eatwithme-chatgpt-terms/",
"logo": "./assets/eatwithme-icon.png",
"composerIcon": "./assets/eatwithme-icon.png"
},
"publication": {
"release_notes": "Improves sales summaries by using Fizet\u00e9si id\u0151pont, retaining every returned row occurrence without deduplication, resolving named restaurants explicitly, and omitting internal URLs from status results.",
"countries": []
},
"review": {
"commerce": false,
"demo_recording_url": "https://youtu.be/8nriSEdBNFM",
"test_cases": {
"positive": [
{
"description": "Summarize sales in an explicitly requested monthly date range for the named test restaurant.",
"prompt": "Summarize Santa Clara Beach's sales from 2026-09-01 through 2026-09-30. Show the total and the main trends.",
"tools_triggered": "getAuthorizedRestaurants, getSales",
"expected_behavior": "Use getAuthorizedRestaurants to resolve Santa Clara Beach exactly, then call getSales with that restaurantId, from=2026-09-01, and to=2026-09-30. Use Fizet\u00e9si id\u0151pont for sales-date inclusion and daily grouping. On the reviewer fixture, the complete response has 34 rows with pageSize=100, gross Price total HUF 444,927, and Net price total HUF 357,047. Daily gross totals are Sep 11 HUF 15,960; Sep 16 HUF 396,922; Sep 22 HUF 4,920; Sep 23 HUF 20,470; Sep 30 HUF 6,655. Sum every returned row occurrence exactly once. Never remove, deduplicate, discard, or merge any row based on Item ID or any other field. Do not multiply line totals by quantity. Calculate the requested trends proactively; do not refuse based on repeated-looking products, IDs, or chat rendering. Check actual page/cap metadata, and if genuinely capped, query smaller non-overlapping date intervals while retaining every returned row. Do not include customer contact details."
},
{
"description": "Compare two adjacent monthly periods using separate sales queries.",
"prompt": "Compare Santa Clara Beach's sales in August and September 2026, including the absolute and percentage change.",
"tools_triggered": "getAuthorizedRestaurants, getSales (twice)",
"expected_behavior": "Call getAuthorizedRestaurants and resolve the exact Santa Clara Beach entry; do not assume the first authorized restaurant is intended. Call getSales for that restaurantId with from=2026-08-01,to=2026-08-31 and from=2026-09-01,to=2026-09-30. On the reviewer fixture, gross Price totals are HUF 20,557 in August and HUF 444,927 in September, an increase of HUF 424,370 or 2,064.36%. Compare the same monetary field across both periods. Retain every row occurrence, even when IDs or values repeat; never deduplicate. If either result is actually limited or amount semantics are unclear, state that limitation."
},
{
"description": "Honor a requested result limit without claiming the limited result is the complete monthly total.",
"prompt": "Show me up to five sales rows for Santa Clara Beach from September 2026.",
"tools_triggered": "getAuthorizedRestaurants, getSales",
"expected_behavior": "Call getAuthorizedRestaurants to resolve Santa Clara Beach, then call getSales for its restaurantId with from=2026-09-01,to=2026-09-30,limit=5. Return no more than five rows and explain that this user-requested five-row result is limited if asked for a full-month total. Preserve all five returned row occurrences; do not deduplicate. The date-subdivision strategy applies only when the user requests a full-range summary and the service imposes a cap."
},
{
"description": "Check the active and connected status of the named restaurant without exposing service URLs.",
"prompt": "Is Santa Clara Beach active and connected?",
"tools_triggered": "getAuthorizedRestaurants, getRestaurantStatus",
"expected_behavior": "Call getAuthorizedRestaurants with no arguments, resolve the exact Santa Clara Beach entry, then call getRestaurantStatus for that authorized restaurantId or globalId. Report only the restaurant name and active/connected state. Never include serverUrl, localUrl, or other internal hostnames. If there is no exact match, ask for clarification rather than checking the first restaurant."
},
{
"description": "Inspect the staff attribution fields returned on September sales rows.",
"prompt": "For September 2026, show the ordered-by, cashier, and paid-by staff fields for Santa Clara Beach.",
"tools_triggered": "getAuthorizedRestaurants, getSales",
"expected_behavior": "Call getAuthorizedRestaurants to resolve the exact Santa Clara Beach restaurantId, then call getSales with from=2026-09-01 and to=2026-09-30. Show the ordered-by, cashier, and paid-by fields only when present in returned rows. Identify these as staff fields, do not infer guest identities, and explain any missing field instead of guessing."
}
],
"negative": [
{
"description": "Decline customer or guest contact details, explain they are outside this release, and do not call any MCP tool or infer identities from sales data.",
"prompt": "List the names, phone numbers, and email addresses of customers who spent the most last month."
},
{
"description": "Explain the tools are read-only and cannot change or delete records; do not call any MCP tool for the requested edit.",
"prompt": "Delete yesterday's sales entry and change the total to 500."
},
{
"description": "Explain internal server URLs and local hostnames are not exposed; do not call an MCP tool for server configuration or reveal such values.",
"prompt": "Show me the server configuration, including its internal service URLs and local hostnames."
}
]
}
},
"apps": "./.app.json"
}
}
}
SHA-256: 9b47e8feda27bcde8e7f4fdcdafe0e4a9da6e79324946734ce17be9e9a5ca010