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