diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..192505f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,38 @@ +# Generated by https://smithery.ai. See: https://smithery.ai/docs/config#dockerfile +# Use an official Node.js image as a base +FROM node:18-alpine AS builder + +# Set the working directory +WORKDIR /app + +# Copy the package.json and package-lock.json files +COPY package.json package-lock.json ./ + +# Install dependencies +RUN npm install --ignore-scripts + +# Copy the rest of the application +COPY . ./ + +# Build the project +RUN npm run build + +# Production image +FROM node:18-alpine AS release + +# Set the working directory +WORKDIR /app + +# Copy the build artifacts from the builder stage +COPY --from=builder /app/build /app/build +COPY --from=builder /app/package.json /app/package.json +COPY --from=builder /app/package-lock.json /app/package-lock.json + +# Install production dependencies +RUN npm ci --omit=dev + +# Set environment variable +ENV AIRTABLE_API_KEY=your_api_key_here + +# Command to run the application +ENTRYPOINT ["node", "build/index.js"] diff --git a/README.md b/README.md index 71ca0c8..34a6ea6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # Airtable MCP Server +[![smithery badge](https://smithery.ai/badge/airtable-server)](https://smithery.ai/server/airtable-server) A Model Context Protocol server that provides tools for interacting with Airtable's API. This server enables programmatic management of Airtable bases, tables, fields, and records through Claude Desktop or other MCP clients. @@ -29,6 +30,14 @@ This MCP server features a specialized implementation that allows it to build ta ## Installation +### Installing via Smithery + +To install Airtable MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/airtable-server): + +```bash +npx -y @smithery/cli install airtable-server --client claude +``` + ### Method 1: Using npx (Recommended) 1. Navigate to the Claude configuration directory: diff --git a/smithery.yaml b/smithery.yaml new file mode 100644 index 0000000..4f46dc2 --- /dev/null +++ b/smithery.yaml @@ -0,0 +1,17 @@ +# 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: + - airtableApiKey + properties: + airtableApiKey: + type: string + description: The API key for the Airtable MCP server. + commandFunction: + # A function that produces the CLI command to start the MCP on stdio. + |- + config=>({command:'node',args:['build/index.js'],env:{AIRTABLE_API_KEY:config.airtableApiKey}}) \ No newline at end of file