mcpField
P
pipefy-database-tables

pipefy-database-tables

github.com/pipefyData & databases51681 installsUpdated 2d ago
Repository

About pipefy-database-tables

An agent skill for working with Pipefy database tables, covering schemas, records, and attachments. It explains read, update, and deletion procedures, including safeguards for destructive changes.

Key features

  1. 01Find and search database tables
  2. 02Create and modify table schemas
  3. 03Page through or filter records
  4. 04Create records and update fields
  5. 05Review data before deletion

Use cases

  1. 01Find records by field value
  2. 02Add or adjust table fields
  3. 03Update custom record fields
  4. 04Review table, field, or record deletion

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/pipefy/ai-toolkit --skill pipefy-database-tables

After installing, type/pipefy-database-tablesin Claude Code to confirm it loaded.

Bundled filesreferences/cli.mdreferences/mcp.md

Details

From the project README

Database Tables

MCP clients: read references/mcp.md. CLI users: read references/cli.md. Examples below describe shared operation arguments.

Tables, records (rows), schema columns (table fields), and attachments for Pipefy Database Tables.


Cross-cutting patterns

  • Use introspect_type on inputs such as CreateTableFieldInput / UpdateTableFieldInput.
  • Pagination: get_table_records and find_records support first / after; default page size is 50.
  • find_records over paginated get_table_records when you know the field value. One call with field_id and field_value beats N pages of get_table_records.

Table operations

OperationRead-onlyPurpose
get_tablesYesLoad database tables by their IDs.
search_tablesYesSearch tables by name.
get_tableYesTable metadata and field schema.
create_tableNoCreate a new database table.
update_tableNoRename or change settings.
delete_tableNoDestructive; review and approve first.

Table field (schema column) operations

OperationPurpose
create_table_fieldAdd a column to a table schema.
update_table_fieldRename or change column description, required status, or options.
delete_table_fieldDestructive; review and approve first. Requires table_id.

Record operations

OperationRead-onlyPurpose
get_table_recordsYesPaginated list of all records in a table.
find_recordsYesFilter records by field_id and field_value — preferred over paginating get_table_records.
get_table_recordYesSingle record with all populated field values.
create_table_recordNoAdd a row to a table.
update_table_recordNoUpdate a row's title, due_date or status_id. Any other key is dropped without an error.
set_table_record_field_valueNoSet one field value on a row. Use it for every table field.
delete_table_recordNoDestructive; review and approve first.

Steps — find and update a record

  1. Get table ID (if not known):

    Operation: search_tables(table_name="Customers") and select the table ID from the results.

  2. Find the record (use find_records, not pagination):

    Operation: find_records(table_id=456, field_id="email", field_value="[email protected]")

  3. Update one field (targeted):

    Operation: set_table_record_field_value(record_id=789, field_id="status", value="Active")

    Update record metadata (such as title, due date, or status):

    Operation: update_table_record(record_id=789, fields={"title":"Updated title"})


Review destructive changes

Before deletion, show the affected data and obtain explicit approval. Preview content per operation:

  • delete_table — show table name and field count. get_table does not return a record count; obtain one through schema-checked GraphQL or by paging through all records if practical. State clearly when the count is unknown. Deleting a table destroys all rows and schema.
  • delete_table_record — show record title and key field values so the user can identify which row will vanish.
  • delete_table_field — show field name and type; warn explicitly that all column data will be permanently lost.

Never delete without first reviewing the affected data.


Success criteria

  • get_table_records returns the created/updated records with correct field values.
  • Schema changes reflect immediately in get_table.

Failure modes

  • get_table_record / get_table_records omit empty fields. Records only return populated fields, so you cannot tell "field unset" from "field doesn't exist" without calling get_table for the full schema.
  • create_table_record title silently overridden. When the first table field is a start-form-style label column, Pipefy uses that field's value as the record title, ignoring the title parameter. Don't rely on title if the first field auto-populates a label-like column.
  • create_table_field rejects type: call introspect_type(type_name="CreateTableFieldInput") for valid field types.
  • update_table_record ignores a custom field without an error: it sends only title, due_date and status_id, and drops every other key. It fails only when none of the three is present. Set each custom field with set_table_record_field_value, then read the record back with get_table_record.
  • find_records returns empty: check that field_id matches a field's ID (not label) from get_table.
  • Pagination cursor expired: re-fetch from the beginning; cursors are short-lived.

See also

  • pipefy-relations — connect tables to pipes (and the table-relation ID namespace gotcha).
  • pipefy-introspection — discover field input schemas.

Comments

Markdown supported