Skip to content
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
30 changes: 30 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Generated by https://smithery.ai. See: https://smithery.ai/docs/build/project-config
# Dockerfile for MCP Docent Server
# Use official Node.js LTS on Alpine for minimal footprint
FROM node:lts-alpine AS builder

WORKDIR /app

# Install dependencies without running any prepare scripts
COPY package.json tsconfig.json ./
RUN npm install --ignore-scripts

# Copy source code
COPY src ./src

# Build TypeScript
RUN npm run build

# Prepare production image
FROM node:lts-alpine AS runner
WORKDIR /app

# Copy package.json and installed modules
COPY --from=builder /app/package.json ./
COPY --from=builder /app/node_modules ./node_modules

# Copy built artifacts
COPY --from=builder /app/dist ./dist

# Define command
CMD ["node", "dist/index.js"]
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# MCP Docent Server
[![smithery badge](https://smithery.ai/badge/@dongprojectteam/mcp-docent-server)](https://smithery.ai/server/@dongprojectteam/mcp-docent-server)

> 이미지를 입력받아 해당 이미지에 대한 해설 텍스트(docent)를 생성하는 MCP 서버입니다.
> AI 기반 해설 시스템을 활용하여 다양한 이미지에 대해 자동으로 설명을 생성합니다.
Expand Down Expand Up @@ -49,3 +50,4 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
```

19 changes: 19 additions & 0 deletions smithery.yaml
Original file line number Diff line number Diff line change
@@ -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:
- openaiApiKey
properties:
openaiApiKey:
type: string
description: OpenAI API key for accessing the OpenAI API
commandFunction:
# A JS function that produces the CLI command based on the given config to start the MCP on stdio.
|-
(config) => ({ command: 'node', args: ['dist/index.js'], env: { OPENAI_API_KEY: config.openaiApiKey } })
exampleConfig:
openaiApiKey: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx