nuzur mcp
nuzur's MCP server lets AI agents propose database schema and data changes as reviewable change requests — no direct write access.
От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетБез входаГлобальныйБесплатноМожет изменять данные
Что умеет
- AddEntity: Add a new entity (table) to a draft project version, optionally with initial fields and indexes. Reference it by identifier; the server mints all UUIDs. Returns { version, entity } — the cr
- AddEnum: Add a new enum to a draft project version. Provide the identifier and staticValues (convention: first value is 'invalid' with no numericValue, then real values 1,2,3...). The server mints the
- AddField: Add a field to an entity in a draft project version. Provide the entity identifier and a compact field spec (identifier, type code, optional required/key/unique/description/typeConfig); the
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
nuzur's MCP server lets AI agents propose database schema and data changes as reviewable change requests — no direct write access. Connect Claude Code, Cursor, or any MCP client to model, query, and modify MySQL/PostgreSQL databases with human-in-the-loop approval.
Список инструментов сервера (33)
Технические названия из tools/list. Нужны только разработчикам.
| addEntity | Add a new entity (table) to a draft project version, optionally with initial fields and indexes. Reference it by identifier; the server mints all UUIDs. Returns { version, entity } — the created, server-normalized entity (diff it against your input to see what the server generated/coerced). type: 1=standalone (default), 2=dependent/embedded. |
| addEnum | Add a new enum to a draft project version. Provide the identifier and staticValues (convention: first value is 'invalid' with no numericValue, then real values 1,2,3...). The server mints the enum UUID. Returns { version, enum } — read the enum's uuid from the echo to reference it from an enum-typed field (type 22, typeConfig {"enum":{"enum_uuid":"..."}}). |
| addField | Add a field to an entity in a draft project version. Provide the entity identifier and a compact field spec (identifier, type code, optional required/key/unique/description/typeConfig); the server mints the field UUID. Returns { version, entity } — the affected, server-normalized entity. See nuzur://reference/schema-modeling for field type codes. |
| addIndex | Add an index to an entity. Provide the entity identifier and an index spec (identifier, type: 1=INDEX/2=PRIMARY/3=UNIQUE/4=FULLTEXT, and the fields by identifier). The server resolves field identifiers to UUIDs. Returns { version, entity } — the affected, server-normalized entity. |
| addRelationship | Add a foreign-key relationship. Provide the child (fromEntity/fromField holding the FK) and parent (toEntity/toField holding the PK) by identifier; the server resolves UUIDs and sets fields_generated on the from side. cardinality: 1=one-to-one (default), 2=one-to-many. Returns { version, relationship, affected } — the persisted relationship (with resolved from/to endpoint uuids) plus a note that the child entity may have a generated FK field (getEntity to inspect). |
| createChangeRequest | Create a new change request (draft) for a project version, including the list of data changes. Use top-level changeType 1 for project DATA changes (2 is for schema/version). Target the PUBLISHED version (review_status 5), never a draft. Per-item changeType is 1=update / 2=create / 3=delete; each dataChanges item takes only changeType plus one of create/update/delete (no uuid/order). All field values are strings; enums are integer-strings and JSON fields are JSON strings. Place parent records before the children that reference them. See nuzur://reference/data-change-requests for payload shapes. |
| createProjectVersionDraft | Create a new project version draft based on an existing version or starting empty. Drafts allow project_version (schema) changes to be made and set created_by_uuid to you. Passing basedOnProjectVersionUuid copies the entire schema from that version — this is also the recovery trick for a draft that became invisible. |
| deleteEntity | Delete an entity from a draft project version by identifier. Irreversible within the draft. Returns { version, deleted, affected } — affected lists any relationships left orphaned (still referencing the deleted entity) so you can clean them up. |
| deleteEnum | Delete an enum from a draft project version by identifier. Returns { version, deleted, affected } — affected lists enum-typed fields that still reference the deleted enum so you can update or remove them. |
| deleteField | Delete a field from an entity by identifier. Returns { version, entity } — the affected entity with the field removed. |
| deleteIndex | Delete an index from an entity by identifier. Returns { version, entity } — the affected entity with the index removed. |
| deleteRelationship | Delete a relationship from a draft project version by identifier. Returns { version, deleted }. |
| discardProjectVersionDraft | Discard/delete a draft project version that has not been approved or published. This is irreversible. |
| getChangeRequest | Fetch the full details of a change request by UUID, including its status, data changes, and review status. |
| getEntity | Fetch a single entity (its fields, type_config/indexes) from a project version by identifier, in lean form. Lets you inspect one table without pulling the whole model. |
| getEnum | Fetch a single enum (its static values) from a project version by identifier. Returns { version, enum }. |
| getProjectVersion | Fetch the full project version (schema, entities, fields, enums) for a given project version UUID. Prefer getProjectVersionLean — the full form emits every type_config variant on every field and is much larger. |
| getProjectVersionLean | Fetch a project version (schema, entities, fields, enums, relationships) in a compact form: each field's type_config is collapsed to the single sub-key matching its type, and audit/empty noise is stripped. Much smaller than getProjectVersion (which emits every type_config variant on every field) and fits inline. Prefer this for reading or verifying a schema. For decoding field type integer codes, read the nuzur://reference/schema-modeling resource. |
| getTeam | Fetch full details for a specific team, including its connections. Use this after listTeamsForUser to get connection UUIDs needed for queryProjectData. |
| listLocalAgents | List all local agents registered under the authenticated user's account. Returns agent metadata (UUID, status, machine name, OS, CLI version) and configured connections. |
| listProjectVersions | List all versions of a given project. Returns version metadata (UUID, identifier, review status, created_by_uuid, version) without the full schema payload. Use it to pick a version, to read the current `version` immediately before calling updateProjectVersion (optimistic concurrency), and to confirm a draft is still visible to you. |
| listProjectsForUser | List all Nuzur projects accessible to the authenticated user, optionally filtered by team. |
| listTeamsForUser | List all teams the authenticated user belongs to. Returns team UUID, name, and status. Use the team UUID when calling queryProjectData or other tools that require a team context. |
| queryProjectData | Execute a raw SQL SELECT query against a project's database via the Nuzur connection manager (SELECT only — mutating statements are rejected). Returns results as JSON. Requires a connection UUID and team UUID (remote) or local-agent UUIDs from the project's configured connections. Target the published version; use this to resolve foreign keys and de-duplicate before building a change request. |
| searchProjectsByName | Search for Nuzur projects by name (case-insensitive substring match). Returns matching projects for the authenticated user. |
| sendProjectVersionForReview | Submit a draft project version for review by a reviewer, creating a review-ready project version change request. Do this only once the schema is complete and verified. |
| submitChangeRequestForReview | Submit a draft change request for review by setting its status to IN_REVIEW. Call this once the user is satisfied with the data changes and wants a Nuzur reviewer to approve them. Once submitted the CR is immutable — a mistake found after submission requires a brand-new CR. |
| updateChangeRequest | Update the title, description, or data changes of a DRAFT change request (only DRAFT CRs are editable). Only the fields you provide are updated; omitted fields are left unchanged. Providing dataChanges REPLACES the entire existing list, not a partial merge. |
| updateEnum | Update an enum: rename it and/or replace its staticValues (providing staticValues REPLACES the whole list — include the values you want to keep). Returns { version, enum } — the server-normalized enum. |
| updateField | Update attributes of an existing field (description, required, key, unique, deprecated, type/typeConfig, or rename). Only the attributes you supply change; everything else is preserved. Returns { version, entity } — the affected, server-normalized entity. |
| updateProjectVersion | Replace an entire draft project version. Prefer the granular tools (addEntity, addField, updateField, deleteField, addIndex, deleteIndex, addRelationship, deleteEntity/deleteRelationship) for ordinary edits — they change one piece server-side without you re-sending (or re-transcribing) the whole ~30KB payload. Use this only for a wholesale replace. It is a FULL REPLACE, not a merge — send every entity, enum, and relationship or you drop what you omit. Include the version-level created_by_uuid (= your user uuid) and the current `version` value (read it via listProjectVersions immediately before calling, since it auto-advances). A getProjectVersionLean result round-trips directly (scalar type_configs come back as "", the shape this tool expects). Returns the freshly re-fetched persisted version (not a stale snapshot). See nuzur://reference/schema-modeling for object shapes. |
| uploadFieldFile | Upload a file (image, video, audio, or generic file) to an entity field whose type is file/image/video/audio and whose storage type is OBJECT_STORE. The product service uses the field configuration to determine the object store credentials and path. Provide the file content encoded as base64. Returns a signed URL for the uploaded object. |
| withdrawProjectVersionFromReview | Withdraw a project version from active review, putting it back into draft status. |