Skip to main content

Tools

The RushDB MCP server exposes a comprehensive set of tools. Each tool includes a name, description, and inputSchema. Below is a summary of the available tools and example usages.

Database discovery

  • FindLabels — List/filter record labels and counts
  • FindProperties — List/filter properties
  • FindRelationships — Search for relationships

Record operations

  • CreateRecord — Create a new record
  • UpdateRecord — Update an existing record (partial)
  • SetRecord — Replace all fields of a record
  • DeleteRecord — Delete a record (alias of DeleteRecordById)
  • DeleteRecordById — Delete a record by ID
  • GetRecord — Get a record by ID
  • GetRecordsByIds — Get multiple records by their IDs
  • FindRecords — Search for records with where/limit/skip/orderBy/aggregate/groupBy
  • FindOneRecord — Find a single record matching criteria
  • FindUniqRecord — Find a unique record matching criteria

Relationship management

  • AttachRelation — Attach relationships between records
  • DetachRelation — Detach relationships between records
  • FindRelationships — Search for relationships

Bulk operations

  • BulkCreateRecords — Create multiple records at once
  • BulkDeleteRecords — Delete multiple records by query

Data export

  • ExportRecords — Export records to CSV format

Transactions

  • TransactionBegin — Begin a transaction
  • TransactionCommit — Commit a transaction
  • TransactionRollback — Roll back a transaction
  • TransactionGet — Get info about a transaction

Utilities

  • GetSettings — Get current database settings
  • OpenBrowser — Open a URL in a browser
  • HelpAddToClient — Setup instructions for adding this server to MCP clients

Examples

Find labels

Ask your MCP client:

Use the RushDB MCP server to run FindLabels with limit=10.

Create a record

Use CreateRecord to add a record with label "Task" and data {"title": "Write docs", "status": "open"}.

Find records

Call FindRecords where {"status": "open"} orderBy {"createdAt": "desc"} limit 5.

Attach relationships

AttachRelation from sourceId "<id1>" to targetIds ["<id2>", "<id3>"] with relationType "references".

Transactions

Begin a transaction, create two records, attach a relation, then commit.

If needed, your client can call TransactionRollback to undo the changes.


For detailed input schemas, see the tool definitions in the MCP server source (packages/mcp-server/tools.ts).


Tool reference

Below, each tool is described with its purpose and arguments. Types reflect the MCP input schema; required flags and defaults are noted.

FindLabels

List or filter record labels and their counts.

Arguments:

NameTypeRequiredDefaultDescription
whereobjectnoFilter conditions for labels (e.g., by activity flags, counts)
limitnumbernoMaximum number of labels to return
skipnumbernoNumber of labels to skip
orderByobjectnoSorting: key = field, value = asc or desc

Example prompt:

Run FindLabels with limit=10 ordered by { "count": "desc" }.


CreateRecord

Create a new record with the specified label and data.

Arguments:

NameTypeRequiredDefaultDescription
labelstringyesLabel for the record
dataobjectyesRecord data to insert
transactionIdstringnoOptional transaction ID for atomic creation

Example prompt:

Call CreateRecord with label="Task" and data={"title":"Write docs","status":"open"}.


UpdateRecord

Partially update fields of an existing record.

Arguments:

NameTypeRequiredDefaultDescription
recordIdstringyesID of the record to update
labelstringyesLabel for the record
dataobjectyesPartial data to update
transactionIdstringnoOptional transaction ID

Example prompt:

Use UpdateRecord with recordId="<id>", label="Task", and data={"status":"done"}.


SetRecord

Replace all fields of a record (full update).

Arguments:

NameTypeRequiredDefaultDescription
recordIdstringyesID of the record to set
labelstringyesLabel for the record
dataobjectyesFull record data (replaces existing fields)
transactionIdstringnoOptional transaction ID

Example prompt:

Call SetRecord for recordId="<id>", label="Task", data {"title":"Polish docs","status":"in-progress"}.


DeleteRecord / DeleteRecordById

Delete a record by its ID. DeleteRecord is an alias of DeleteRecordById.

Arguments:

NameTypeRequiredDefaultDescription
recordIdstringyesID of the record to delete
transactionIdstringnoOptional transaction ID

Example prompt:

Use DeleteRecordById with recordId="<id>".


GetRecord

Retrieve a specific record by ID.

Arguments:

NameTypeRequiredDefaultDescription
recordIdstringyesID of the record to retrieve

Example prompt:

Call GetRecord for recordId="<id>".


GetRecordsByIds

Retrieve multiple records by an array of IDs.

Arguments:

NameTypeRequiredDefaultDescription
recordIdsarray of stringsyesIDs of records to retrieve

Example prompt:

Call GetRecordsByIds with recordIds=["<id1>","<id2>"].


FindRecords

Search for records with advanced filtering, sorting, paging, grouping, and aggregation.

Arguments:

NameTypeRequiredDefaultDescription
labelsarray of stringsnoFilter by record labels
whereobjectnoQuery conditions
limitnumberno10Max records to return
skipnumberno0Records to skip
orderByobjectnoSorting: key = field, value = asc or desc
aggregateobject of objectsnoAggregations: each key maps to { fn, field?, alias?, granularity? }. fn in count,sum,avg,min,max,timeBucket. For timeBucket, provide granularity like day, week, month, quarter, or year.
groupByarray of stringsnoFields to group by (records only)

Example prompt:

