+ mariadb mcp
This commit is contained in:
7
.cursor/mcp.json
Normal file
7
.cursor/mcp.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"mcpServers": {
|
||||||
|
"intai-mariadb": {
|
||||||
|
"url": "http://127.0.0.1:8765/sse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -28,3 +28,12 @@ PHP_OPT_POST_MAX_SIZE=800M
|
|||||||
PHP_OPT_UPLOAD_MAX_FILESIZE=200M
|
PHP_OPT_UPLOAD_MAX_FILESIZE=200M
|
||||||
|
|
||||||
PHP_OPT_MAX_EXECUTION_TIME=600
|
PHP_OPT_MAX_EXECUTION_TIME=600
|
||||||
|
|
||||||
|
### MCP MariaDB (Cursor IDE) ############################
|
||||||
|
# Имя Docker-сети, в которой запущен сервис db (docker network ls | grep default).
|
||||||
|
# Пример: intai-docker_default — имя зависит от каталога проекта и COMPOSE_PROJECT_NAME.
|
||||||
|
INTAI_DOCKER_NETWORK=intai-docker_default
|
||||||
|
# Порт на хосте для MCP (SSE); тот же порт должен быть в .cursor/mcp.json (url).
|
||||||
|
MCP_MARIADB_PORT=8765
|
||||||
|
# Опционально: зафиксировать ревизию MariaDB/mcp при сборке образа (ветка или тег).
|
||||||
|
# MARIADB_MCP_GIT_REF=main
|
||||||
12
.env.mcp-mariadb.example
Normal file
12
.env.mcp-mariadb.example
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Копия: cp .env.mcp-mariadb.example .env.mcp-mariadb
|
||||||
|
# Пароль должен совпадать с MYSQL_ROOT_PASSWORD у сервиса db (docker-compose.base.yml).
|
||||||
|
|
||||||
|
DB_HOST=db
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_USER=root
|
||||||
|
DB_PASSWORD=123456
|
||||||
|
# Необязательно: дефолтная БД для запросов
|
||||||
|
# DB_NAME=myapp
|
||||||
|
|
||||||
|
MCP_READ_ONLY=true
|
||||||
|
MCP_MAX_POOL_SIZE=5
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,5 +1,6 @@
|
|||||||
/.idea
|
/.idea
|
||||||
/.env
|
/.env
|
||||||
|
/.env.mcp-mariadb
|
||||||
/docker-compose*
|
/docker-compose*
|
||||||
!/docker-compose.base.yml
|
!/docker-compose.base.yml
|
||||||
!/docker-compose*.example
|
!/docker-compose*.example
|
||||||
|
|||||||
31
docker-compose.mcp-mariadb.yml.example
Normal file
31
docker-compose.mcp-mariadb.yml.example
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# MariaDB MCP для Cursor: контейнер в той же Docker-сети, что и сервис db.
|
||||||
|
#
|
||||||
|
# 1) Узнайте имя сети стека с MariaDB: docker network ls | grep default
|
||||||
|
# (часто <имя_папки_проекта>_default, например intai-docker_default)
|
||||||
|
# 2) Скопируйте .env.mcp-mariadb.example в .env.mcp-mariadb и поправьте пароль/БД.
|
||||||
|
# 3) В корневом .env задайте INTAI_DOCKER_NETWORK (см. .env.example).
|
||||||
|
# 4) Запуск (файл с суффиксом .example можно указать напрямую):
|
||||||
|
# docker compose -f docker-compose.mcp-mariadb.yml.example up -d --build
|
||||||
|
#
|
||||||
|
# Cursor читает .cursor/mcp.json (SSE на 127.0.0.1:${MCP_MARIADB_PORT}).
|
||||||
|
|
||||||
|
services:
|
||||||
|
mcp-mariadb:
|
||||||
|
build:
|
||||||
|
context: ./dockerfiles/mariadb-mcp
|
||||||
|
args:
|
||||||
|
MARIADB_MCP_GIT_REF: ${MARIADB_MCP_GIT_REF:-main}
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env.mcp-mariadb
|
||||||
|
environment:
|
||||||
|
LOG_FILE: /tmp/mcp_server.log
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:${MCP_MARIADB_PORT:-8765}:9001"
|
||||||
|
networks:
|
||||||
|
- intai_db
|
||||||
|
|
||||||
|
networks:
|
||||||
|
intai_db:
|
||||||
|
external: true
|
||||||
|
name: ${INTAI_DOCKER_NETWORK:?Set INTAI_DOCKER_NETWORK in .env — see .env.example}
|
||||||
31
dockerfiles/mariadb-mcp/Dockerfile
Normal file
31
dockerfiles/mariadb-mcp/Dockerfile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# MariaDB MCP Server (SSE) — upstream: https://github.com/MariaDB/mcp
|
||||||
|
# Build clones MariaDB/mcp at MARIADB_MCP_GIT_REF (branch or tag).
|
||||||
|
|
||||||
|
FROM python:3.11-slim AS builder
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
build-essential curl ca-certificates git \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN curl -fsSL https://astral.sh/uv/install.sh | sh
|
||||||
|
ENV PATH="/root/.local/bin:${PATH}"
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
ARG MARIADB_MCP_GIT_REF=main
|
||||||
|
RUN git clone --depth 1 --branch "${MARIADB_MCP_GIT_REF}" https://github.com/MariaDB/mcp.git . \
|
||||||
|
|| (git clone --depth 1 https://github.com/MariaDB/mcp.git . && git fetch --depth 1 origin "${MARIADB_MCP_GIT_REF}" && git checkout FETCH_HEAD)
|
||||||
|
|
||||||
|
RUN uv sync --no-dev
|
||||||
|
|
||||||
|
FROM python:3.11-slim
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
ENV PATH="/app/.venv/bin:${PATH}"
|
||||||
|
|
||||||
|
COPY --from=builder /app/.venv /app/.venv
|
||||||
|
COPY --from=builder /app/src /app/src
|
||||||
|
|
||||||
|
EXPOSE 9001
|
||||||
|
|
||||||
|
CMD ["python", "src/server.py", "--host", "0.0.0.0", "--transport", "sse"]
|
||||||
Reference in New Issue
Block a user