diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5b9aae4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +# Generated by https://smithery.ai. See: https://smithery.ai/docs/build/project-config +FROM python:3.12-slim + +# set working directory +WORKDIR /app + +# install dependencies +RUN pip install --no-cache-dir mcp[cli] httpx python-dotenv + +# copy project files +COPY . . + +# ensure stdout/err unbuffered +ENV PYTHONUNBUFFERED=1 + +# default command to run the MCP server +CMD ["python", "server.py"] diff --git a/README.md b/README.md index bede5e6..8c9de56 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Raindrop MCP Server +[![smithery badge](https://smithery.ai/badge/@ddltn/raindrop-mcp-python)](https://smithery.ai/server/@ddltn/raindrop-mcp-python) + This is a Model Context Protocol (MCP) server for Raindrop.io powered by the [Python MCP SDK](https://github.com/modelcontextprotocol/python-sdk/tree/main). It provides an easy way to read and update your bookmarks from the Raindrop personal knowledge management system from Claude Desktop in simple, human language. This can be paired with the [Firecrawl MCP server](https://github.com/mendableai/firecrawl-mcp-server#) to read the URLs associated with your bookmarks and classify them accordingly. ## Requirements @@ -35,6 +37,15 @@ uv run mcp dev server.py ## Installation +### Installing via Smithery + +To install Raindrop.io Bookmark Manager for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@ddltn/raindrop-mcp-python): + +```bash +npx -y @smithery/cli install @ddltn/raindrop-mcp-python --client claude +``` + +### Manual Installation To install the server to Claude Desktop: ``` diff --git a/smithery.yaml b/smithery.yaml new file mode 100644 index 0000000..878f7de --- /dev/null +++ b/smithery.yaml @@ -0,0 +1,19 @@ +# Smithery configuration file: https://smithery.ai/docs/build/project-config + +startCommand: + type: stdio + configSchema: + # JSON Schema defining the configuration options for the MCP. + type: object + required: + - raindropToken + properties: + raindropToken: + type: string + description: Raindrop.io API token + commandFunction: + # A JS function that produces the CLI command based on the given config to start the MCP on stdio. + |- + (config) => ({ command: 'python', args: ['server.py'], env: { RAINDROP_TOKEN: config.raindropToken } }) + exampleConfig: + raindropToken: your_raindrop_api_token_here