diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4be2be8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,35 @@ +# 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-bookworm-slim AS uv + +# Set working directory +WORKDIR /app + +# Enable bytecode compilation +ENV UV_COMPILE_BYTECODE=1 + +# Copy the entire repository into the container +COPY . . + +# Install the project's dependencies using the lockfile and settings +RUN --mount=type=cache,target=/root/.cache/uv \ + --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 +RUN --mount=type=cache,target=/root/.cache/uv \ + uv sync --frozen --no-dev --no-editable + +FROM python:3.12-slim-bookworm + +# Set working directory +WORKDIR /app + +COPY --from=uv /root/.local /root/.local +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 ["python", "-m", "mcp_datetime"] \ No newline at end of file diff --git a/README.md b/README.md index 7f29e6b..4ca6218 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # mcp-datetime +[![smithery badge](https://smithery.ai/badge/mcp-datetime)](https://smithery.ai/server/mcp-datetime) [![Python Version](https://img.shields.io/badge/python-3.12-blue.svg)](https://www.python.org/downloads/) [![MCP Version](https://img.shields.io/badge/mcp-1.1.1-green.svg)](https://github.com/anaisbetts/mcp) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) @@ -57,6 +58,14 @@ Config file location (macOS): ## About Installation +### Installing via Smithery + +To install Datetime Formatting Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/mcp-datetime): + +```bash +npx -y @smithery/cli install mcp-datetime --client claude +``` + If you need to install the package directly (e.g., for development or source code inspection), you can use one of these methods: - Install from PyPI diff --git a/smithery.yaml b/smithery.yaml new file mode 100644 index 0000000..13f2b06 --- /dev/null +++ b/smithery.yaml @@ -0,0 +1,13 @@ +# Smithery configuration file: https://smithery.ai/docs/config#smitheryyaml + +startCommand: + type: stdio + configSchema: + # JSON Schema defining the configuration options for the MCP. + type: object + required: [] + properties: {} + commandFunction: + # A function that produces the CLI command to start the MCP on stdio. + |- + (config) => ({ command: 'python', args: ['-m', 'mcp_datetime'] }) \ No newline at end of file