GrabFood Partner MCP Server for CrewAI 12 tools — connect in under 2 minutes
Connect your CrewAI agents to GrabFood Partner through Vinkius, pass the Edge URL in the `mcps` parameter and every GrabFood Partner tool is auto-discovered at runtime. No credentials to manage, no infrastructure to maintain.
ASK AI ABOUT THIS MCP SERVER
Vinkius supports streamable HTTP and SSE.
from crewai import Agent, Task, Crew
agent = Agent(
role="GrabFood Partner Specialist",
goal="Help users interact with GrabFood Partner effectively",
backstory=(
"You are an expert at leveraging GrabFood Partner tools "
"for automation and data analysis."
),
# Your Vinkius token. get it at cloud.vinkius.com
mcps=["https://edge.vinkius.com/[YOUR_TOKEN_HERE]/mcp"],
)
task = Task(
description=(
"Explore all available tools in GrabFood Partner "
"and summarize their capabilities."
),
agent=agent,
expected_output=(
"A detailed summary of 12 available tools "
"and what they can do."
),
)
crew = Crew(agents=[agent], tasks=[task])
result = crew.kickoff()
print(result)
* Every MCP server runs on Vinkius-managed infrastructure inside AWS - a purpose-built runtime with per-request V8 isolates, Ed25519 signed audit chains, and sub-40ms cold starts optimized for native MCP execution. See our infrastructure
About GrabFood Partner MCP Server
Connect your GrabFood Partner account to any AI agent and take full control of your restaurant delivery operations through natural conversation.
When paired with CrewAI, GrabFood Partner becomes a first-class tool in your multi-agent workflows. Each agent in the crew can call GrabFood Partner tools autonomously, one agent queries data, another analyzes results, a third compiles reports, all orchestrated through Vinkius with zero configuration overhead.
What you can do
- Order Management — List all incoming orders, accept or reject them, cancel when necessary, and mark orders as ready for pickup
- Order Lifecycle Control — Check if orders can be cancelled, update estimated ready times, and manage delivery states
- Menu Management — Update your entire menu or perform targeted batch updates to specific items, prices, and availability
- Store Operations — Check your store's real-time status, view operating hours, and pause/unpause your store instantly
- Marketing Campaigns — List existing campaigns and create new promotional campaigns to boost visibility and orders
The GrabFood Partner MCP Server exposes 12 tools through the Vinkius. Connect it to CrewAI in under two minutes — no API keys to rotate, no infrastructure to provision, no vendor lock-in. Your configuration, your data, your control.
How to Connect GrabFood Partner to CrewAI via MCP
Follow these steps to integrate the GrabFood Partner MCP Server with CrewAI.
Install CrewAI
Run pip install crewai
Replace the token
Replace [YOUR_TOKEN_HERE] with your Vinkius token from cloud.vinkius.com
Customize the agent
Adjust the role, goal, and backstory to fit your use case
Run the crew
Run python crew.py. CrewAI auto-discovers 12 tools from GrabFood Partner
Why Use CrewAI with the GrabFood Partner MCP Server
CrewAI Multi-Agent Orchestration Framework provides unique advantages when paired with GrabFood Partner through the Model Context Protocol.
Multi-agent collaboration lets you decompose complex workflows into specialized roles, one agent researches, another analyzes, a third generates reports, each with access to MCP tools
CrewAI's native MCP integration requires zero adapter code: pass Vinkius Edge URL directly in the `mcps` parameter and agents auto-discover every available tool at runtime
Built-in task delegation and shared memory mean agents can pass context between steps without manual state management, enabling multi-hop reasoning across tool calls
Sequential and hierarchical crew patterns map naturally to real-world workflows: enumerate subdomains → analyze DNS history → check WHOIS records → compile findings into actionable reports
GrabFood Partner + CrewAI Use Cases
Practical scenarios where CrewAI combined with the GrabFood Partner MCP Server delivers measurable value.
Automated multi-step research: a reconnaissance agent queries GrabFood Partner for raw data, then a second analyst agent cross-references findings and flags anomalies. all without human handoff
Scheduled intelligence reports: set up a crew that periodically queries GrabFood Partner, analyzes trends over time, and generates executive briefings in markdown or PDF format
Multi-source enrichment pipelines: chain GrabFood Partner tools with other MCP servers in the same crew, letting agents correlate data across multiple providers in a single workflow
Compliance and audit automation: a compliance agent queries GrabFood Partner against predefined policy rules, generates deviation reports, and routes findings to the appropriate team
GrabFood Partner MCP Tools for CrewAI (12)
These 12 tools become available when you connect GrabFood Partner to CrewAI via MCP:
accept_order
This is a critical operational tool for restaurant staff to manage order flow. When set to accept=true, the restaurant confirms it will prepare the order. When accept=false, the order is rejected and the customer is notified. **Parameters:** - `order_id` (required): The unique order ID from GrabFood that needs to be accepted or rejected. - `accept` (required): Boolean flag — true to accept the order, false to reject it. **When to use:** - User says "accept order 12345" to confirm they will prepare it - User says "reject order 12345" if the restaurant cannot fulfill the order (e.g., items out of stock, kitchen closed) - User wants to bulk-accept multiple orders during busy periods - User needs to decline an order due to operational constraints **Important:** Accepting an order commits the restaurant to preparing it. Rejecting may impact the merchant's performance metrics on the GrabFood platform. Always verify order details before accepting. Accept or reject a GrabFood order
batch_update_menu
This is the preferred tool for making incremental changes — such as updating prices for a few items, marking items as available/unavailable, or modifying descriptions. **Parameters:** - `merchant_id` (required): The unique merchant ID registered with GrabFood. - `items` (required): An array of item update objects. Each object should contain the item identifier and the fields to update (e.g., price, availability, name, description). **When to use:** - User needs to update prices for only a subset of menu items - User wants to mark several items as sold out without touching the full menu - User wants to update descriptions or names for specific dishes - Incremental daily changes (e.g., "mark items X, Y, Z as unavailable today") - User wants to avoid the risk of a full menu replacement **Important:** This is safer than a full menu update because it only touches the items you specify. Each item in the batch should include its identifier (e.g., item_id or sku) and only the fields that need changing. Batch update specific menu items for a GrabFood merchant
cancel_order
This should be used sparingly as cancellations negatively impact the merchant's performance score on GrabFood. Always verify the order can be cancelled before attempting. **Parameters:** - `order_id` (required): The unique order ID of the order to cancel. - `reason` (optional): A brief explanation for why the order is being cancelled. Providing a reason is recommended for audit purposes (e.g., "item out of stock", "kitchen equipment failure", "customer request"). **When to use:** - User discovers an item is out of stock after accepting an order - User needs to cancel due to unforeseen kitchen issues - Customer has requested a cancellation - Duplicate order was accidentally accepted **Important:** Before cancelling, consider using `check_order_cancelable` to verify if the order is still in a cancellable state. Once the order has progressed too far in preparation, cancellation may not be possible. Cancel an already accepted GrabFood order
check_order_cancelable
This is a safety check tool that should be used before attempting to cancel an order, as cancellations after a certain point in the order lifecycle are not permitted. **Parameters:** - `order_id` (required): The unique order ID to check for cancellation eligibility. **When to use:** - Before cancelling an order to avoid API errors - User asks "can I still cancel order 12345?" - Restaurant staff needs to verify order state before making a cancellation decision - User is uncertain whether the order has progressed beyond the cancellation window **Returns:** A status object indicating whether the order can be cancelled, along with any relevant state information. Check if a GrabFood order can still be cancelled
create_campaign
Campaigns can include discounts, free delivery offers, featured placement, and other promotional tools designed to increase order volume and visibility. **Parameters:** - `merchant_id` (required): The unique merchant ID registered with GrabFood. - `campaign` (required): The campaign configuration as a JSON object. This typically includes campaign name, type (e.g., discount, free delivery), budget, start/end dates, target audience, and any specific promotional parameters. **When to use:** - User wants to launch a promotional discount to boost order volume - User needs to set up a free delivery campaign for a limited period - Restaurant is opening a new location and wants featured placement - User wants to run a time-limited promotional offer (e.g., "20% off this weekend") **Important:** Campaign creation may require budget approval from GrabFood. Ensure the campaign configuration matches GrabFood's accepted campaign types and schemas. Review campaign details carefully before submitting, as changes may not be possible after creation. Create a new marketing campaign for a GrabFood merchant
get_store_status
This includes whether the store is currently open, paused, or closed, along with any status flags that affect order acceptance. **Parameters:** - `merchant_id` (required): The unique merchant ID registered with GrabFood. **When to use:** - User asks "is my store currently open on GrabFood?" - User wants to verify the store's visibility to customers - Before opening or closing, to check the current state - User wants to troubleshoot why orders are not coming in - User needs to audit store operational status **Returns:** A status object containing the store's current state (open/closed/paused), any active flags, and potentially operational metadata like current order capacity. Get the current operational status of a GrabFood store
list_campaigns
Campaigns on GrabFood are used to promote the restaurant through discounts, free delivery, featured placement, and other marketing initiatives. **Parameters:** - `merchant_id` (required): The unique merchant ID registered with GrabFood. **When to use:** - User asks "what campaigns am I currently running on GrabFood?" - User wants to review the performance of past marketing campaigns - User needs to see active promotions before creating a new one - User wants to audit their marketing spend on GrabFood **Returns:** A JSON array of campaign objects, each containing campaign details such as name, type, budget, duration, status, and performance metrics. List all marketing campaigns for a GrabFood merchant
list_orders
Use this tool when the user wants to see what orders have been placed, check today's order volume, or review incoming orders from GrabFood delivery customers. **Parameters:** - `merchant_id` (required): The unique merchant ID registered with GrabFood Partner Portal. This identifies which restaurant's orders to fetch. - `date` (optional): The date to filter orders by, in YYYY-MM-DD format. If not provided, the API returns the most recent orders. **When to use:** - User asks "what orders do I have today?" - User wants to check order history for a specific date - User needs to see all incoming GrabFood orders before accepting them - User wants to audit order volume for a given day **Returns:** A JSON array of order objects, each containing order_id, items, customer details, delivery information, and order status. List all GrabFood orders for a merchant on a specific date
mark_order_ready
This is a crucial step in the order lifecycle — it notifies Grab that the driver should arrive immediately. **Parameters:** - `order_id` (required): The unique order ID that has been prepared and is ready for collection. **When to use:** - Kitchen has finished preparing all items in the order - User says "order 12345 is ready for pickup" - User wants to notify Grab that the driver should come now - All items have been packed and verified against the order **Important:** Only mark an order as ready when it is genuinely complete. Premature marking causes driver arrival before food is ready, leading to poor customer experience and potential quality issues (cold food, etc.). Mark a GrabFood order as ready for pickup/delivery
pause_store
When paused, the store will not receive new orders from GrabFood customers. When unpaused (pause=false), the store becomes visible and active again. **Parameters:** - `merchant_id` (required): The unique merchant ID registered with GrabFood. - `pause` (required): Boolean flag — true to pause the store, false to unpause it. **When to use:** - User says "pause my GrabFood store" — e.g., kitchen is overwhelmed, staff shortage, or end of business day - User says "unpause my store" or "open my store" when ready to receive orders again - Emergency closure due to equipment failure, power outage, or other disruptions - User wants to temporarily stop accepting orders during a rush **Important:** Pausing the store immediately stops new orders from being placed. Existing active orders are not affected. Always verify the store status after pausing/unpausing using `get_store_status` to confirm the change took effect. Pause or unpause a GrabFood store
update_menu
This tool replaces or modifies menu items, categories, pricing, and availability. It is a full update operation — ensure all desired menu data is included in the payload. **Parameters:** - `merchant_id` (required): The unique merchant ID registered with GrabFood. - `menu` (required): The complete menu data structure to update. This typically includes categories, items, prices, descriptions, images, and availability flags. The exact structure depends on the GrabFood menu schema. **When to use:** - User wants to add new dishes or remove discontinued items - User needs to update prices across the menu - Restaurant is changing its operating menu (e.g., seasonal items) - User needs to mark certain items as unavailable temporarily - User wants to update item descriptions or images **Important:** This is a full update operation. If you need to update only specific items without affecting the rest of the menu, consider using `batch_update_menu` instead. Ensure the menu data structure matches GrabFood's expected schema to avoid rejection. Update the menu for a GrabFood merchant
update_ready_time
This helps Grab optimize driver dispatch timing so the driver arrives when the food is actually ready, not too early or too late. **Parameters:** - `order_id` (required): The unique order ID whose ready time needs updating. - `ready_time` (required): The new estimated ready time in ISO 8601 format (e.g., "2024-01-15T14:30:00+07:00"). This should be a future timestamp representing when the order will be ready. **When to use:** - Kitchen is running behind schedule and the original estimate is no longer accurate - User wants to push back the ready time due to high order volume - Complex items are taking longer than expected to prepare - User wants to proactively manage driver dispatch timing **Important:** The ready_time should be in ISO 8601 format with timezone. Updating this too frequently or with unrealistic times may impact merchant performance ratings. Update the estimated ready time for a GrabFood order
Example Prompts for GrabFood Partner in CrewAI
Ready-to-use prompts you can give your CrewAI agent to start working with GrabFood Partner immediately.
"Show me all my GrabFood orders for today."
"Accept order GF-48921 and mark order GF-48915 as ready."
"Check my store status and pause it if it's currently open."
"Update the price of my Nasi Goreng to 25000 IDR and mark Fried Rice as unavailable."
Troubleshooting GrabFood Partner MCP Server with CrewAI
Common issues when connecting GrabFood Partner to CrewAI through the Vinkius, and how to resolve them.
MCP tools not discovered
Agent not using tools
Timeout errors
Rate limiting or 429 errors
GrabFood Partner + CrewAI FAQ
Common questions about integrating GrabFood Partner MCP Server with CrewAI.
How does CrewAI discover and connect to MCP tools?
tools/list method. This means tools are always fresh and reflect the server's current capabilities. No tool schemas need to be hardcoded.Can different agents in the same crew use different MCP servers?
mcps list, so you can assign specific servers to specific roles. For example, a reconnaissance agent might use a domain intelligence server while an analysis agent uses a vulnerability database server.What happens when an MCP tool call fails during a crew run?
Can CrewAI agents call multiple MCP tools in parallel?
process=Process.parallel, each calling different MCP tools concurrently. This is ideal for workflows where separate data sources need to be queried simultaneously.Can I run CrewAI crews on a schedule (cron)?
crew.kickoff() method runs synchronously by default, making it straightforward to integrate into existing pipelines.Connect GrabFood Partner with your favorite client
Step-by-step setup guides for every MCP-compatible client and framework:
Anthropic's native desktop app for Claude with built-in MCP support.
AI-first code editor with integrated LLM-powered coding assistance.
GitHub Copilot in VS Code with Agent mode and MCP support.
Purpose-built IDE for agentic AI coding workflows.
Autonomous AI coding agent that runs inside VS Code.
Anthropic's agentic CLI for terminal-first development.
Python SDK for building production-grade OpenAI agent workflows.
Google's framework for building production AI agents.
Type-safe agent development for Python with first-class MCP support.
TypeScript toolkit for building AI-powered web applications.
TypeScript-native agent framework for modern web stacks.
Python framework for orchestrating collaborative AI agent crews.
Leading Python framework for composable LLM applications.
Data-aware AI agent framework for structured and unstructured sources.
Microsoft's framework for multi-agent collaborative conversations.
Connect GrabFood Partner to CrewAI
Get your token, paste the configuration, and start using 12 tools in under 2 minutes. No API key management needed.
