Skip to main content
Glama
772,272 tools. Updated 2026-11-12 14:21

"Information about PostgreSQL database" matching MCP tools:

  • Turn raw EXPLAIN output into a plain-language diagnosis — no query needed. Paste PostgreSQL EXPLAIN / EXPLAIN ANALYZE (text or JSON) or MySQL EXPLAIN (tabular, \G, FORMAT=JSON, FORMAT=TREE) and get: what the planner is doing step by step, where the cost concentrates, named risk findings (full scans, spilling sorts, nested-loop blowups, row misestimates) with index suggestions, and what to look at next. Use when the user pastes EXPLAIN output or asks 'can you read this plan'. Input is analyzed in memory and never stored.
    ConnectorOAuth
  • Change what a site's docroot IS, without deleting anything. Types: wordpress WordPress, PHP and a database (the default) php PHP and a database, no WordPress php-nodb PHP, no database static-site HTML/CSS/JS only, no PHP and no database ⚠ NON-DESTRUCTIVE. Existing files stay on disk and existing databases are not dropped. They remain the customer's data and keep counting against their plan's quota — this changes how the site is SERVED, not what it holds. Converting back later finds everything where it was. ⚠ Moving to a type without PHP does not merely stop executing .php — it stops serving them. The vhost returns 404 for php/phtml, because falling through to the static handler would return the file's SOURCE, and a docroot converted from WordPress still contains wp-config.php with the database password in it. Shared hosting only. On a VPS the whole container is the customer's and they reconfigure it with the tools inside it. Requires: API key with write scope. Args: slug: Site identifier site_type: One of the four values above Returns: {"from": "wordpress", "to": "static-site", "database_created": false, "placeholder_seeded": false, "pool_removed": true} `placeholder_seeded` is true only when the docroot was EMPTY — an existing site's content is never overwritten. Errors: VALIDATION_ERROR: Unknown type, or the site is not on shared hosting NOT_FOUND: Unknown slug or not reachable by this account
    ConnectorNo auth
  • Decode a database error and get the fix and the next step — no connection needed. Paste a MySQL error number (1213, 1062, 1452, 1205…) or a PostgreSQL SQLSTATE (40P01, 23505, 53300…), optionally with the failing statement, and get the proximate cause, the concrete fix, and — when it helps — the SIXTA tool and artifact to go deeper (e.g. a deadlock → paste SHOW ENGINE INNODB STATUS for sixta_explain_deadlock). Use when the user pastes a DB error code or message. Input is analyzed in memory and never stored.
    ConnectorOAuth
  • Retrieve The Hill Kinabalu’s official public wedding venue and 2026/2027 package information, including capacity, event sizes, starting package prices, key inclusions, add-ons without prices, payment structures, and enquiry links. Use this when someone asks about weddings, wedding packages, the event venue, guest capacity, package pricing, or how to enquire. This tool does not check date availability or submit an enquiry.
    ConnectorNo auth
  • Get retweets of specific post. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Database-only. Results include guidance for full mode. PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. Database-only search for historical retweet data. Date filter: OMIT startDate by default. ONLY pass if user explicitly requests filtering from specific date (YYYY-MM-DD format). IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. Use to analyze post amplification patterns. NOT for quotes - use getTwitterPostQuotes. Optional fields parameter for performance: ["id", "authorUsername", "createdAt"]. This is a safe, read-only tool for analyzing searchable information.
    ConnectorOAuth
  • Run ONE bounded read against a site's database. One statement, beginning with SELECT, SHOW, DESCRIBE or EXPLAIN, with no second statement and no data-modifying clause anywhere in it. The container proves the statement is a read before running it and caps the result: 200 rows by default, 1000 maximum, 2 MB of cell data. `truncated` in the response says whether a cap was reached. ⚠ THIS TOOL CANNOT CHANGE ANYTHING, AND RETRYING WITH DIFFERENT WORDING WILL NOT MAKE IT. Anything that is not a single bounded read is refused with READ_ONLY and nothing runs. To change data or schema, use the tool for the job: optimize_database, database_search_replace, manage_db_user, list_databases, list_tables — and for creating, altering, dropping, importing or exporting tables, the database manager in the control panel, which has no tool here. Requires: API key with write scope (unchanged — the scope is the customer's published permission for this operation, not a claim about what it does). Args: slug: Site identifier database: Database name query: One read statement Returns: {"columns": ["id", "user_email"], "rows": [[1, "a@example.com"], ...], "row_count": 1, "truncated": false, "execution_time_ms": 12.0} Errors: READ_ONLY: Not a single bounded read. The error text carries the explanation and names the operation to use instead.
    ConnectorNo auth

