Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deployment: Dockerfile and Smithery config #2

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -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", "<API_BASE>", "<ACCESS_TOKEN>"]
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
# 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.

<a href="https://glama.ai/mcp/servers/1any3eeaza"><img width="380" height="200" src="https://glama.ai/mcp/servers/1any3eeaza/badge" alt="NeoDB Server MCP server" /></a>

## 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:

Expand Down
21 changes: 21 additions & 0 deletions smithery.yaml
Original file line number Diff line number Diff line change
@@ -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] })