- Brand
- ADoor
- Category
- Developer Tools
- Primary Subcategory
- Business Data & Low-Code Apps
Integration details
Description
Read and update the tables in your ADoor workspaces from a conversation. Look up contacts, create spaces and tables, maintain a shared project tracker, inspect table structures, and see which connection changed a record. Each connection has its own permissions. When you connect, you pick a workspace and how much access to give: Allow everything, Regular data handling (read and write in one space, no account changes), or Cautious (read only in one space). Table and field restrictions still apply, and you can narrow a connection anytime in ADoor. Ask for more access through a link you approve in ADoor. An ADoor account is required.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Business Data & Low-Code Apps
- Secondary Subcategories
- None listed
- Brand
- ADoor
- Access
- Account required
- First tracked
- 2026-10-22
- Tool count
- 41
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for ADoor
Get updates when ADoor’s Discoverability Score or category rank changes.
Competing in ChatGPT Business Data & Low-Code Apps
View Category41 tools agents can invoke
Accept one invitation addressed to this account's verified email and join that workspace. Needs account_workspaces. The inviter's live grant is the ceiling. No invitation token is read or returned. No email is sent.
accept_invitation
Add a foreign key between two tables in this workspace. Needs alter on both tables. Pass createColumn true to add a nullable source field. A table this connection cannot see is not found.
add_reference
Archive a space. The space, its tables, and its rows stay readable, and writes, schema changes, imports, and table moves are refused until it is restored. An archived space does not count toward the space plan limit and can be restored with spaces_unarchive. Archiving a space that is already archived changes nothing and says so. The default space and the ADoor system space cannot be archived. This needs manage_spaces and workspace-wide data scope, the same rule as creating a space. Nothing is deleted.
spaces_archive
Clear undo history. This can't be undone. Omit table to clear the workspace. Name a table to clear that table. Live rows stay. Undo is available for the last 5,000 row changes per workspace or 30 days, whichever is shorter. Each row inserted, updated or deleted counts once. When that is full, the oldest changes lose undo first. Your data stays. Only the workspace owner can clear undo history. Allow everything cannot.
trim_history
Create a child connection in this workspace. Needs manage_connections. role is app, agent, server, or sandbox. The new secret is not returned. The result has url for the signed-in account to open. scope workspace stays in this workspace. scope account can open the person's workspaces, still limited to their role.
create_connection
Create a space in a workspace this connection can open, with an optional stable short name. Pass workspace as an id or slug the same way query and execute do. Omit it to use the current workspace. A space groups related tables. The default space starts named General. This tool is always listed. It needs the manage_spaces capability on that workspace and does not need workspace-wide read. A missing capability returns an error that says to call request_access with capabilities ["manage_spaces"]. That approval is enough. A new space records only the actions the connection already holds, on that new space id. It does not grant any other space. Allow everything can create the space in a workspace this user can act in. Cautious and regular access stay in the one space on their grant and cannot create a space. A connection that is not an account connection cannot switch workspace. When full access is at the space limit and the only user space is the default space, the call returns that space and does not create another.
spaces_create
Create a personal or team workspace owned by the authorizing account. One workspace per project, team, or app. Sharing and permissions belong to that workspace. Pass workspace as an id or slug this connection can open, the same way spaces_create does. That selects the account connection acting in that workspace. The new workspace is not created inside it. Pass account as the authorizing account id. Omit it to use the signed-in account. A different account creates nothing. There is no organization. This tool is always listed. Only the account owner can create a workspace. Tell the user to ask the account owner. "Create workspaces" cannot be granted from this workspace. It stays with Allow everything or account settings. request_access cannot add it. When this connection is Allow everything (context says so in words), it can create the workspace itself.
workspaces_create
Decline one invitation addressed to this account's verified email. Needs account_workspaces. A missing invitation, or one addressed to someone else, is not found and does not name another workspace.
decline_invitation
Calls the ADoor API. Documentation: https://adoor.halmoslabs.com/docs/reference/mcp/. Runs PostgreSQL against this connection's own ADoor database. The result is a compact summary: command, rowCount, ids, and eventId. SQL and row images are omitted unless detail is true. This is not a shell and it does not run code outside that database. MCP execute does not accept SELECT or COPY TO. query reads rows and exports. HTTP and the CLI accept SELECT in execute, paged at 1000 rows with truncated, nextCursor and rowCount. A page without ORDER BY can repeat or skip rows when other writes commit; ORDER BY a unique key. Accepted writes are INSERT, UPDATE, DELETE, managed CREATE TABLE, TRUNCATE or DROP TABLE of one user table, ADD COLUMN, DROP COLUMN, RENAME of a table or field, ALTER COLUMN TYPE, ADD UNIQUE or CHECK, DROP CONSTRAINT of a field rule, SET or DROP NOT NULL, SET or DROP a DEFAULT of a literal, now(), current_timestamp, or gen_random_uuid(). now() and gen_random_uuid(), including one schema prefix, are accepted and stored as pg_catalog.now() or pg_catalog.gen_random_uuid(). Casts, other functions, and parameters are rejected. Also accepted: a plain CREATE INDEX or DROP INDEX on plain columns, and COPY FROM an uploaded ADoor file. CREATE INDEX returns the index id. UNIQUE and CREATE INDEX reject a json field; use jsonb. CHECK accepts one field, literals, comparisons, BETWEEN, IN, AND, OR, NOT, IS NULL, char_length, and a literal match pattern of at most 256 characters. A table can have 8 unique rules, 16 checks, and 8 indexes. Adding a rule on existing rows fails with the number of rows that break it and no values, and requires unrestricted read of those fields. A single-column rule drops with the field. A multi-column unique rule blocks the drop. A type change is rejected while a check names the field. Regular access cannot DROP TABLE. DROP TABLE renames the table into Recently deleted for 30 days. TRUNCATE copies the rows there and empties the live table. Undo restores either one. Permanently deleting Recently deleted needs purge_deleted_tables, and that can't be undone. Changing a field type requires alter. Undo restores the previous type and the exact previous values for 30 days. SELECT adoor_file('import', 'name.csv') opens an upload. The default is all-or-nothing. dryRun true rolls that transaction back and commits nothing; it rejects schema changes, COPY, TRUNCATE, DROP, atomic: false, and an idempotencyKey. Pass atomic: false to commit each statement on its own. A failure then names the statements that already committed and says to resend only from the failed statement, or to reuse the same idempotencyKey. A single statement that reaches 30 seconds is STATEMENT_TIMEOUT. The script stops at 60 seconds with SCRIPT_TIMEOUT. A deadlock sets retryable and says to retry the same request. A large write keeps one snapshot and can be undone. A history list of that change may say undo may conflict until undo checks every row. CREATE TABLE with no spaceId lands in the default space, which starts named General. A renamed default keeps its name. Writing there is fine when that space is the only user space, or when the plan cannot add another space. When another space is possible, make a dedicated space for the project and pass spaceId. When context.fullAccess is true, create the workspace and the space yourself, unless the workspace is already at its space limit and the only user space is the default: then use that space and do not create another. Otherwise call spaces_create; if it returns an error, call request_access with manage_spaces, then pass workspace with its slug and spaceId for an existing space. Only the account owner can create a workspace. Tell the user to ask the account owner. "Create workspaces" cannot be granted from this workspace. It stays with Allow everything or account settings. request_access cannot add it. A table created in the default space includes hint. The result includes connection so the answer can be attributed to this connection's workspace. context returns the same summary as scope, including the spaces on this grant and the access level. If the user names a different workspace, don't use this connection. This description is the same for every connection. The server instructions name the account, workspace, and spaces.
execute
Export the whole workspace and retained history within this connection's access. This needs the export capability and unrestricted workspace read. Check scope: permission-limited snapshots omit restricted data and metadata and are not complete backups. Size limits fail the request instead of truncating it. HTTP and the CLI return the snapshot. MCP returns a download link and does not inline the snapshot. To export one table or a query, use COPY ... TO 'adoor://new' in query; that uses ordinary read permission on the tables the query touches.
export
Read retained history, newest first. Pass id to inspect one change. You can read and inspect your own changes. Someone else's row images need the recover capability. Row images are paged: with id, limit is 1 to 100 and defaults to 50, and cursor is the previous nextCursor. A value larger than 8 KiB is a preview with truncated true. before and after are the images. beforeJson and afterJson are not returned. Read a live value with substr(column, start, 262144). start is 1-based. That chunk is 256 KiB of text, at most 1 MiB of UTF-8, and is returned whole. A longer substr is truncated again. changeCount is the number of retained rows. Pass before and limit to list pages. A list limit is from 1 to 100 and defaults to 100. Read-only queries are omitted from the list. Pass reads true to include them. Those query events stay in the usage ledger either way. Inspecting one event by id still returns a query event. Pass table for that table's current name. The match is case-insensitive and uses that live table's id, so a dropped table that used the same name stays out. Pass tableId to list one table, including one that was dropped. A missing table, a dropped table passed by its old name, and a table this connection cannot see are all Table not found. A name like space.table is an error; pass spaceId to limit one space. Each event includes tableId when the change belongs to one table, plus connectionId and actorLabel. actorLabel is the connection name, the access level derived from that grant, and the first 8 characters of the connection id. Events on a dropped table have canUndo false. For an event of at most 64 retained rows, canUndo is false when a later edit of the same row, a type change, a required field, a unique collision, or a truncate would reject the undo, and undoReason names that cause. A dropped field that still leaves columns to restore stays undoable, and undoReason names the omitted fields. canUndo does not read the live row. It compares the columns that were in the event image, by attnum, so a column added later does not by itself reject the undo, including a default that is different on each existing row. A later change to that column still rejects undoing the insert, because that would delete the row. A change above the undo limit has canUndo false. note and undoReason both name that size. The result sets truncated, nextCursor and rowCount. Events this connection cannot see are skipped before the page is filled. A page is shorter than limit only when no further visible event remains, and truncated is false only then. When more visible events remain, including after hidden ones, truncated is true and nextCursor is the before value for the next page. A page is ordered by event id. Connections see their own changes. You can undo your own changes. Row images and undo marks for someone else's changes need recover. A DROP TABLE event is included in the workspace list, in that space, and under the dropped table's tableId, including when the same name exists in another space. When canUndo is false because this grant lacks the delete permission, undoReason names that permission. Legacy images compare a stored number and the same value stored as text as one value, matching undo. A list reads the row count from the usage ledger. A missing count stops after 65 row-history index entries and does not read every image of a large change. A later edit of the same row is found by that row's id. The list does not read the other rows of a later change, and it does not return row images. Row images are read when one change is opened. An event with more than 64 retained rows reads one sample image for a schema block. When that sample does not block undo, canUndo is unknown, because a later edit of another row can still conflict. Undo checks every row. A large write keeps one snapshot and can be undone. A history list of that change may say undo may conflict until undo checks every row.
history
Stages bytes from the client file object for COPY. The file object has download_url and file_id. import accepts ChatGPT files from files.oaiusercontent.com only. A Claude, Grok, or Muse URL is refused with FILE_URL_NOT_ALLOWED and is not fetched. A Claude or Grok conversation export inside that ChatGPT file is normalized under the same ceilings: 32 MiB download, 64 MiB of normalized JSON, 100000 conversations, and 1000000 messages. A ChatGPT export, CSV, and any other unrecognized file are staged unchanged. The result has transfer_id, an adoor:// URI, bytes, and SHA-256. Recognized exports also have format, conversations, and messages. Rows are not inserted. COPY FROM the returned URI loads the staged bytes. A completed COPY deletes the staged bytes. Otherwise they expire after six hours. SELECT adoor_file('close', '<transfer_id>') deletes them immediately. Pass spaceId to stage the file for one space. An archived space is refused with SPACE_ARCHIVED before a transfer is opened and before transfer quota is used. When spaceId is omitted, that same refusal applies when every space this connection can insert into is archived. openWorldHint is true because the file is downloaded from a ChatGPT file on files.oaiusercontent.com. import accepts ChatGPT files only. A Claude, Grok, or Muse URL is refused with FILE_URL_NOT_ALLOWED. Rows are not inserted.
import
Invite a person to this workspace by email. Needs manage_members. role is owner, editor, or viewer. Omitting role and permissions invites a viewer. A pending invitation to the same address is kept. A different role updates it, and the notice names the new role. No second email is sent. A permission that names a table is refused when that table does not exist. The result has url and no invitation token. A missing capability names request_access.
invite_member
Leave this workspace. No management capability is required. The last owner is refused.
leave_workspace
List access requests in this workspace that this connection can inspect or act on. Needs inspect_access or manage_connections. status is pending (the default), approved, denied, cancelled, or expired. A permission that names a space or table this connection cannot see is returned as hidden, with its actions and without that name.
list_access_requests
List pending invitations addressed to this account's verified email. Needs account_workspaces. Each row names that workspace. Invitations for any other email are omitted.
list_invitations
List foreign-key references this connection can see. Pass spaceId to limit the list to one space. A hidden field hides the relationship. Nothing is changed.
list_references
Move a table into another space in this workspace. Needs manage_spaces, manage_connections, and write access in both spaces. Moving a table into a space shares it with every connection that already has that space. The result names who gains access. The move needs manage_connections. A named grant follows the table. A grant on the space it left no longer covers it. Pass preview true to list who gains access and who loses it without moving. Pass confirm true to move when someone gains access. A table or space this connection cannot see is not found, and its name is not returned.
move_table
Permanently delete one table from Recently deleted, or all of it. Pass id from tables_deleted, or all true, not both. On Free, dropped tables and truncated copies stop counting toward the storage allowance immediately. Pro does not count them toward its storage cap. Permanently delete… this can't be undone. Restore and undo will not bring the data back. Requires purge_deleted_tables. Regular access does not include it. Allow everything does.
tables_purge
Calls the ADoor API. Documentation: https://adoor.halmoslabs.com/docs/reference/mcp/. Run native PostgreSQL SELECT statements, including joins, expressions, CTEs and aggregates, or COPY a table or query TO 'adoor://new'. COPY TO uses ordinary read permission on the tables the query touches, including a single table or a filtered subset, and returns a download. The summary says how many rows were exported. It does not require the export capability. Row permissions and strict field errors are enforced by the database. Every SELECT response returns at most 1000 rows and sets truncated, nextCursor and rowCount. A page also ends when its JSON reaches 16 MiB and returns nextCursor, instead of a 422. A single row larger than that page is returned alone. A value larger than 8 KiB is { truncated: true, bytes, preview, column, chunk, read }. Read the rest with substr(column, start, 262144). start is 1-based. That chunk is 256 KiB of text, at most 1 MiB of UTF-8, and is returned whole. A longer substr is truncated again. Selecting the column again returns the same preview. MCP defaults to 100 when limit and a constant SQL LIMIT are both absent. HTTP, the CLI and the SDK default to 1000. The SDK and the CLI follow nextCursor. A constant SQL LIMIT of 1000 or less is kept and truncated is false. A larger SQL LIMIT is paged at 1000. A page without ORDER BY can repeat or skip rows when other writes commit; ORDER BY a unique key. Multiple statements return ordered results and stop on the first error; each runs independently with current permissions. Nothing was written. The result includes connection so the answer can be attributed to this connection's workspace. context returns the same summary as scope, including the spaces on this grant and the access level. If the user names a different workspace, don't use this connection. This description is the same for every connection. The server instructions name the account, workspace, and spaces.
query
Read this account's id, display name, and email. Needs account_profile. The display name is the only profile field that changes immediately.
get_account
Read the current plan and storage allowance. Needs manage_billing. No card data is returned.
get_billing
Read usage against the plan caps. Needs inspect_access. period is YYYY-MM. Omit it for the current period. No card data is returned.
get_usage
List tables the owner deleted in the last 30 days. Each row has id, name, spaceId, droppedAt, purgeAfter, and rowCount. open.count is every unrestored trash row, including truncated copies that are not listed as tables. open.bytes is the Recently deleted bytes. On Free those bytes count toward the storage allowance. Pro counts live tables only. After 30 days the table is gone. Requires list_deleted_tables. Regular access does not include it. Allow everything does.
tables_deleted
Remove a person from this workspace and revoke that identity. Needs manage_members. A connection can invite people but cannot remove or change members: the workspace owner does that. id is the person's account id or their connection id.
remove_member
Remove a foreign-key reference and keep the field and the rows. Needs drop_reference in both spaces and read access to both fields. A reference this connection cannot see is not found.
remove_reference
Rename a space this connection can see. Needs manage_spaces. The short name stays. A space this connection cannot see is not found, and its name is not returned.
rename_space
Rename this workspace or change its personal or team label. Needs manage_workspace. A missing capability names request_access.
rename_workspace
Change this account's display name. Needs account_profile. That is the only profile field changed immediately. Email is not accepted here.
rename_account
When the person asks for more access for this connection, including "full access", "Allow everything", "manage my other connections", or "see who has access", call request_access with the closest grant, then give the person the approve link. inspect_access is the power to see every connection and who has access. manage_connections is the power to manage this connection and the connections it creates. No capability lets a connection change the person's other connections, so for "manage my other connections" ask for inspect_access and manage_connections and say that changing the other connections stays with the person on the Access page. Allow everything itself cannot be approved from a request: request_access files the closest powers, and the approve link is the next step. Request expanded authority through a prefilled human approval link. Name the access to add. Existing permissions and capabilities are kept. A request with no permissions, no capabilities and no moreSpaces is rejected. A capability alone, or moreSpaces alone with permissions [], is valid. Approval can only widen access. Name a space only when you can already see it. For a space you cannot see, send moreSpaces with the per-space grant (table or *, actions, and optional field or row limits) and no space id. The approving person chooses which spaces to include and can narrow the added grant. query, execute, context, history, undo, export, and request_access are always listed. Workspace and space tools, including spaces_create, spaces_archive, and spaces_unarchive, are always listed too. Sharing, organizing, billing, and account changes are separate tools, one per operation. import is listed for ChatGPT only. A call without the grant returns an error that names request_access. Allow everything can do anything this user can, including account, member, space, workspace, and billing changes. Regular can read, write, import, undo, and history in one space. It cannot drop tables or wipe undo history. It cannot read another space, and a field its grant leaves out stays denied. It refuses account settings, members, invites, billing, deleting workspaces, and creating a space, and the error names request_access. Cautious can read that one space. Another space or anything more uses this tool and a one-tap approval link. A capability is requested the same way and applies only after a person approves it. Delete cannot share an entry with a field list. That entry is refused: Delete access cannot include field restrictions. Use a separate delete permission. The same pending request returns its approve link and stores no second row. Within two minutes, a narrower ask returns that pending request and its approve link instead of RATE_LIMITED. After that window a narrower ask is stored. Within two minutes of a denial, asking again for that grant or a narrower one returns RATE_LIMITED and does not store another request. The message is You already asked recently; try again in N seconds, with N rounded up. A broader request is still accepted. This request grants nothing. The result leads with url (kind approval). approvalUrl is the same link. addedPermissions and addedCapabilities name only what this call adds. permissions is the full grant approval would apply. A duplicate pending request keeps that link and the previous reason, and the message says the previous reason was kept. A denied request and its link are never reused. Asking again after a denial files a new pending request with a new link, and the result says the previous request was denied. Every request carries statusText, one plain sentence for its status; repeat it instead of guessing from the status field.
request_access
Email a pending invitation again and replace its link. The new link expires seven days after this resend. Needs manage_members. The previous link stops working. The result says whether the email went out. No invitation token is returned.
resend_invitation
Approve or deny someone else's pending access request. Needs manage_connections. This connection cannot approve its own request, an ancestor, or a descendant session. That case returns the approval link and changes nothing. Optional permissions and capabilities can only narrow the grant.
resolve_access_request
Restore one table from Recently deleted. Pass id from tables_deleted. Pass name when the old name is taken. A name clash returns TABLE_EXISTS and changes nothing. Requires restore_deleted_tables. Regular access does not include it. Allow everything does.
tables_restore
Restore an archived space. It counts toward the space plan limit again and accepts changes. Restoring a space past that limit is rejected and nothing changes. Unarchiving a space that is already active changes nothing and says so. This needs manage_spaces and workspace-wide data scope, the same rule as creating a space.
spaces_unarchive
Revoke a connection for good: this connection or one it created. If more than one could match, ask the person which, by its shown name. Revoking the connection you are using takes two calls. The first changes nothing and returns a one-time confirmationToken. Ask the person to confirm, then call again with this token within 2 minutes. confirm: true alone does not revoke it. Revoking a connection this connection created needs no token.
revoke_connection
Revoke a pending invitation so its link stops working. Needs manage_members. No token is returned.
revoke_invitation
You can undo your own changes. Reverse one retained change, or pass ids to reverse several made by this connection. Ownership is the connection. A later grant change does not move earlier events to another connection. The current grant still has to allow write access to the columns that change touched. Undoing an insert requires the delete permission. It does not need read access to the whole table or to every column, and it does not need the recover capability when every event is this connection's. Another connection's changes, a human's changes, and a batch that mixes both need the recover capability. For a caller without recover, another connection's event is refused and names the recover capability. A missing event stays not found. A mixed batch changes nothing and does not name those events. A later edit that would be overwritten is left unchanged and nothing is committed. A column added later is left in place, including a default that is different on each existing row. Undoing an insert still stops when a later change wrote that column, because the row would be deleted. A field dropped after the change is omitted and named in droppedFields. A later type change, required field, unique rule, or truncate blocks the undo and names that reason. A change of at most 10000 changed rows is restored from row images, in chunks inside one transaction. A larger change, or one whose images would pass 80 MiB, is restored from one snapshot. If the restoration runs out of time, nothing is changed and the error says it took too long. A history list of a large change may say undo may conflict until undo checks every row. Several changes that are each undoable but together exceed 1000 rows or 8 MiB are refused, and the error says to undo them separately. Pass id from history, or ids. ids are reversed newest first.
undo
Replace a connection's permissions and optional capabilities. Pass this connection's own id to remove its access. Another connection needs manage_connections and must be one this connection created. More access goes through request_access. If more than one connection could match, ask the person which, by its shown name. permissions is required.
update_connection
Change a member's role, permissions, or capabilities, or the grant on a pending invitation. Needs manage_members. A connection can change a pending invitation it sent but cannot change members: the workspace owner does that. Pass at least one of role, permissions, or capabilities. Updating a pending invitation keeps the same link and sends no email. A permission that names a missing table is refused.
update_member
Which account and workspace am I connected as? Lists the signed-in account and every workspace this connection can open, with names and slugs. Pass workspace with a slug on any tool to switch workspace. When this connection cannot write, the message says to call request_access for insert or update. Pass table to describe one table: each column has name, type, nullable, and default. Hidden fields are omitted. default is null when this connection cannot read that field. Read this connection, the current workspace, every space it can see, and the table names in each space, its permissions, and the expiry clocks. Columns, rules, and indexes are not in this overview. effectiveExpiresAt is the earliest of this connection's expiresAt, each ancestor connection's expiresAt, the access credential's expiresAt, and a browser sign-in session's expiresAt when this call has one. A permission grant has no clock. An OAuth access token lasts 1 hour and is refreshed. The overview includes every visible space, with its name, slug, whether it is the default, whether it is archived, its table count, and the table names in that space. connections is a count and the query adoor_connections only when this connection can read that catalog. In the list form, revoked connections are left out and counted as revokedConnectionCount; listing connections with includeRevoked true reads them. Otherwise connections lists the visible rows and omits each stored grant. accessRequests is a count and omits each request's stored grant. list_access_requests lists pending requests. receivedInvitations is a count. list_invitations lists invitations addressed to this account, not invitations this connection sent. members, installations, and sent invitations are the full lists this connection can see, and each row omits its stored grant. omitted names a field this connection cannot see and the next step. connections and people are included only when this connection can see them. No secret is included. installations lists apps in this workspace when this connection can see them. sessions lists active, unexpired task sessions this connection can see. Expired and revoked sessions are omitted. No tool lists those. deniedAccessRequests lists this connection's own denied requests. status is denied. They are not pending. The message says to call request_access with a different reason. When the only user space is the default space, the message says writing there is fine. When the plan can add a space, it suggests a dedicated space. When full access is at the space limit, the message names that default space and says no new space was created. When access is Allow everything, this connection can do anything this user can, including account, member, space, workspace, and billing changes, and workspaces created later. accessGuidance names the tier. Regular can read, write, import, undo, and history in one space. It cannot drop tables or wipe undo history. It cannot read another space, and a field its grant leaves out stays denied. It refuses account settings, members, invites, billing, deleting workspaces, and creating a space, and the error says to call request_access. Cautious can read that one space, and anything more uses request_access. Only the user can choose Allow everything on the consent screen. This connection cannot grant itself more access. scope names this connection's workspace, the spaces on its grant, and its access level (Allow everything, Regular, Cautious, or Limited). If the user names a different workspace, don't use this connection.
context
Read-only profile for this connection. id is a stable account id. It does not change when the connection is refreshed, reconnected, or its access changes, and it is not an email address. name, email, and nickname are included when this account has them. nickname is the account name and the workspace name.
whoami
ADoor ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve ADoor's ChatGPT Plugin 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.
What are ADoor alternatives on ChatGPT?
As of 2026-11-02, ADoor competes with ActivityInfo.org, AnyDB, BOLDR MAX, Congrava, Dreambooth Studio, Everyn, Exportlab, Fornada and 11 more in ChatGPT Business Data & Low-Code Apps, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.