Matching MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that provides information about Utkarsh, including bio, skills, work experience, and portfolio projects, accessible via local stdio or remote HTTP with OAuth.
    6
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    An MCP (Model Context Protocol) server that gives AI agents live, structured ad intelligence across Facebook, Google, and Instagram — data that no base model can produce from training alone. Powered by Apify actors. Works with any MCP-compatible client: Cursor, Claude, etc.
    11
    -

Matching MCP Connectors

  • Hosted PostgreSQL MCP server for Claude, ChatGPT and Cursor, with each action switched per account.

  • About Bureau, the self-hosted office for AI agents: overview, FAQ search, roadmap, install.

  • Create a database user for a Cloud SQL instance. * This tool returns a long-running operation. Use the `get_operation` tool to poll its status until the operation completes. * When you use the `create_user` tool, specify the type of user: `CLOUD_IAM_USER`, `CLOUD_IAM_SERVICE_ACCOUNT`, or `BUILT_IN`. * By default the newly created user is assigned the `cloudsqlsuperuser` role, unless you specify other database roles explicitly in the request. * You can use a newly created user with the `execute_sql` tool if the user is a currently logged in IAM user. The `execute_sql` tool executes the SQL statements using the privileges of the database user logged in using IAM database authentication. The `create_user` tool has the following limitations: * To create a built-in user with password, use the `password_secret_version` field to provide password using the Google Cloud Secret Manager. The value of `password_secret_version` should be the resource name of the secret version, like `projects/12345/locations/us-central1/secrets/my-password-secret/versions/1` or `projects/12345/locations/us-central1/secrets/my-password-secret/versions/latest`. The caller needs to have `secretmanager.secretVersions.access` permission on the secret version. * The `create_user` tool doesn't support creating a user for SQL Server. To create an IAM user in PostgreSQL: * The database username must be the IAM user's email address and all lowercase. For example, to create user for PostgreSQL IAM user `example-user@example.com`, you can use the following request: ``` { "name": "example-user@example.com", "type": "CLOUD_IAM_USER", "instance":"test-instance", "project": "test-project" } ``` The created database username for the IAM user is `example-user@example.com`. To create an IAM service account in PostgreSQL: * The database username must be created without the `.gserviceaccount.com` suffix even though the full email address for the account is`service-account-name@project-id.iam.gserviceaccount.com`. For example, to create an IAM service account for PostgreSQL you can use the following request format: ``` { "name": "test@test-project.iam", "type": "CLOUD_IAM_SERVICE_ACCOUNT", "instance": "test-instance", "project": "test-project" } ``` The created database username for the IAM service account is `test@test-project.iam`. To create an IAM user or IAM service account in MySQL: * When Cloud SQL for MySQL stores a username, it truncates the @ and the domain name from the user or service account's email address. For example, `example-user@example.com` becomes `example-user`. * For this reason, you can't add two IAM users or service accounts with the same username but different domain names to the same Cloud SQL instance. * For example, to create user for the MySQL IAM user `example-user@example.com`, use the following request: ``` { "name": "example-user@example.com", "type": "CLOUD_IAM_USER", "instance": "test-instance", "project": "test-project" } ``` The created database username for the IAM user is `example-user`. * For example, to create the MySQL IAM service account `service-account-name@project-id.iam.gserviceaccount.com`, use the following request: ``` { "name": "service-account-name@project-id.iam.gserviceaccount.com", "type": "CLOUD_IAM_SERVICE_ACCOUNT", "instance": "test-instance", "project": "test-project" } ``` The created database username for the IAM service account is `service-account-name`.
    ConnectorNo auth
  • Connectivity check that confirms the Nordic MCP server process is responding. Use this at the start of a session to verify the server is reachable before making other calls. Do not use as a proxy for database health — the server can respond while the Qdrant vector database is temporarily unavailable. To confirm data availability, call search_filings directly. Returns: A greeting string: "Hello {name}! Nordic MCP server is running."
    ConnectorNo auth
  • Run a READ-ONLY SQL query against the project's Postgres database (SELECT, EXPLAIN, etc.) — the Floot-managed database, or an external Postgres the user connected to the project. Writes are rejected — use execute_sql for those. Returns JSON: `{rows, rowCount, command, truncated?}` (or `{results: [...]}` for multi-statement queries). Pass `database` only if the project has more than one.
    ConnectorOAuth
  • Get the SSH key for a new connection to a database behind an SSH bastion (jump host), before fastero_create_connection; a database Fastero reaches directly needs none. Fastero makes one Ed25519 key per connection and keeps its private half. Returns sshKeyId, the public key (sshPublicKey) and, when host and port are given, authorizedKeysLine: the line for the SSH user's ~/.ssh/authorized_keys on the bastion, which lets the key reach only that database through the bastion and nothing else. fastero_create_connection then takes the sshKeyId in creds. The same key comes back until a connection uses it or a week has passed. Owners, admins and editors of the organisation can get one.
    ConnectorAPI key
  • How big the Orizn visa database is: pairs, passports, destinations, enriched records, translations and languages. Says nothing about any specific country pair — use quick_visa_check or check_visa_requirement for that. Keyless, free, and costs nothing against any quota. Call it when the user asks how complete the data is, or to confirm this server is reachable before a longer session.
    ConnectorNo auth
  • Run ONE read-only SQL statement against the project's managed PostgreSQL database and return its rows — the same path as the dashboard DB console's read mode. Accepts a single statement starting with SELECT, WITH, EXPLAIN, SHOW, TABLE or VALUES; any ';' other than a trailing one is refused, even inside a string literal. Runs inside a PostgreSQL READ ONLY transaction, so a statement that tries to write fails in the database. Limits: 500 rows (truncated=true past that) and a 5-second statement timeout. Uses the project's own tenant credentials. Use execute_sql for INSERT, UPDATE, DELETE or schema changes.
    ConnectorOAuth
  • Open an interactive ER diagram of a database schema on erddocs.com. Use it when the user wants to see, understand, review or document their database structure, or asks for an ER diagram. Pass the schema text exactly as it is in the project. It reads SQL dumps and DDL (PostgreSQL, MySQL, SQL Server, SQLite), Prisma schema.prisma, DBML, Mermaid erDiagram, PlantUML, Django models.py, SQLAlchemy models, Sequelize models, TypeORM entities and a folder of Laravel migrations (concatenate the files). For SQL, the structure is enough: no INSERT data. Returns a link. The user opens it in a browser and gets the diagram with every table and relation laid out, relations without declared foreign keys found by column name and drawn dashed, and a data dictionary. Nothing is stored on the server: the schema travels inside the link and is parsed in the user's browser. A link holds a schema of a few dozen tables (about 100–200 characters of link per table, depending on comments); for a larger one the tool says so and the user pastes it on erddocs.com instead.
    ConnectorNo auth
  • Roll back one part of a channel to a checkpoint. Use it when the user asks to restore a channel's database or files to an earlier point. State the channel, the checkpoint, and the mode to the user, and call this tool only after the user confirms them. A checkpoint is a row of ``list_channel_snapshots``. ``part`` picks what the restore rewinds. ``database`` starts a restore of the channel's Postgres database and returns at once. The restore runs in the background: it reads the snapshot from its backup, loads it into a new database, and then switches the channel to that database. A restore can take up to an hour; for databases under 10 GB it typically takes minutes. Tell the user this before you start. ``during_restore`` chooses what the app can do while the restore runs: - ``read_only``, the default: the app stays online and reads its database, and every database write fails until the restore ends. - ``maintenance``: the app's addresses show a maintenance page, and every database write fails until the restore ends. xhostd's own page answers HTTP 503, so an uptime monitor reports the app as down during the restore. - ``live``: the app keeps reading and writing its database, with no page, and the switch to the restored database discards every write made during the restore. In every mode, a write made while the restore still waits to start is discarded at the switch. The result's ``notice`` states the chosen mode's effect: relay it to the user. **The user's own maintenance page.** A static channel can serve the page in place of xhostd's, with its own pages, images, and styles: 1. Create a static app (``create_app`` with ``template="static"``), push the page's files, and deploy it. It must belong to the same owner as the restored app. 2. Start the restore with ``during_restore="maintenance"``, and name that channel with ``maintenance_app`` and ``maintenance_channel``. The app's addresses then serve the static channel, which answers with its own status codes: 200 for its pages and 404 for a path it lacks. If the static channel stops or is deleted during the restore, xhostd's own page replaces it within a minute. Don't redeploy the page channel while a restore runs: for up to a minute after the redeploy, requests to the app's addresses fail. A ``maintenance`` restore changes what the app's public addresses serve, so the tool is marked open-world. Read progress with ``get_restore_status(restore_id)``, or give the user ``console_url``, the project's Database page. While the restore is active, a deploy of the channel answers ``restore_in_flight`` (HTTP 409). A failed restore leaves the database unchanged, and ``get_restore_status`` then reports its ``error_code`` and a ``message`` to relay. The call refuses at once, and changes nothing, with: - ``restore_in_flight`` (HTTP 409): a restore of the channel is already active. The message names its id. - ``snapshot_out_of_window`` (HTTP 409): permanent. Pick a newer checkpoint. - ``snapshot_not_found`` or ``snapshot_host_gone`` (HTTP 404): permanent. - ``maintenance_channel_not_found``, ``maintenance_channel_not_static``, or ``maintenance_channel_not_deployed`` (HTTP 400): the page channel belongs to another owner, is not a static app, or is not deployed. ``files`` rewinds every object in the channel's blob store to its state at the checkpoint. The route takes the channel name as ``confirm_channel_name`` to confirm the destructive change; this tool passes the channel name you give, so confirm the channel with the user first. It refuses with ``no_aligned_blob_snapshot`` (HTTP 409) when the checkpoint has no files leg. Pick a row whose ``aligned_blob`` flag is true. For both parts, on the ``prod`` channel this is a PROTECTED ACTION: it answers 403 ``protected_action`` to an agent credential until the app owner turns agent access on in the console. ``files`` refuses with ``channel_busy`` (HTTP 409) if any deploy on the channel is queued or running. ``database`` cancels every deploy and rewind still queued for the channel, and ``cancelled_deploys`` lists their ids: tell the user, and deploy again once the restore ends. A deploy that already runs finishes first, and the restore waits for it. Returns ``{restore_id, status, during_restore, notice, cancelled_deploys, console_url}`` for ``database``, or the updated channel blob-store status for ``files``. Reference: https://docs.xhostd.com/mcp-tools#restore_channel_snapshot
    Connector
    Destructive
    OAuth
  • Return the download link for one part of a channel checkpoint. Use it when the user wants a copy of a channel's database, files, or code as of a checkpoint. A checkpoint is a row of ``list_channel_snapshots``. ``part`` picks what to download: - ``database``: the Postgres database as a ``.sqlc`` archive for ``pg_restore``. Any row serves. xhostd builds the archive on demand from the WAL-G archive, so the download is slow. - ``files``: the channel's object-storage files as they were at the checkpoint, as a ``.tar.gz``. Pick a row whose ``aligned_blob`` flag is true. - ``code``: the deployed code at the checkpoint's ``git_sha``, as a ``.tar``. Any row serves. This tool mints nothing and downloads nothing. It returns ``{part, download_url, console_url}``: ``download_url`` is the API link, and ``console_url`` serves the same artifact to a browser signed in to the console. **Run the request with your own token.** Send the header ``Authorization: Bearer <your token>``, with the token from ``$XHOSTD_TOKEN``. If that variable is unset, ask the user to mint a token on the console /tokens page and export it as ``XHOSTD_TOKEN``. Never ask the user to paste a token, and never write a token value into a command. On a failure, the response body holds the error envelope ``{"error": {"code", "message"}}``. Without a shell, give the user ``console_url`` to open in a browser signed in to the console. Any HTTP client works. For example: ``printf 'Authorization: Bearer %s\n' "$XHOSTD_TOKEN" | curl -sS --fail-with-body --header @- -o <file> <url>``. The example sends the header on curl's stdin, so the token stays off the argv of every process, which any local user can read. Errors arrive when you fetch the link, not from this tool: - Every part: 403 ``download_disabled`` means the operator turned this part off, which is permanent. 404 ``snapshot_not_found`` means no such checkpoint on this channel. 403 ``scope_denied`` means a narrowed ``$XHOSTD_TOKEN`` lacks the part's scope. - ``database``: ``snapshot_out_of_window`` (409) and ``snapshot_host_gone`` (404) are permanent, so pick a newer checkpoint. Retry ``snapshot_not_yet_archived`` (409) after about 900 seconds, ``backup_storage_unreachable`` (503) after about 300 seconds, and ``extraction_busy`` (409) after about 600 seconds. Retry ``extraction_failed`` and ``extraction_no_space`` (503) later. - ``files``: ``no_aligned_blob_snapshot`` (409) means the checkpoint has no files leg. Another 409 names a checkpoint older than the retention window, or one above the download limit on file count or bytes. For the second, read the files with an S3 client and the key pair that ``get_credential_request(purpose="object_storage")`` describes. ``blob_unavailable`` (503) is transient. - ``code``: ``snapshot_sha_unknown`` and ``snapshot_code_gone`` (404) are permanent. Returns ``{part, download_url, console_url}``. Reference: https://docs.xhostd.com/mcp-tools#get_snapshot_download_link
    ConnectorOAuth
  • Provisions a managed PostgreSQL database on a dedicated VM on your private network. Requires a recent plan_managed_datastore. For app deployments, prefer deploy_app database:'managed' so plan_deploy includes and wires the DB automatically. It is PRIVATE - reachable only from another instance on the same private network, via the DB's internal/private IP (not a public address). Get the ids from plan_managed_datastore/list_flavors/list_private_networks/list_keypairs. Provisioning takes ~5 min; poll list_databases until status='ready', then the connection details (private_ip, port 5432, db_name, db_user) are populated. HIGH AVAILABILITY: pass ha:true to get THREE machines on three different physical hosts behind a load balancer with automatic failover instead of one machine: the database survives losing a machine, and nobody has to fail it over by hand. It costs about 3x the hourly rate (three machines instead of one), it provisions more slowly, and one connection string still serves the whole thing. Default is a single machine; show the user the price difference and get an explicit yes before turning HA on.
    ConnectorNo auth
  • Provisions a managed MySQL (or MariaDB) database on a dedicated VM on your private network - the relational-database resource (use this instead of create_database when the app needs MySQL/MariaDB, e.g. WordPress, NextCloud, Matomo, many PHP/LAMP apps). Requires a recent plan_managed_datastore. For app deployments, prefer deploy_app database:'managed' with db_engine mysql/mariadb so plan_deploy includes and wires the DB automatically. It is PRIVATE - reachable only from another instance on the same private network, via the DB's internal/private IP (port 3306), not a public address. Get the ids from plan_managed_datastore/list_flavors/list_private_networks/list_keypairs. Provisioning takes ~5 min; poll list_relational_databases until status='ready', then the connection details (private_ip, port 3306, db_name, db_user) are populated. MySQL is created with mysql_native_password auth so older clients/apps connect cleanly. (ClickHouse is a separate resource - use create_clickhouse / list_clickhouse_databases.)
    ConnectorNo auth
  • Introspect the full database structure for a connection: every table, column, type, primary key, and index (MySQL connections do not report indexes yet; foreign keys are not reported) — the map to build queries against an unfamiliar database. Use analyze_table or data_profile instead when you need column VALUES (stats, nulls, PII) rather than structure. Read-only against your database. Results are cached 1 hour per connection; pass refresh=true to force a live re-introspection and bypass that cache, e.g. right after altering the schema. Does not consume daily quota. Returns tables with their columns, types, primary keys, and indexes.
    ConnectorOAuth
  • Request the user's own credential for an outside service on this project: their OpenAI or Anthropic key, an external Postgres database (type POSTGRES), or any other service's key (type GENERIC, with secret_env_vars). Floot-managed resources (database, auth, push, …) need no user input: use provision_resource. Request it early and keep building; code can reference process.env.<NAME> before the user connects. Never ask the user to paste a secret into the chat.
    ConnectorOAuth
  • Publish a database-linked schema's working copy as the contract used by enrichment and replicas. A newly linked schema sends nothing until first publication; unlinked drafts cannot be published. Requires editor; no LLM call. Call validate_only=true to inspect the diff, blockers, warnings and per-database migration_sql. Transform migrations require user-approved confirm_transforms=true; cross-schema conflicts remain blockers. key_language may be required if classification revealed a multilingual key. Returns publication state; queued migrations apply asynchronously on replicas. See enricher://docs/database-sync for the review and delivery workflow.
    Connector
    Destructive
    OAuth
  • Publish a lambda's source code at /source/{publicKey} for anybody to read, star and download as a .NET project, change the license it is published under, or take it down. What is published is the program and what is written about it - every version's code, resources, documentation and tests, and the history of what each changed - never its data: not the database, not the workspace, not a secret's value. Not part of building: only do this when the user asks for it, and ask which license if they did not say (MIT unless they want another). With only privateKey it returns whether it is published. Once published, everything in every version is public, older ones included: keep keys, passwords and personal data out of the files - in secrets and the database.
    Connector
    Destructive
    No auth