This pull request introduces the following updates: - **Dockerfile**: Introduces a Dockerfile to package the MCP for deployment across various environments. - **Smithery Configuration**: Adds a Smithery YAML file, which specifies how to start the MCP and the configuration options it supports. It allows you to [deploy](https://smithery.ai/docs/deployments) your MCP to [Smithery](https://smithery.ai?utm_campaign=pr), serving it over SSE so end-users do not need to install additional dependencies. To deploy, merge this PR, then visit your [server page](https://smithery.ai/server/mcp-proxy?utm_campaign=pr&modal=claim) and click "Deploy" under the deployments page. Please review these updates to verify their accuracy for your server and feel free to customize it to your needs. Let me know if you have any questions. 🙂 --------- Co-authored-by: Sergey Parfenyuk <myseverality@gmail.com>
34 lines
1.1 KiB
Docker
34 lines
1.1 KiB
Docker
# Generated by https://smithery.ai. See: https://smithery.ai/docs/config#dockerfile
|
|
# Use a Python image with uv pre-installed
|
|
FROM ghcr.io/astral-sh/uv:python3.12-alpine AS uv
|
|
|
|
# Install the project into /app
|
|
WORKDIR /app
|
|
|
|
# Enable bytecode compilation
|
|
ENV UV_COMPILE_BYTECODE=1
|
|
|
|
# Copy from the cache instead of linking since it's a mounted volume
|
|
ENV UV_LINK_MODE=copy
|
|
|
|
# Install the project's dependencies using the lockfile and settings
|
|
RUN --mount=type=cache,target=/root/.cache/uv \
|
|
--mount=type=bind,source=uv.lock,target=uv.lock \
|
|
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
|
|
uv sync --frozen --no-install-project --no-dev --no-editable
|
|
|
|
# Then, add the rest of the project source code and install it
|
|
# Installing separately from its dependencies allows optimal layer caching
|
|
ADD . /app
|
|
RUN --mount=type=cache,target=/root/.cache/uv \
|
|
uv sync --frozen --no-dev --no-editable
|
|
|
|
FROM python:3.12-alpine
|
|
|
|
COPY --from=uv --chown=app:app /app/.venv /app/.venv
|
|
|
|
# Place executables in the environment at the front of the path
|
|
ENV PATH="/app/.venv/bin:$PATH"
|
|
|
|
ENTRYPOINT ["mcp-proxy"]
|