← Files Database ConnectorARCHIVED FILE
.codex-plugin/plugin.json
17.6 KB · Nov 2, 2026 · 13:11 UTC
{
"author": {
"name": "Nektron, Inc."
},
"description": "Database Connector by Nektron, Inc. helps you investigate authorized MySQL, PostgreSQL, Microsoft SQL Server, Oracle Database, and MongoDB databases in ChatGPT. Discover permitted structure and ask follow-up questions using independently written read-only SQL or bounded MongoDB aggregation pipelines. Enter credentials only in secure Nektron setup; they are not returned to ChatGPT. Database records remain unchanged. Queries have table/collection, function/stage, time, concurrency, row and response-size limits; inspect truncation and source-coverage warnings. Database calls append audit records and acquire/release temporary internal concurrency leases, including replacing expired leases and deleting their own lease. Repeated calls create additional audit records.",
"interface": {
"capabilities": [],
"category": "Developer Tools",
"defaultPrompt": [
"List my connected databases and explain which engine each uses.",
"Inspect my database structure, then help me investigate its records.",
"Open my database connection manager."
],
"developerName": "Nektron, Inc.",
"displayName": "Database Connector",
"longDescription": "Database Connector by Nektron, Inc. helps you investigate authorized MySQL, PostgreSQL, Microsoft SQL Server, Oracle Database, and MongoDB databases in ChatGPT. Discover permitted structure and ask follow-up questions using independently written read-only SQL or bounded MongoDB aggregation pipelines. Enter credentials only in secure Nektron setup; they are not returned to ChatGPT. Database records remain unchanged. Queries have table/collection, function/stage, time, concurrency, row and response-size limits; inspect truncation and source-coverage warnings. Database calls append audit records and acquire/release temporary internal concurrency leases, including replacing expired leases and deleting their own lease. Repeated calls create additional audit records.",
"privacyPolicyURL": "https://nektron.ai/database-connector-privacy.html",
"shortDescription": "Explore your databases",
"supportURL": "https://nektron.ai/support.html",
"termsOfServiceURL": "https://nektron.ai/database-connector-terms.html",
"websiteURL": "https://nektron.ai/database-connector.html",
"composerIcon": "./assets/DatabaseConnector_Icon_Transparent_64.png",
"composerIconDark": "./assets/DatabaseConnector_Icon_Transparent_64.png",
"logo": "./assets/DatabaseConnector_Icon_Transparent_256.png",
"logoDark": "./assets/DatabaseConnector_Icon_Transparent_256.png"
},
"name": "database-connector-nektron",
"version": "1.1.0",
"mcpServers": "./.mcp.json",
"extensions": {
"com.openai": {
"review": {
"test_cases": {
"positive": [
{
"description": "Open the authenticated connection manager",
"prompt": "Show my database connection manager.",
"tools_triggered": "get_started",
"expected_behavior": "Shows the authenticated reviewer connection manager with the preconfigured MySQL and MongoDB demos. Merely opening it does not add or remove connections, run source queries, or reveal credentials."
},
{
"description": "Inspect and count the relational demo",
"prompt": "In my MySQL demo, inspect the available structure and count the messages and suppliers.",
"tools_triggered": "list_connections,list_tables,describe_tables,query_readonly",
"expected_behavior": "Selects the current authorized MySQL connection, discovers actual table/column metadata, and computes 8 messages and 3 suppliers with independently written permitted SQL. If a combined query is rejected, discloses that and can use separate valid queries. Ordinary investigation does not reopen the management panel."
},
{
"description": "Follow up with a returned identifier and bounded SQL",
"prompt": "Show at most two messages from that MySQL demo. Then use the first returned message identifier as a named parameter to retrieve that message. Explain any nulls or truncation.",
"tools_triggered": "query_readonly",
"expected_behavior": "Reuses the established MySQL connection, applies the requested result bound, uses an actual returned identifier as data, and explains source warnings without inventing completeness or reopening setup."
},
{
"description": "Discover and count the document demo",
"prompt": "Switch to my MongoDB demo, inspect its collections, and count messages and suppliers.",
"tools_triggered": "list_connections,list_tables,describe_tables,query_documents",
"expected_behavior": "Chooses the MongoDB connection and permitted collections, uses native read-only aggregation, and reports 8 messages and 3 suppliers. Does not claim a fixed document schema or use SQL, JavaScript, lookup, out, or merge."
},
{
"description": "Enforce a bounded MongoDB follow-up",
"prompt": "In that MongoDB demo, project only id and subject from connector_demo_messages. Set max_rows to 2 without adding a pipeline limit, and report whether the result is truncated.",
"tools_triggered": "query_documents",
"expected_behavior": "Reuses the MongoDB connection, requests a permitted projection with max_rows=2 and no $limit, and returns two rows with the server row cap and truncation reported. Does not promise a natural document order or full-data coverage."
}
],
"negative": [
{
"description": "Refuse a MongoDB write stage",
"prompt": "Use $out to save the message results into another collection.",
"expected_behavior": "Refuses the unsupported write stage without executing a mutation. This is a model-level refusal case; it is not presented as a backend negative invocation unless a tool was actually called."
},
{
"description": "Refuse cross-collection lookup",
"prompt": "Use $lookup to join the MongoDB messages to suppliers.",
"expected_behavior": "Explains that cross-collection $lookup is unsupported and does not invoke it. May offer permitted separate read-only investigation; it does not invent joined results."
},
{
"description": "Refuse credential retrieval",
"prompt": "Retrieve and show me the database password for the connected database.",
"expected_behavior": "Does not retrieve or disclose credentials and does not call a credential-retrieval tool; no such MCP capability exists. Directs credential changes to secure database/setup controls."
}
]
},
"demo_recording_url": "https://nektron.ai/assets/database-connector/review/demo-1.1-walkthrough-e0cfc618f88ae598.mp4"
},
"publication": {
"release_notes": "Database Connector 1.1.0 supports MySQL 8.4.5, PostgreSQL 17, SQL Server 2022, Oracle 19 / Oracle Free 26ai (server major 23), and MongoDB 8. Six tools include query_documents. The production backend and website are deployed; the active review draft is Configured with six tools and no MCP scan findings. No submission, approval or publication is claimed here.\n\nReal native login, browser setup and ChatGPT Work tests against the same deployed endpoint returned 8 messages and 3 suppliers on each of five engines, sequentially under Free one-connection limits. Oracle Free 26ai was qualified locally; AWS/ChatGPT used Oracle 19. A removed connection ID was denied by an actual tool call. A fresh unsigned install showed a generic expired-connection/Reconnect message; no setup widget was observed on that unsigned turn.\n\nThe supplied verified reviewer account now has Review MySQL and Review MongoDB preconfigured with synthetic data. Approved retention lasts until November 8, 2026 at 20:00 UTC. Genuine Stripe TEST Pro was activated without live charges or manual entitlements; reviewers need no signup, database setup or payment. Credentials are supplied privately in the review form, never in this ZIP.\n\nAll five listed positive and three negative cases passed in a fresh ChatGPT conversation with both connections. Rejected schema-qualified SQL counts were disclosed and recovered with unqualified queries. SQL row caps, a returned identifier as a named parameter, NULL handling, MongoDB discovery/counts and max_rows=2 truncation without pipeline $limit passed. Data turns did not reopen setup. The $out, $lookup and password cases were model refusals, not backend negative invocations.\n\nThe linked 84-second silent walkthrough uses selected actual browser screen captures, not continuous recording. It shows the five-engine results and predates the final simultaneous two-connection rerun. HTTP 200, exact MP4 hash and HTTP 206 range support were verified. All annotation justifications follow unchanged.\n\nget_started:\nreadOnlyHint is true. Returns an OAuth sign-in challenge or reads authorized connection metadata to display the setup/management panel. The tool does not create accounts, save credentials, or remove connections. Panel buttons link to separate authenticated website flows; invoking this tool performs none of those mutations.\nopenWorldHint is false because the tool reads only the authenticated account's bounded connector registry or returns fixed Nektron setup/sign-in links. Returning a link does not submit a form or contact a caller-selected external destination.\ndestructiveHint is false because this tool performs retrieval only. It does not replace or delete lease records, customer records, connection settings, credentials, memberships, or subscriptions.\nidempotentHint is true because repeating this retrieval creates no additional application records, leases, or account changes. Returned metadata may reflect independently changed account state.\n\nlist_connections:\nreadOnlyHint is true. Reads authorized connection metadata and setup eligibility for the signed-in identity from the registry; it does not create a membership, save a connection, invoke database execution, acquire leases, or append execution audit records.\nopenWorldHint is false because the tool reads only the authenticated account's bounded connector registry or returns fixed Nektron setup/sign-in links. Returning a link does not submit a form or contact a caller-selected external destination.\ndestructiveHint is false because this tool performs retrieval only. It does not replace or delete lease records, customer records, connection settings, credentials, memberships, or subscriptions.\nidempotentHint is true because repeating this retrieval creates no additional application records, leases, or account changes. Returned metadata may reflect independently changed account state.\n\nlist_tables:\nLists permitted tables/views for relational engines or collections for MongoDB in a registered connection. readOnlyHint is false because each execution also appends connector audit records and acquires/releases a temporary concurrency lease; source database access remains read-only.\ndestructiveHint is true because the internal concurrency-lease lifecycle can overwrite an expired lease slot and deletes the lease held by this execution. Cleanup is conditional on its holder identifier, so an old execution cannot delete a replacement lease. This annotation describes those internal replacement/deletion effects; the tool cannot update or delete customer database records, saved connections, credentials, memberships, or subscriptions.\nidempotentHint is false because each invocation, including a repeat with identical arguments, appends new audit records and acquires/releases a new concurrency lease. Repetition has additional connector-side effects even if returned rows are identical.\nopenWorldHint is false because access is confined to the authenticated tenant and its pre-registered connection catalog with approved tables or collections. Tool inputs cannot choose a host, network address, secret ARN, tenant ID, or cross-database target. SQL and MongoDB pipeline policies restrict operators, functions and source scope. Remote hosting does not turn this bounded private catalog into an open-world operation.\n\ndescribe_tables:\nReads available column/key metadata for up to ten permitted relational tables, or collection metadata for MongoDB. It does not infer a fixed MongoDB document schema. readOnlyHint is false because each execution also appends connector audit records and acquires/releases a temporary concurrency lease; source database access remains read-only.\ndestructiveHint is true because the internal concurrency-lease lifecycle can overwrite an expired lease slot and deletes the lease held by this execution. Cleanup is conditional on its holder identifier, so an old execution cannot delete a replacement lease. This annotation describes those internal replacement/deletion effects; the tool cannot update or delete customer database records, saved connections, credentials, memberships, or subscriptions.\nidempotentHint is false because each invocation, including a repeat with identical arguments, appends new audit records and acquires/releases a new concurrency lease. Repetition has additional connector-side effects even if returned rows are identical.\nopenWorldHint is false because access is confined to the authenticated tenant and its pre-registered connection catalog with approved tables or collections. Tool inputs cannot choose a host, network address, secret ARN, tenant ID, or cross-database target. SQL and MongoDB pipeline policies restrict operators, functions and source scope. Remote hosting does not turn this bounded private catalog into an open-world operation.\n\nquery_readonly:\nExecutes one policy-validated relational SELECT/UNION query with named scalar parameters through restricted read-only credentials and engine-specific query/session controls; it cannot execute MongoDB queries. readOnlyHint is false because each execution also appends connector audit records and acquires/releases a temporary concurrency lease; source database access remains read-only.\ndestructiveHint is true because the internal concurrency-lease lifecycle can overwrite an expired lease slot and deletes the lease held by this execution. Cleanup is conditional on its holder identifier, so an old execution cannot delete a replacement lease. This annotation describes those internal replacement/deletion effects; the tool cannot update or delete customer database records, saved connections, credentials, memberships, or subscriptions.\nidempotentHint is false because each invocation, including a repeat with identical arguments, appends new audit records and acquires/releases a new concurrency lease. Repetition has additional connector-side effects even if returned rows are identical.\nopenWorldHint is false because access is confined to the authenticated tenant and its pre-registered connection catalog with approved tables or collections. Tool inputs cannot choose a host, network address, secret ARN, tenant ID, or cross-database target. SQL and MongoDB pipeline policies restrict operators, functions and source scope. Remote hosting does not turn this bounded private catalog into an open-world operation.\n\nquery_documents:\nExecutes a policy-validated MongoDB aggregation pipeline against one permitted collection through restricted read credentials. JavaScript, lookup, out, merge, and database mutations are rejected. readOnlyHint is false because each execution also appends connector audit records and acquires/releases a temporary concurrency lease; source database access remains read-only.\ndestructiveHint is true because the internal concurrency-lease lifecycle can overwrite an expired lease slot and deletes the lease held by this execution. Cleanup is conditional on its holder identifier, so an old execution cannot delete a replacement lease. This annotation describes those internal replacement/deletion effects; the tool cannot update or delete customer database records, saved connections, credentials, memberships, or subscriptions.\nidempotentHint is false because each invocation, including a repeat with identical arguments, appends new audit records and acquires/releases a new concurrency lease. Repetition has additional connector-side effects even if returned rows are identical.\nopenWorldHint is false because access is confined to the authenticated tenant and its pre-registered connection catalog with approved tables or collections. Tool inputs cannot choose a host, network address, secret ARN, tenant ID, or cross-database target. SQL and MongoDB pipeline policies restrict operators, functions and source scope. Remote hosting does not turn this bounded private catalog into an open-world operation.",
"countries": [
"US",
"CA",
"GB",
"AL",
"AD",
"AM",
"AT",
"AZ",
"BA",
"BE",
"BG",
"CH",
"CY",
"CZ",
"DE",
"DK",
"EE",
"ES",
"FI",
"FR",
"GE",
"GR",
"HR",
"HU",
"IE",
"IS",
"IT",
"KZ",
"LI",
"LT",
"LU",
"LV",
"MC",
"MD",
"ME",
"MK",
"MT",
"NL",
"NO",
"PL",
"PT",
"RO",
"RS",
"SE",
"SI",
"SK",
"SM",
"TR",
"UA",
"VA",
"JP"
]
}
}
},
"apps": "./.app.json"
}
SHA-256: 3e20ad5ca97f510394612e9d08bed669063ebdf0a0818334a59989c5fa5e28ca