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