diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a713d35 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +# Generated by https://smithery.ai. See: https://smithery.ai/docs/config#dockerfile +# Start with a base Python image +FROM python:3.13-slim + +# Install curl to fetch the UV installation script +RUN apt-get update && apt-get install -y curl && apt-get clean + +# Set the working directory +WORKDIR /app + +# Copy the project files into the Docker image +COPY . . + +# Install UV using curl +RUN curl -LsSf https://astral.sh/uv/install.sh | sh + +# Create a virtual environment and activate it +RUN uv venv && . .venv/bin/activate + +# Install the project dependencies +RUN uv pip install . + +# Expose the necessary port (if applicable) +# EXPOSE 8000 + +# Define the command to run the MCP server +ENTRYPOINT ["uv", "run", "src/neodb/server.py", "", ""] diff --git a/README.md b/README.md index 20c7055..9e8af37 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # NeoDB MCP Server +[![smithery badge](https://smithery.ai/badge/@xytangme/neodb-mcp)](https://smithery.ai/server/@xytangme/neodb-mcp) A Message Control Protocol (MCP) server implementation for interacting with [NeoDB](https://neodb.social/), a social book cataloging service. This server provides tools to fetch user information, search books, and retrieve detailed book information through NeoDB's API. @@ -6,6 +7,14 @@ A Message Control Protocol (MCP) server implementation for interacting with [Neo ## Setup +### Installing via Smithery + +To install NeoDB for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@xytangme/neodb-mcp): + +```bash +npx -y @smithery/cli install @xytangme/neodb-mcp --client claude +``` + ### Install UV First, install UV package installer: diff --git a/smithery.yaml b/smithery.yaml new file mode 100644 index 0000000..7d32168 --- /dev/null +++ b/smithery.yaml @@ -0,0 +1,21 @@ +# 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: + - apiBase + - accessToken + properties: + apiBase: + type: string + description: The base URL for the NeoDB API. + accessToken: + type: string + description: Your NeoDB API access token. + commandFunction: + # A function that produces the CLI command to start the MCP on stdio. + |- + (config) => ({ command: 'uv', args: ['run', 'src/neodb/server.py', config.apiBase, config.accessToken] })