Skip to main content
Glama
wabox32

schema-engram-mcp

by wabox32

db_schema_update

Update an existing database schema snapshot by modifying its JSON structure, metadata, or renaming identifiers while maintaining data integrity.

Instructions

Actualiza una instantánea existente. Debes indicar el mismo workspace_id y connection_name que tenía el registro (sirven como comprobación).

Los argumentos opcionales con valor por defecto en el cliente no aplican cambios salvo que los envíes: schema sustituye el JSON completo; dialect, label y summary solo se escriben si los pasas (cadena vacía → NULL en BD).

new_workspace_id / new_connection_name renombran la instantánea si se indican. Con bump_captured_at=true (por defecto) se actualiza la fecha de la fila.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
snapshot_idYes
workspace_idYes
connection_nameYes
schemaNo
dialectNo
labelNo
summaryNo
new_workspace_idNo
new_connection_nameNo
bump_captured_atNo

Implementation Reference

  • The `db_schema_update` function is the handler for updating existing schema snapshots. It validates input parameters, prepares renaming parameters, calls the `storage.update_snapshot` helper, and returns the result as a JSON string.
    def db_schema_update(
        snapshot_id: int,
        workspace_id: str,
        connection_name: str,
        schema: Any | None = None,
        dialect: str | None = None,
        label: str | None = None,
        summary: str | None = None,
        new_workspace_id: str | None = None,
        new_connection_name: str | None = None,
        bump_captured_at: bool = True,
    ) -> str:
        """
        Actualiza una instantánea existente. Debes indicar el mismo ``workspace_id`` y
        ``connection_name`` que tenía el registro (sirven como comprobación).
    
        Los argumentos opcionales con valor por defecto en el cliente no aplican cambios
        salvo que los envíes: ``schema`` sustituye el JSON completo; ``dialect``, ``label``
        y ``summary`` solo se escriben si los pasas (cadena vacía → NULL en BD).
    
        ``new_workspace_id`` / ``new_connection_name`` renombran la instantánea si se indican.
        Con ``bump_captured_at=true`` (por defecto) se actualiza la fecha de la fila.
        """
        rename_ws: str | None = None
        if new_workspace_id is not None:
            rename_ws = new_workspace_id.strip()
            if not rename_ws:
                return json.dumps({"error": "new_workspace_id no puede estar vacío"}, ensure_ascii=False)
        rename_cn: str | None = None
        if new_connection_name is not None:
            rename_cn = new_connection_name.strip()
            if not rename_cn:
                return json.dumps({"error": "new_connection_name no puede estar vacío"}, ensure_ascii=False)
        row = storage.update_snapshot(
            _get_conn(),
            snapshot_id,
            workspace_id=workspace_id.strip(),
            connection_name=connection_name.strip(),
            schema=schema,
            dialect=dialect,
            label=label,
            summary=summary,
            new_workspace_id=rename_ws,
            new_connection_name=rename_cn,
            bump_captured_at=bump_captured_at,
        )
        if row is None:
            return json.dumps(
                {"error": "no encontrado o workspace/connection no coinciden"},
                ensure_ascii=False,
            )
        return json.dumps(row, ensure_ascii=False)
  • The tool is registered using the `@mcp.tool()` decorator on the `db_schema_update` function.
    @mcp.tool()
    def db_schema_update(

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wabox32/schema-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server