# Directory Structure
```
├── .gitignore
├── Dockerfile
├── index.ts
├── package.json
├── README.md
├── smithery.yaml
└── tsconfig.json
```
# Files
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
```
# dependencies
/node_modules
/dist
# testing
/coverage
# misc
.DS_Store
*.pem
# env files (can opt-in for committing if needed)
.env*
# typescript
*.tsbuildinfo
next-env.d.ts
```
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
```markdown
# Korea Tour MCP Server
[](https://smithery.ai/server/@pjookim/mcp-visit-korea)
MCP (Model Context Protocol) server providing Korean tourism information.
## Features
- Area code lookup: Query metropolitan cities/provinces and sub-regions
- Tourism information search: Support for region-based, keyword-based, and location-based searches
- Tourism content detail lookup: Provides detailed information about attractions, festivals, accommodations, etc.
### Installing via Smithery
To install mcp-visit-korea for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@pjookim/mcp-visit-korea):
```bash
npx -y @smithery/cli install @pjookim/mcp-visit-korea --client claude
```
```
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
```json
{
  "compilerOptions": {
    "outDir": "./dist",
    "rootDir": ".",
    "moduleResolution": "NodeNext",
    "module": "NodeNext"
  },
  "include": [
    "./**/*.ts"
  ]
}
```
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
```dockerfile
# Generated by https://smithery.ai. See: https://smithery.ai/docs/config#dockerfile
FROM node:lts-alpine
# Create app directory
WORKDIR /app
# Install app dependencies
COPY package.json package-lock.json* ./
RUN npm install --ignore-scripts
# Copy app source code
COPY . .
# Build the project
RUN npm run build
# Expose any ports if needed (not required for stdio-based MCP)
# Run the MCP server
CMD [ "node", "dist/index.js" ]
```
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
```json
{
  "name": "mcp-ktour",
  "version": "0.1.0",
  "description": "MCP server for Korean tourism information",
  "author": "Pyungjoo Kim",
  "homepage": "https://github.com/pjookim/mcp-visit-korea",
  "bugs": "https://github.com/pjookim/mcp-visit-korea/issues",
  "type": "module",
  "bin": {
    "mcp-server-filesystem": "dist/index.js"
  },
  "files": [
    "dist"
  ],
  "scripts": {
    "build": "tsc && shx chmod +x dist/*.js",
    "prepare": "npm run build",
    "watch": "tsc --watch"
  },
  "dependencies": {
    "@modelcontextprotocol/sdk": "^0.5.0",
    "axios": "^1.8.4",
    "zod": "^3.24.2",
    "zod-to-json-schema": "^3.24.5"
  },
  "devDependencies": {
    "@types/node": "^22",
    "shx": "^0.3.4",
    "typescript": "^5.3.3"
  }
}
```
--------------------------------------------------------------------------------
/smithery.yaml:
--------------------------------------------------------------------------------
```yaml
# Smithery configuration file: https://smithery.ai/docs/config#smitheryyaml
startCommand:
  type: stdio
  configSchema:
    # JSON Schema defining the configuration options for the MCP.
    type: object
    properties:
      tourApiKey:
        type: string
        description: API key for TOUR_API. If not provided, calls depending on API key
          may fail.
    default: {}
  commandFunction:
    # A JS function that produces the CLI command based on the given config to start the MCP on stdio.
    |-
    (config) => {
      const env = {};
      if (config.tourApiKey) {
        env.TOUR_API_KEY = config.tourApiKey;
      }
      return {
        command: 'node',
        args: ['dist/index.js'],
        env
      };
    }
  exampleConfig:
    tourApiKey: YOUR_TOUR_API_KEY
```