nuzur mcp
nuzur mcp: AI-агенты предлагают изменения схемы базы данных как заявки на проверку
Что умеет
- Добавлять и удалять сущности, поля, индексы и связи в черновике версии проекта
- Создавать change request на изменение схемы
- Запрашивать данные проекта и искать проекты по названию
- Просматривать версии проекта и состояние change request
- Управлять командами и локальными агентами проекта
Какие данные видит
Ассистент не имеет прямого доступа на запись в базу — все изменения проходят через change request, требующий одобрения человека.
Нужен ли аккаунт
Не нужен: сервер работает без входа
MCP-сервер nuzur даёт агентам возможность моделировать и менять схему базы данных MySQL или PostgreSQL, но не напрямую — все изменения оформляются как change request и проходят проверку человеком. Подключается к Claude Code, Cursor и другим MCP-клиентам для проектирования сущностей, полей, индексов и связей.
Как подключить
Как подключить nuzur mcp к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://ccmcp--nuzur.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить nuzur mcp к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://ccmcp--nuzur.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить nuzur mcp к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://ccmcp--nuzur.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (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. |