Overview
These examples illustrate how the Tulip MCP can power chat-based interactions from external clients, ranging from basic operations within Tulip to advanced workflows integrating multiple enterprise systems.
Within this article, we are going to cover three examples of how the Tulip MCP could be leveraged:
1. Order Status Summary
Scenario: A production supervisor or customer service representative needs a quick, comprehensive update on a specific production order.
Chat-Based Interaction:
- User Prompt: "What is happening with order ABC-123?"
- Agent's Expected Response: A summarized status of Order ABC-123, including its current stage, recent activities, and any critical flags.
Basic Version (Tulip MCP Only)
Agent Action & Tools:
- Fetch Order Data: The AI agent, receiving the prompt, queries a "Production Orders" Tulip table to get the order's primary details (e.g., status, quantity, current station).(Tools:
getTableRecord
) - Fetch Related Activities: The agent then queries a "Production Log" Tulip table to find recent activities or operator comments related to that order.(Tools:
listTableRecords
) - Summarize Data: The LLM processes the fetched data from both tables and synthesizes it into a human-readable summary.
Highlights: Provides a quick, internal view of order progress and relevant events. This basic version leverages Tulip's structured data capabilities to offer immediate, consolidated information directly through the chat interface.
Advanced Version (Tulip MCP + Other MCPs)
Agent Action & Tools:
- Fetch Order Data (Tulip & ERP): The agent first queries the "Production Orders" Tulip table for shop floor specific status, and then integrates with an external ERP.(Tools:
getTableRecord
, External MCP )- External MCP (e.g., ERP MCP - SAP, Oracle): A connector/MCP for the ERP system to fetch enterprise-level order status, customer details, sales order lines, and shipping information.
- Fetch Related Activities & Aggregate Data: The agent queries Tulip production logs and can also pull summarized operational data.(Tools:
listTableRecords
,runTableAggregation
) - Update ERP with Human-Readable Status (Scheduled Workflow): This is a continuous agentic workflow. The agent periodically checks Tulip's "Production Orders" table for status updates and translates complex Tulip station IDs into human-readable descriptions before updating the ERP.(Tools:
listTableRecords
, External MCP) - Synthesize & Respond: The LLM combines data from Tulip and ERP, providing a comprehensive status.
Highlights: This version provides a complete, cross-functional view by integrating shop floor data from Tulip with enterprise-level information from the ERP. The agent can provide more detailed and accurate summaries, and also enables automated synchronization of operational statuses back to the core business system, reducing manual data entry and ensuring data consistency across the organization.
2. Quality Reporting
Scenario: A quality manager or engineer needs a quick overview of the most prevalent defects for a specific order, SKU, or production line, to identify trends or issues.
Chat-Based Interaction:
- User Prompt: "Summarize the top 3 defects for SKU YZ-456."
- Agent's Expected Response: A formatted report listing the top defects by frequency, including counts or percentages.
Basic Version (Tulip MCP Only)
Agent Action & Tools:
- Fetch Defect Data with Filters: The AI agent queries a "Defect Log" Tulip table, applying filters based on the user's request (e.g., sku = 'YZ-456'). (Tools:
listTableRecords
) - Aggregate Defect Counts: The agent then uses Tulip's aggregation capabilities to count occurrences of each defect type found. (Tools:
runTableAggregation
) - Format Report: The LLM takes the aggregated data and formats it into a clear, concise report.
Highlights: Quickly provides insights into defect trends within the Tulip environment. This basic version offers immediate, filtered quality reporting directly through the chat interface, helping identify internal problem areas.
Advanced Version (Tulip MCP + Other MCPs)
Agent Action & Tools:
- Fetch Defect Data (Tulip & External BI/Analytics): The agent first pulls detailed defect logs from Tulip. For aggregated insights, it integrates with a dedicated analytics platform. (Tools:
listTableRecords
, External MCP)- External MCP (e.g., Snowflake DB/BI Tool MCP - Tableau, Power BI): A connector/MCP for a data warehouse (Snowflake) or BI tool to retrieve pre-calculated or complex defect analytics and trends that might combine data beyond just the defect log (e.g., linking defects to specific machine runs, material batches).
- Consolidate & Format Report: The LLM combines the raw data from Tulip and the aggregated insights from the BI/Analytics system, then formats it.
- Distribute Report (Multi-Channel): The agent can post the formatted report to various communication platforms.
- External MCP (e.g., Microsoft Teams/Slack MCP): A connector/MCP to post the formatted report summary directly to a relevant team channel.
Highlights: This advanced version leverages powerful external analytical capabilities to provide deeper, more integrated defect insights. The agent can then automatically distribute these reports to relevant stakeholders via their preferred communication channels, ensuring broad visibility and faster response to quality issues.
3. Automated Station Provisioning
Scenario: An IT or operations engineer needs to rapidly provision multiple new production stations, including their associated interfaces, group assignments, and initial app configurations, from a list.
Basic Version (Tulip MCP Only)
Agent Action & Tools:
- Receive & Parse Station Data: The AI agent receives the CSV data. It parses this data to extract station names, groups, and app assignments.
- Iterate & Provision Stations: For each station defined in the CSV:
- Check Existing Stations: The agent first checks if a station with that name already exists to avoid duplication. (Tools:
listStations
) - Create Station (if new): If the station doesn't exist, the agent creates it. (Tools:
createStation
) - Create Interface & Assign: The agent creates a new interface for the station and assigns it. (Tools:
createInterface
,assignInterfaceToStation
) - Manage Station Groups: The agent checks if the specified station group exists. If not, it creates it, then adds the new station to the group. (Tools:
listStationGroups
,createStationGroup
,updateStationGroupStations
) - Configure Apps: The agent assigns the specified apps to the station. (Tools:
createStationAppAssignment
) - Update Station States Table: The agent adds a new row for the station in a "Station States" Tulip table, which has one row per station for real-time monitoring. (Tools:
createTableRecord
)
- Check Existing Stations: The agent first checks if a station with that name already exists to avoid duplication. (Tools:
- Respond with Summary: The agent compiles a summary of actions taken and lists the quick links.
Highlights: Automates significant administrative overhead for setting up new stations within the Tulip platform. The chat interface serves as a powerful command-and-control for mass provisioning, ensuring consistency and reducing manual errors, all using Tulip's native configuration tools.
Tool reference
The Tulip MCP supports the following tools:
Tool Category | Tool Name | API Scope required | Tool Description |
---|---|---|---|
Tables & Records | listTables |
tables:read |
Retrieves a list of all Tulip Tables |
getTable |
tables:read |
Gets details about a specific Tulip Table | |
createTable |
tables:write |
Creates a new Tulip Table | |
updateTable |
tables:write |
Updates an existing Tulip Table | |
listTableRecords |
tables:read |
Lists records of a Tulip Table | |
getTableRecord |
tables:read |
Gets a specific record from a Tulip Table | |
createTableRecord |
tables:write |
Creates a new record in a Tulip Table | |
updateTableRecord |
tables:write |
Updates an existing record in a Tulip Table | |
deleteTableRecord |
tables:write |
Deletes a record from a Tulip Table | |
deleteAllTableRecords |
tables:write |
Deletes all records from a Tulip Table | |
countTableRecords |
tables:read |
Counts records in a Tulip Table | |
runTableAggregation |
tables:read |
Runs an aggregate function on a table field | |
incrementTableRecordField |
tables:write |
Increments or decrements a field in a Tulip Table record | |
getTableLink |
tables:read |
Fetches information about a table link | |
createTableLink |
tables:write |
Creates a table link relationship | |
updateTableLink |
tables:write |
Updates column labels for a table link | |
linkTableRecords |
tables:write |
Links two records using a table link relationship | |
unlinkTableRecords |
tables:write |
Unlinks two records using a table link relationship | |
Machines | listMachineTypes |
machines:read |
Lists all machine types and their corresponding machines |
generateMachineActivityArchive |
machines:write |
Generates machine activity archive for a given machine | |
retrieveMachineActivityArchive |
machines:read |
Retrieves machine activity archive status | |
reportAttributes |
attributes:write |
Reports new values for machine attributes | |
Apps | listAppGroups |
apps:read |
Lists all Tulip App Groups and their containing apps |
Stations | listInterfaces |
stations:read |
Gets a paginated, filtered, and sorted list of interfaces |
createInterface |
stations:write |
Creates a new interface | |
getInterface |
stations:read |
Gets details about a specific interface | |
updateInterface |
stations:write |
Updates interface configuration | |
archiveInterface |
stations:write |
Archives an interface | |
assignInterfaceToStation |
stations:write |
Assigns an interface to a station | |
removeInterfaceStationAssignment |
stations:write |
Removes station assignment from interface | |
listStationGroups |
stations:read |
Gets a paginated, filtered, and sorted list of station groups | |
createStationGroup |
stations:write |
Creates a new station group | |
getStationGroup |
stations:read |
Gets details about a specific station group | |
updateStationGroup |
stations:write |
Updates station group details | |
archiveStationGroup |
stations:write |
Archives a station group | |
updateStationGroupStations |
stations:write |
Updates stations in a station group | |
listStationGroupAppAssignments |
stations:read |
Gets app assignments for a station group | |
createStationGroupAppAssignment |
stations:write |
Creates app assignment for station group | |
updateStationGroupAppAssignment |
stations:write |
Updates app assignment for station group | |
deleteStationGroupAppAssignment |
stations:write |
Deletes app assignment from station group | |
deleteAllStationGroupAppAssignments |
stations:write |
Deletes all app assignments from station group | |
listStations |
stations:read |
Gets a paginated, filtered, and sorted list of stations | |
createStation |
stations:write |
Creates a new station | |
getStation |
stations:read |
Gets details about a specific station | |
updateStation |
stations:write |
Updates a station | |
archiveStation |
stations:write |
Archives a station | |
listStationAppAssignments |
stations:read |
Gets app assignments for a station | |
createStationAppAssignment |
stations:write |
Creates app assignment for station | |
updateStationAppAssignment |
stations:write |
Updates app assignment for station | |
deleteStationAppAssignment |
stations:write |
Deletes app assignment from station | |
deleteAllStationAppAssignments |
stations:write |
Deletes all app assignments from station | |
Users | listUserRoles |
users:read |
Gets a list of user roles |
getUserRole |
users:read |
Gets details about a specific user role | |
listUserGroups |
users:read |
Gets a list of user groups | |
getUserGroup |
users:read |
Gets details about a specific user group | |
getUserGroupUsers |
users:read |
Gets users in a specific user group | |
listUsers |
users:read |
Gets a list of users | |
getUser |
users:read |
Gets details about a specific user | |
getUserGroups |
users:read |
Gets user groups for a specific user | |
createUser |
users:write |
Creates a new user | |
Utilities | signUrls |
urls:sign |
Signs cloud storage URLs |