Run FindRecords with where={"status":"open"}, orderBy={"createdAt":"desc"}, limit=5.


FindOneRecord

Find a single record that matches the criteria (returns one or none).

Arguments:

NameTypeRequiredDefaultDescription
labelsarray of stringsnoFilter by labels
whereobjectnoQuery conditions

Example prompt:

Use FindOneRecord with where={"email":"user@example.com"}.


FindUniqRecord

Find a unique record that matches the criteria (errors if multiple match in some clients; the server returns not-found text if none).

Arguments:

NameTypeRequiredDefaultDescription
labelsarray of stringsnoFilter by labels
whereobjectnoQuery conditions expected to match a single record

Example prompt:

Use FindUniqRecord with labels=["User"] and where={"username":"alice"}.


AttachRelation

Create relationships from a source record to one or more target records.

Arguments:

NameTypeRequiredDefaultDescription
sourceIdstringyesID of the source record
targetIdstringnoID of a single target (deprecated if targetIds provided)
targetIdsarray of stringsnoIDs of multiple targets
relationTypestringnoRelationship type label
direction`outgoingincomingbidirectional`no
transactionIdstringnoOptional transaction ID

Example prompt:

Call AttachRelation from sourceId="<id1>" to targetIds=["<id2>","<id3>"] with relationType="references".


DetachRelation

Remove relationships between records.

Arguments:

NameTypeRequiredDefaultDescription
sourceIdstringyesID of the source record
targetIdstringnoID of a single target (deprecated if targetIds provided)
targetIdsarray of stringsnoIDs of multiple targets
relationTypestringnoRelationship type to remove
direction`outgoingincomingbidirectional`no
transactionIdstringnoOptional transaction ID

Example prompt:

Use DetachRelation with sourceId="<id1>", targetId="<id2>", and relationType="references".


FindRelationships

Search for relationships with filters, sorting, and paging.

Arguments:

NameTypeRequiredDefaultDescription
whereobjectnoQuery conditions for relationships
limitnumberno10Max number to return
skipnumberno0Number to skip
orderByobjectnoSorting: key = field, value = asc or desc

Example prompt:

Run FindRelationships with limit=20.


BulkCreateRecords

Create multiple records in a single operation.

Arguments:

NameTypeRequiredDefaultDescription
labelstringyesLabel for all records
dataarray of objectsyesArray of record payloads
transactionIdstringnoOptional transaction ID

Example prompt:

Call BulkCreateRecords for label="Task" with data=[{"title":"A"},{"title":"B"}].


BulkDeleteRecords

Delete multiple records matching a query.

Arguments:

NameTypeRequiredDefaultDescription
labelsarray of stringsnoFilter by labels
whereobjectyesCriteria for records to delete
transactionIdstringnoOptional transaction ID

Example prompt:

Use BulkDeleteRecords with where={"status":"obsolete"}.


ExportRecords

Export records to CSV.

Arguments:

NameTypeRequiredDefaultDescription
labelsarray of stringsnoFilter by labels
whereobjectnoCriteria for records to export
limitnumbernoMax records to export
orderByobjectnoSorting for export: key = field, value = asc or desc

Example prompt:

Call ExportRecords with labels=["Task"] and limit=100.


PropertyValues

Get values for a specific property.

Arguments:

NameTypeRequiredDefaultDescription
propertyIdstringyesID of the property
querystringnoFilter values (search term)
orderBy`ascdesc`no
limitnumbernoMax number of values
skipnumbernoNumber of values to skip

Example prompt:

Run PropertyValues with propertyId="<property-id>" and limit=20.


FindProperties

Search for properties with filters, sorting, and paging.

Arguments:

NameTypeRequiredDefaultDescription
whereobjectnoFilter conditions
limitnumberno10Max properties to return
skipnumberno0Number to skip
orderByobjectnoSorting: key = field, value = asc or desc

Example prompt:

Call FindProperties with limit=25 ordered by { "count": "desc" }.


FindPropertyById

Retrieve a specific property by ID.

Arguments:

NameTypeRequiredDefaultDescription
propertyIdstringyesID of the property

Example prompt:

Use FindPropertyById with propertyId="<property-id>".


DeleteProperty

Delete a property by ID.

Arguments:

NameTypeRequiredDefaultDescription
propertyIdstringyesID of the property to delete

Example prompt:

Call DeleteProperty with propertyId="<property-id>".


TransactionBegin

Begin a new database transaction.

Arguments:

NameTypeRequiredDefaultDescription
ttlnumbernoTime-to-live in milliseconds

Example prompt:

Run TransactionBegin with ttl=60000 (1 minute).


TransactionCommit

Commit a transaction.

Arguments:

NameTypeRequiredDefaultDescription
transactionIdstringyesTransaction ID to commit

Example prompt:

Call TransactionCommit with transactionId="<tx-id>".


TransactionRollback

Rollback a transaction.

Arguments:

NameTypeRequiredDefaultDescription
transactionIdstringyesTransaction ID to rollback

Example prompt:

Use TransactionRollback with transactionId="<tx-id>".


TransactionGet

Get information about a transaction.

Arguments:

NameTypeRequiredDefaultDescription
transactionIdstringyesTransaction ID to inspect

Example prompt:

Run TransactionGet with transactionId="<tx-id>".


GetSettings

Return current database settings and configuration.

Arguments: none

Example prompt:

Call GetSettings.