+ 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_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
|
||||
/.env
|
||||
/.env.mcp-mariadb
|
||||
/docker-compose*
|
||||
!/docker-compose.base.yml
|
||||
!/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