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

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
40 changes: 40 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Generated by https://smithery.ai. See: https://smithery.ai/docs/config#dockerfile
# Use a Node.js image with Puppeteer dependencies
FROM node:22-alpine AS builder

# Install necessary build tools
RUN apk add --no-cache make gcc g++ python3

# Create app directory
WORKDIR /app

# Copy project files to the working directory
COPY package.json package-lock.json tsconfig.json ./
COPY src ./src

# Install dependencies
RUN npm install

# Build the project
RUN npm run build

# Use a clean Node.js image for the final build
FROM node:22-alpine

WORKDIR /app

# Copy built files and node_modules from the builder
COPY --from=builder /app/dist /app/dist
COPY --from=builder /app/node_modules /app/node_modules
COPY --from=builder /app/package.json /app/package.json

# Set environment variables (adjust as necessary)
ENV STEEL_LOCAL=true
ENV STEEL_BASE_URL=http://localhost:3000
ENV GLOBAL_WAIT_SECONDS=1

# Expose the necessary port if required by your application
EXPOSE 3000

# Define the command to run your application
ENTRYPOINT ["node", "dist/index.js"]
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Steel MCP Server

[![smithery badge](https://smithery.ai/badge/@steel-dev/steel-mcp-server)](https://smithery.ai/server/@steel-dev/steel-mcp-server)

https://github.com/user-attachments/assets/25848033-40ea-4fa4-96f9-83b6153a0212


Expand Down Expand Up @@ -259,6 +261,14 @@ This will allow Claude Desktop to start Steel Voyager in the correct mode.

## Installation & Running

### Installing via Smithery

To install Steel MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@steel-dev/steel-mcp-server):

```bash
npx -y @smithery/cli install @steel-dev/steel-mcp-server --client claude
```

### Local Development

1. Clone the repository
Expand Down
27 changes: 27 additions & 0 deletions smithery.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# 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:
- steelLocal
properties:
steelLocal:
type: boolean
description: Set to true for local mode and false for cloud mode.
steelApiKey:
type: string
description: API key for Steel cloud service. Required if steelLocal is false.
steelBaseUrl:
type: string
description: Base URL for Steel API. Optional, defaults to http://localhost:3000
for local mode and https://api.steel.dev for cloud mode.
globalWaitSeconds:
type: number
description: Optional number of seconds to wait after each tool action.
commandFunction:
# A function that produces the CLI command to start the MCP on stdio.
|-
(config) => ({command:'node',args:['dist/index.js'],env:{STEEL_LOCAL:config.steelLocal.toString(),STEEL_API_KEY:config.steelApiKey,STEEL_BASE_URL:config.steelBaseUrl,GLOBAL_WAIT_SECONDS:config.globalWaitSeconds?.toString()}})