Integration details
Description
AnyDB is a workspace for records, documents, files, and business processes. This plugin connects ChatGPT to your AnyDB account so you can find, create, update, copy, and move records, search their content by meaning, and upload or download files without leaving the conversation. You can also build and adjust AnyDB solutions: define record types with fields, layouts, and formulas; set up filtered views and reports; share records and forms; add comments; review and restore earlier record versions; and automate work with event-driven workflows. Sign in with your AnyDB account. The plugin can only see and change what your AnyDB permissions allow.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Pending
- Secondary Subcategories
- None listed
- Brand
- AnyDB
- Access
- Account required
- First tracked
- 2026-09-25
- Tool count
- 67
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Get alerts for AnyDB
Get updates when AnyDB’s Discoverability Score or category rank changes.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competitive lineup
67 tools agents can invoke
Post a comment on a record, or on one cell of it. Use this rather than writing into a record's comments through update_record: the author is the authenticated user and cannot be set by the caller, the id and timestamp are assigned by the server, and mention notifications fire. Omit cellPosition to comment on the record itself; pass a grid position such as 'A8' to comment on that one cell. Returns the new commentId.
anydb_add_comment
Check specific permission type/level pairs for a user on a team, database, or record — for example OBJECT_ATTACHED at PERM_CREATE to ask whether they may add records underneath it. Use anydb_get_permissions instead when you want the whole picture. Permission names and what they mean are in anydb://guides/permissions/v1.
anydb_check_permissions
Fetch only what CHANGED at one version, rather than the whole record. Use it to answer "what did this edit actually do" without diffing two full records yourself. Same timestamp rules as anydb_get_record_version.
anydb_get_record_version_delta
Create a copy of an existing AnyDB record. The copy will be an independent record with its own ID. You can optionally attach the copy to a different parent record and control how file attachments are handled. There are three attachment modes: (1) 'noattachments' - Copy without any file attachments (files are not copied), (2) 'link' - Copy with linked attachments (files reference the same storage location as the original), (3) 'duplicate' - Copy with duplicated attachments (files are fully copied to new storage locations, creating true independent copies).
copy_record
Set up a Document Generation template: attach an uploaded .docx or .xlsx file to a workspace type, so documents can be generated from records of that type. THE FILE MUST BE UPLOADED FIRST and the upload must be COMPLETED - use prepare_file_upload, PUT the bytes, then complete_file_upload, and pass the resulting File record's adoid as fileRecordId. A record that is not a File, or a File whose upload never completed, is rejected: an agent that skips complete_file_upload has an adoid that looks usable and is not. The type must already exist. WHAT TO PUT INSIDE THE TEMPLATE FILE - the merge-tag syntax: - A placeholder is SINGLE braces around a field name: {Invoice Number}. This is NOT the double-brace {{...}} of AnyDB's formula language - the two look alike and are different. Double braces do also work, because the renderer retries with {{ }} when single-brace parsing reports duplicate delimiters, but single braces are the primary form and the one to write. - A field can be named EITHER by its key OR by its cell position: {Invoice Number} and {B2} both resolve to the same cell. Keys are clearer and survive layout changes; positions are useful for cells with no key. - A tag naming nothing on the record RENDERS EMPTY. It is not an error and nothing warns you, so a typo in a tag shows up as a blank space in the finished document rather than a failure. Check field names against anydb_get_type_definition before uploading. - An attachments cell (child records) can be repeated with a loop: {#Line Items} ... {/Line Items}. Inside the loop each child exposes its own field keys, plus name, adoid, templateName, created and updated. Keep loop tags on rows that also carry visible content; a blank spacer row inside a loop is rejected. - If you are BUILDING the .docx yourself rather than saving one from Word, the package must contain word/_rels/document.xml.rels. Word always writes it; a hand-built zip usually omits it, and older servers reject such a file with an unhelpful error.
anydb_create_docgen_template
Create a new AnyDB record in a specific database. You can optionally attach it to one or more parent records or use a template. AnyDB records support multiple parents, so attach accepts either a single parent ID or an array of parent IDs.
create_record
Create up to 100 records in one request. Processing uses bounded concurrency and returns an ordered result for every input; failures do not roll back successful records. Use clientref to correlate results.
bulk_create_records
Create a saved report in a database. A report is a grouped, aggregated view over one type - the Reports tab in the product. Use validateOnly: true to check a definition without creating anything; the definition is checked with the same rules the report runtime enforces, so what this accepts is what will actually run.
anydb_create_report
Create a public or private share for a record or form through standard AnyDB sharing policy. Use target {kind: "record", recordId: "<adoid>"} for an existing record, or {kind: "form", templateName: "<stable type name>"} for a form (optionally with parentRecordId). Call anydb_list_shares first to reuse an existing compatible share. Public shares omit recipients and return publicUrl. Private shares require emails and/or stable group names from anydb_list_team_groups. role and withAttachments apply only to records.
anydb_create_share
Call anydb_get_authoring_guide before the first authoring call in a task. Before creating a standalone AnyDB type or a type in a larger solution, search workspace types and inspect complete definitions. Compare semantic content and behavior, not names or descriptions: fields, types/formats, relationships, formulas/lookups, and workflow-facing keys. Reuse compatible workspace content first; only if none exists, inspect and import a compatible built-in. Define a new type only when neither source can fulfill the use case. For new definitions, use the guide's canonical type-layout rules and provide every field's position, colspan, and rowspan. Colour, emphasis, visibility, display format, and validation are cell properties set through a field's props map, where each property takes a value, an expr, or both; an expr is an AnyDB formula evaluated per record, and CURRCELL inside it is the cell's own value. Reference fields as {{Field Key}}; grid positions such as A1 are only valid as the first argument to DYNREF. Equality is == and logic is and/or/not: a single = is an assignment that evaluates truthy, so a condition written with it silently takes the same branch for every record. The authoritative function reference is https://www.anydb.com/support/reference/formulas/, with a page per function at https://www.anydb.com/support/reference/formulas/functions/<function_name> in lowercase - fetch it for exact arguments and a worked example rather than guessing a signature. Prefer the named fields (description, headingLabel, required, locked, options, targetType) over props for the properties they own.
anydb_create_type
Create a View on a type's listing page, so a person opening that type in AnyDB sees it next to All. This is what someone means by "a view showing only X" - the named filter they can see and click at the top of the type page. View names are unique per type; creating a duplicate name is rejected rather than silently merged.
anydb_create_view
Read the authoring guide, then call anydb_list_workflow_triggers and anydb_list_workflow_actions before authoring. Create one supported trigger followed by an ordered chain of registered actions. Prefer one script action when the team license permits it and that is the simplest design. Use action keys and symbolic output bindings; the server generates runtime artifact IDs and connections. For an action_script, follow the guide's Script Actions rules and the action_script catalog guidance: an executable body with no async IIFE, documented anydb/output APIs only, awaited data and mutation calls, an await in every loop body, exact schema field casing, epoch-second dates, and explicit output.set/output.summary results. The server validates script source before persisting it, so use validateOnly to check a draft. After creation, run one representative case and inspect anydb_get_workflow or anydb_get_workflow_execution_history before considering the automation verified.
anydb_create_workflow
Create a new empty AnyDB workspace in an existing team. Use only when the user explicitly requests a new workspace. The authenticated user must have permission to create workspaces in the team. Use the returned adbid in subsequent type, View, share, workflow, and record tools.
anydb_create_workspace
Remove a Document Generation template from a database. This deletes the mapping, not the uploaded template file - the File record stays and can be attached again. Permanent otherwise.
anydb_delete_docgen_template
Delete or unlink an existing AnyDB record. Records can have multiple parents - you can either unlink the record from specific parent(s) by providing their IDs in removefromids, or permanently delete the record by passing '000000000000000000000000' (NULL_OBJECTID). If removefromids is not specified, the record will be permanently deleted by default.
delete_record
Remove a View from a type's listing page. Permanent, and it takes that View's saved columns and sort with it. The All view cannot be deleted: it holds the default sort and column layout for the whole listing page.
anydb_delete_view
Retrieve semantically plausible reusable AnyDB type candidates before designing a new type. For authoring, search source=workspace first; search source=builtin only when no workspace candidate is compatible. Candidate names, descriptions, categories, and ranking are hints, not proof of compatibility: call anydb_get_type_definition for plausible candidates and compare their complete fields, schema, relationships, formulas, and behavior with the requested role before reuse or import. Use source=all only for general exploration.
anydb_discover_types
Finalize a signed-URL upload once the PUT has succeeded. Pass the adoid that prepare_file_upload returned - the File record it created - not the parent adoid you gave prepare_file_upload, and the same filesize and cellpos. Until this is called the File record exists but has no usable content.
complete_file_upload
Generate a document from one record using a Document Generation template, and attach the result to that record so it can be downloaded, emailed or sent on. This is the tool that actually produces the PDF - the other docgen tools only configure which template applies to which type. REGENERATING REPLACES: running this again with the same template on the same record supersedes the previous output rather than adding a second file, so a record never accumulates a pile of near-identical documents. Replacement is per template, so generating a Quote does not remove an Invoice generated from a different template on the same record. The result is an ordinary File record: pass the returned fileRecordId and cellPosition to download_file to fetch the bytes. If the generated document comes back with blanks where values should be, the template's placeholders do not match the record's fields - a tag naming nothing renders empty rather than failing. See anydb_create_docgen_template for the merge-tag syntax.
anydb_generate_document
Download a file or get download URL from a record cell. Returns JSON with a 'url' field containing a presigned file link. Normal file URLs expire after approximately 60 seconds: fetch immediately and do not cache or reuse them. The MCP client/host should render the URL as a link for humans or fetch its bytes for LLM processing. First use get_record to find file cells and their cellpos values.
download_file
List what is in YOUR Inbox for a team - the records assigned to the authenticated user, which is the same list the Inbox in the AnyDB app shows. Use it to check that an assignment you made through update_record actually landed, or to see what is waiting on you. A record gets here through meta.assignees on update_record; each entry says whether it was assigned to you directly or through a group you belong to. This reads your own Inbox only: there is no way to read another person's. The list is self-correcting, so a record that was deleted or reassigned away simply is not in it.
anydb_get_inbox
Get a specific AnyDB record by its fully qualified address (teamid, adbid, adoid).
get_record
Report what a user may do with a team, database, or record: read it, update it, delete it, add records underneath it, and share it. Omit userid to ask about the authenticated user. Read the `can` block for the answer; the raw permission matrix is included for detail. Note that being able to update a record and being able to add records under it are independent — see anydb://guides/permissions/v1.
anydb_get_permissions
Fetch a record as it stood at one point in its history, in the same shape get_record returns. This is how you read content that no longer exists on the record - an overwritten cell, or comments removed by a migration. Pass a ts taken from anydb_list_record_versions; a timestamp that matches no version is REJECTED rather than answered, because the underlying replay would otherwise hand back the record as it is today and you would have no way to tell.
anydb_get_record_version
Read one report's complete definition. Returns an error if the id is a record that is not a report.
anydb_get_report
Return the AnyDB MCP installation, API-key, client configuration, verification, and troubleshooting guide. This tool is available even when AnyDB credentials are not configured.
anydb_get_setup_guide
Get one accessible record or form share facet by shareId and kind. The kind is required because one internal share can contain both facets.
anydb_get_share
Fetch the canonical AnyDB solution-building guide for designing types, cells, relationships, formulas, and workflows. Call this once before any authoring work to understand rules for standalone types, multi-type solutions, relationships, formulas, and workflow creation.
anydb_get_authoring_guide
Get a database template (type) by templatename, including its cell keys, positions, formats, and properties. The terms templatename and typename mean the same thing.
get_template
Get the latest complete definition of a workspace or built-in type by its stable name. Use it to judge reuse from semantic content and behavior, not the candidate name, description, or search score. Use the candidate name returned by anydb_discover_types, never a version-specific template ID.
anydb_get_type_definition
Poll a queued type migration by the jobId returned from anydb_update_type. Returns processed, total, and remaining record counts from cached job progress without rescanning workspace records.
anydb_get_type_migration_status
Get one workflow's normalized trigger/action graph and retained execution records, including per-artifact status, outputs, and errors. Each action's stored config is returned, so an action_script entry exposes its current source at config.script; read it before reviewing or revising that script rather than inferring behavior from the workflow name. Use this to diagnose whether a workflow fired and what happened, including script diagnostics at executionHistory[].artifactExecutions[].output.logLines. Use a workflowId returned by anydb_list_workflows or anydb_create_workflow.
anydb_get_workflow
Get the retained execution records for one workflow, including per-artifact status, outputs, and errors. Returns an empty array when the workflow has not run. Use a workflowId returned by anydb_list_workflows or anydb_create_workflow.
anydb_get_workflow_execution_history
Get all ADBs (databases) for a specific team. An ADB is like a spreadsheet file or a database table containing records. Use this to discover available adbid values within a team.
list_databases_for_team
List the Document Generation templates set up in a database - the .docx/.xlsx templates a person can generate a filled document from, shown under Document Generation in the AnyDB app. Each entry gives its id, its name, the workspace type it applies to (templateName), and the File record holding the template (fileAdoId). Call this before creating one to avoid a duplicate, and to find the id that update and delete take. Note the product also calls this feature "formatted export" internally, so that is the wording you will see in server logs and URLs.
anydb_list_docgen_templates
List the saved versions of a record - every point at which it was changed, with the timestamp and who changed it. Use it to answer "what happened to this record", and as the first step in recovering content that was overwritten or lost: the timestamps it returns are the only values anydb_get_record_version accepts. NOTE THIS NEEDS DELETE PERMISSION ON THE RECORD, not just read - the server treats history as a stronger privilege than the current content, so a caller who can read a record may still be refused here.
anydb_list_record_versions
List ADOs (records) in a database. Use parentid with a normal record ID to list its children. You can also filter directly by template and use pagination for large result sets.
list_records
List the saved reports in a database, with their ids and names. Call this before creating one so an equivalent report is reused rather than duplicated.
anydb_list_reports
List accessible shares in a database as semantic record/form facets, including target, privacy, recipient counts/groups, and publicUrl where applicable. Call before creating a share to avoid duplicate public links.
anydb_list_shares
List team groups available to the authenticated user for private sharing. Use the returned stable group names in anydb_create_share; do not guess names or pass internal group IDs.
anydb_list_team_groups
List the teams this connection can access, as teamid, name, and plan. A team is like an organization or workspace with its own databases and users. Use this first to discover available teamid values for other operations. Access control and policy detail are omitted; ask for them only if you genuinely need them, as they are large.
list_teams
List the templates (types) available in a database. Use this to discover templatename values and cell schemas before creating or updating records.
list_templates
List the Views on a type's listing page - the strip reading All, and whatever named filters sit beside it, that a person sees when they open the type in AnyDB. That strip is what a View is in AnyDB: the thing a user creates, names, and clicks. Use this when the user asks what views or saved filters they already have on a type, or to check that a View you created actually landed.
anydb_list_views
List registered workflow actions with descriptions, exact input/output schemas, trigger compatibility, and whether each action is accepted by anydb_create_workflow. The action_script entry carries the authoritative script runtime surface for the running server: allowed globals, anydb APIs, output APIs, record helpers, trigger-input binding, debugging, and authoring rules. Read it before writing or revising any script source, and prefer it over remembered API names.
anydb_list_workflow_actions
List server-supported workflow triggers with descriptions, output schemas, and whether each trigger is accepted by anydb_create_workflow. Each inputSchema is the exact object shape accepted at workflow.trigger.config; use those property names directly. Call before choosing a workflow trigger.
anydb_list_workflow_triggers
List normalized workflow graphs in a database before creating automation, so an existing workflow can be reused and duplicate behavior avoided.
anydb_list_workflows
Move an existing AnyDB record so that the supplied parent becomes its ONLY parent. This is a single-parent reassignment: it replaces the record's entire parent list with parentid, detaching it from every other parent it currently has. Use it to reorganize a single-parent hierarchy. To attach a record to several parents, or to add a parent while keeping the existing ones, use update_record with meta.attach as an array instead.
move_record
Mark a comment resolved, or reopen it with resolved: false. The comment's text is preserved. Scope must match where the comment lives: pass the same cellPosition used to create it, or omit it for a record-level comment - a record-level lookup will not find a comment that lives on a cell.
anydb_resolve_comment
Restore a record to the state it had at an earlier version. THIS OVERWRITES THE RECORD'S CURRENT CONTENT: anything added since that version is removed from the record as it stands now - this REPLACES, it does not merge. Do not reach for it to recover one lost field, because it will take everything else back with it; read the old value with anydb_get_record_version and write just that field with update_record instead. Reverting is append-only, so the state you overwrite is still readable in the history afterwards and a mistaken revert can itself be reverted. Pass a ts from anydb_list_record_versions; an unknown one is rejected rather than silently doing nothing. Needs permission to both read the record's history and update the record.
anydb_revert_record_to_version
Revoke one record or form share facet by shareId and kind. This removes its access/public link and preserves a different facet on the same internal share. Use after anydb_get_share confirms the exact target.
anydb_revoke_share
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.