Linked Records Tools
Tools for creating links between records in different tables.
Available Tools
linkedRecords_createLinkFieldCreate a link field to connect two tables. Params: tableId (source table), name (field name), linkedTableId (target table), linkType ("one_to_one", "one_to_many", "many_to_many"), linkDisplayMode ("COUNT", "LABELS", "CHIPS"), allowMultipleLinks (boolean), createReciprocal (default true, creates reverse link in target table).
Input Schema
tableId | stringrequired | Source table ID from listTables |
name | stringrequired | Name for the link field |
description | string | Optional description |
linkedTableId | stringrequired | Target table ID to link to |
linkType | stringrequired | Relationship type: "one_to_one", "one_to_many", or "many_to_many" |
linkDisplayMode | string | Display mode: "COUNT", "LABELS", or "CHIPS" |
allowMultipleLinks | boolean | Allow linking to multiple records |
linkOnDelete | string | What happens to linking rows when a linked record is deleted: RESTRICT blocks the delete while links exist; CASCADE deletes the linking rows too (chains, capped at 500 rows per delete); SET_NULL (default) / NO_ACTION just remove the connection |
linkOnUpdate | string | Action on update |
createReciprocal | boolean | Create reciprocal field in target table |
Example Call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "linkedRecords_createLinkField",
"arguments": {
"tableId": "example",
"name": "example",
"description": "example"
}
}
}linkedRecords_linkRecordsLink records together. Params: tableId (source), recordId (source row ID), fieldId (link field ID), linkedRecordIds (array of target row IDs), preserveOrder.
Input Schema
tableId | stringrequired | Source table ID |
recordId | stringrequired | Source row ID to link from |
fieldId | stringrequired | Link field ID |
linkedRecordIds | arrayrequired | Array of target row IDs to link to |
preserveOrder | boolean | Preserve order of linked records |
Example Call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "linkedRecords_linkRecords",
"arguments": {
"tableId": "example",
"recordId": "example",
"fieldId": "example"
}
}
}linkedRecords_unlinkRecordsRemove links. Params: tableId, recordId, fieldId, linkedRecordIds (array of IDs to unlink). Act only on what the person named or picked.
Input Schema
tableId | stringrequired | Source table ID |
recordId | stringrequired | Source row ID |
fieldId | stringrequired | Link field ID |
linkedRecordIds | arrayrequired | Array of target row IDs to unlink |
Example Call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "linkedRecords_unlinkRecords",
"arguments": {
"tableId": "example",
"recordId": "example",
"fieldId": "example"
}
}
}linkedRecords_getLinkedRecordsGet linked records for a row. Params: tableId, recordId, fieldId, limit (default 50), offset, sortBy (field to sort by), sortDirection ("asc"|"desc"). Always returns the summarized shape { id, primaryFieldValue, metadata } per linked record — the "expand" flag is currently accepted but ignored (no full-record payload), so fetch the target rows directly if you need all fields.
Input Schema
tableId | stringrequired | Source table ID |
recordId | stringrequired | Source row ID |
fieldId | stringrequired | Link field ID |
expand | boolean | Include full record data |
limit | number | Max records to return (default: 50) |
offset | number | Skip records for pagination |
sortBy | string | Field to sort by |
sortDirection | string | Sort direction |
Example Call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "linkedRecords_getLinkedRecords",
"arguments": {
"tableId": "example",
"recordId": "example",
"fieldId": "example"
}
}
}linkedRecords_bulkLinkRecordsBulk link operations. Params: tableId, fieldId, operations (array of {sourceRecordId, targetRecordIds, operation: "link"|"unlink"|"replace"}).
Input Schema
tableId | stringrequired | Source table ID |
fieldId | stringrequired | Link field ID |
operations | arrayrequired | Array of link operations to perform |
Example Call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "linkedRecords_bulkLinkRecords",
"arguments": {
"tableId": "example",
"fieldId": "example",
"operations": {}
}
}
}linkedRecords_reorderLinkedRecordsChange link order. Params: tableId, recordId, fieldId, orderedRecordIds (array in desired order).
Input Schema
tableId | stringrequired | Source table ID |
recordId | stringrequired | Source row ID |
fieldId | stringrequired | Link field ID |
orderedRecordIds | arrayrequired | Target row IDs in desired order |
Example Call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "linkedRecords_reorderLinkedRecords",
"arguments": {
"tableId": "example",
"recordId": "example",
"fieldId": "example"
}
}
}