Skip to main content
Glama
moosin76

Windows Scoped Remote MCP Server

by moosin76

๐Ÿ›ก๏ธ Windows Scoped Remote MCP Server

Windows ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•˜๋Š” ๋ณด์•ˆ ๊ฒฉ๋ฆฌํ˜• ์›๊ฒฉ ๊ฐœ๋ฐœ MCP(Model Context Protocol) ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.
ChatGPT, Claude ๋“ฑ ์ตœ์‹  LLM ํด๋ผ์ด์–ธํŠธ์™€ ์—ฐ๋™ํ•˜์—ฌ, ๋Œ€ํ™”๋งŒ์œผ๋กœ ์ง€์ •๋œ ๋กœ์ปฌ ์ž‘์—… ๊ณต๊ฐ„ ๋‚ด์—์„œ ํŒŒ์ผ ์ƒ์„ฑ/์ˆ˜์ •, PowerShell ๋ช…๋ น์–ด ์‹คํ–‰, ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ๋ฐ ๋””๋ฒ„๊น…์„ ์ž์œจ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ“Œ ์ฃผ์š” ํŠน์ง•

  • Windows ์ตœ์ ํ™” ์ƒŒ๋“œ๋ฐ•์Šค (SandboxGuard):

    • ์ง€์ •ํ•œ MCP_WORKSPACE_ROOT ๋””๋ ‰ํ† ๋ฆฌ ์™ธ๋ถ€์˜ ํŒŒ์ผ/ํด๋” ์ ‘๊ทผ ๋ฐ ๋ช…๋ น์–ด ์‹คํ–‰์„ 100% ์›์ฒœ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.

  • ChatGPT ํ‘œ์ค€ OAuth 2.1 ์—ฐ๋™ (RFC 8414 / RFC 9728 / DCR / PKCE):

    • ๋™์  ํด๋ผ์ด์–ธํŠธ ๋“ฑ๋ก(DCR) ๋ฐ ๋Œ€ํ™”ํ˜• ๋ณด์•ˆ ์Šน์ธ ํŽ˜์ด์ง€(/authorize)๋ฅผ ์ œ๊ณตํ•˜์—ฌ, ๋น„๋ฐ€๋ฒˆํ˜ธ ํ† ํฐ(MCP_AUTH_TOKEN)์„ ์•„๋Š” ์ธ๊ฐ€๋œ ์‚ฌ์šฉ์ž๋งŒ ์•ˆ์ „ํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  • 19์ข… ํ’€์Šคํƒ MCP ๊ฐœ๋ฐœ ๋„๊ตฌ & OpenAPI 3.0 ๋ช…์„ธ ํƒ‘์žฌ:

    • ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ CRUD, ํŒจ์น˜ ์ ์šฉ(apply_patch), ๋น„๋™๊ธฐ ํ”„๋กœ์„ธ์Šค ๋ฐ PowerShell/CMD ์‹คํ–‰, ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์™„๋ฒฝ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • Cloudflare Tunnel ๊ธฐ๋ฐ˜ Zero Trust ํ†ต์‹ :

    • ๋ณต์žกํ•œ ํฌํŠธํฌ์›Œ๋”ฉ์ด๋‚˜ ๋ฐฉํ™”๋ฒฝ ๊ฐœ๋ฐฉ ์—†์ด Cloudflare Tunnel์„ ํ†ตํ•ด ์•ˆ์ „ํ•œ HTTPS ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ํ”„๋กœ์ ํŠธ ๋ฌด์ค‘๋‹จ ์ „ํ™˜ ์ง€์›:

    • .env์—์„œ MCP_WORKSPACE_ROOT๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๊ธฐ์กด ChatGPT ์ธ์ฆ ์„ธ์…˜์„ ์œ ์ง€ํ•œ ์ฑ„๋กœ ์ž‘์—… ํด๋”๋ฅผ ์ฆ‰์‹œ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ—๏ธ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                   ChatGPT (Web / App)                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ”‚ HTTPS (Streamable HTTP / OAuth 2.1)
                            โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚        Cloudflare Zero Trust Tunnel (mcp.yourdomain)   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ”‚ Local Proxy (HTTP localhost:<MCP_PORT>)
                            โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚            Windows Scoped Remote MCP Server            โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚ Express Router (/mcp, /authorize, /openapi.json) โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                           โ”‚                            โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚   SandboxGuard & ProcessManager & FileService    โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ”‚ ๊ฒฉ๋ฆฌ๋œ ํŒŒ์ผ & ๋ช…๋ น์–ด ์‹คํ–‰
                            โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚       ๋‚ด ๋กœ์ปฌ ์ž‘์—… ๊ณต๊ฐ„ (MCP_WORKSPACE_ROOT)            โ”‚
โ”‚      ์˜ˆ: D:\Godot\mcp-test ๋˜๋Š” D:\Godot\MyGame         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ› ๏ธ ์ œ๊ณต ๋„๊ตฌ ๋ชฉ๋ก (์ด 30 Tools)

๐ŸŒ 1. ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™” & ์›น ํ…Œ์ŠคํŠธ ๋„๊ตฌ (Playwright 8 Tools)

๋„๊ตฌ๋ช… (Tool)

์„ค๋ช…

browser_navigate

์›น์‚ฌ์ดํŠธ ์ฃผ์†Œ(URL)๋กœ ๋ธŒ๋ผ์šฐ์ € ์ด๋™ ๋ฐ ํŽ˜์ด์ง€ ๋กœ๋“œ

browser_screenshot

ํ˜„์žฌ ์›น ํ™”๋ฉด ์Šคํฌ๋ฆฐ์ƒท ์บก์ฒ˜ ๋ฐ ์ž‘์—… ํด๋”์— ์ด๋ฏธ์ง€ ํŒŒ์ผ(PNG) ์ €์žฅ

browser_click

๋ฒ„ํŠผ, ๋งํฌ ๋“ฑ ํŠน์ • HTML ์š”์†Œ๋ฅผ ๋งˆ์šฐ์Šค ํด๋ฆญ

browser_fill

๊ฒ€์ƒ‰์ฐฝ, ์ž…๋ ฅ ํผ์— ํ…์ŠคํŠธ ์ž๋™ ํƒ€์ดํ•‘ ๋ฐ ์ž…๋ ฅ

browser_get_content

์›นํŽ˜์ด์ง€ ๋ณธ๋ฌธ ํ…์ŠคํŠธ ๋˜๋Š” HTML ์†Œ์Šค ์ถ”์ถœ

browser_evaluate

๋ธŒ๋ผ์šฐ์ € ์ฝ˜์†”์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(JS) ์ฝ”๋“œ ์‹คํ–‰ ๋ฐ ๊ฒฐ๊ณผ ์ˆ˜์ง‘

browser_press_key

ํ‚ค๋ณด๋“œ ํ‚ค(Enter, Tab, Escape, ํ™”์‚ดํ‘œ ๋“ฑ) ์ž…๋ ฅ

browser_close

๋ธŒ๋ผ์šฐ์ € ์„ธ์…˜ ์ข…๋ฃŒ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ

๐Ÿ“‚ 2. ๋‹ค์ค‘ ์›Œํฌ์ŠคํŽ˜์ด์Šค ๊ด€๋ฆฌ ๋„๊ตฌ (3 Tools)

๋„๊ตฌ๋ช… (Tool)

์„ค๋ช…

list_workspaces

๋“ฑ๋ก๋œ ๋ชจ๋“  ๋‹ค์ค‘ ์›Œํฌ์ŠคํŽ˜์ด์Šค ๋ชฉ๋ก, ๋ณ„์นญ(Alias), ํ™œ์„ฑํ™” ์ƒํƒœ ์กฐํšŒ

get_active_workspace

ํ˜„์žฌ ํ™œ์„ฑํ™”๋œ ๊ธฐ๋ณธ ์ž‘์—… ๊ณต๊ฐ„์˜ ์ด๋ฆ„๊ณผ ์ ˆ๋Œ€ ๊ฒฝ๋กœ ์กฐํšŒ

switch_workspace

๋ณ„์นญ(Alias) ๋˜๋Š” ๊ฒฝ๋กœ๋กœ ํ™œ์„ฑ ์ž‘์—… ๊ณต๊ฐ„์„ ์‹ค์‹œ๊ฐ„ ์ „ํ™˜

๐Ÿ“ 3. ํŒŒ์ผ ๋ฐ ์ฝ”๋“œ ์กฐ์ž‘ ๋„๊ตฌ (11 Tools)

๋„๊ตฌ๋ช… (Tool)

์„ค๋ช…

list_directory

์ง€์ •ํ•œ ๊ฒฝ๋กœ์˜ ํŒŒ์ผ ๋ฐ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก ์กฐํšŒ

read_file

ํ…์ŠคํŠธ ํŒŒ์ผ ์ฝ๊ธฐ (์˜คํ”„์…‹ ๋ฐ ๋ถ„ํ•  ์ฝ๊ธฐ ์ง€์›)

write_file

์‹ ๊ทœ ํŒŒ์ผ ์ƒ์„ฑ ๋ฐ ๋ฎ์–ด์“ฐ๊ธฐ/์ด์–ด์“ฐ๊ธฐ

edit_file

ํŠน์ • ์ค„ ๋ฒˆํ˜ธ ๋ฐ ๋ธ”๋ก ๋‹จ์œ„์˜ ์ •ํ™•ํ•œ ์ฝ”๋“œ ์ˆ˜์ •

replace_in_file

๋ฌธ์ž์—ด ๊ฒ€์ƒ‰ ๋ฐ ๋Œ€์ƒ ํ…์ŠคํŠธ ์ผ๊ด„/๋‹จ์ผ ๊ต์ฒด

apply_patch

ํ‘œ์ค€ Unified Diff / Patch ํ˜•์‹์œผ๋กœ ํŒŒ์ผ์— ํŒจ์น˜ ์ ์šฉ

make_directory

์‹ ๊ทœ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ

delete_file

ํŒŒ์ผ ๋ฐ ๋นˆ ๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œ

move_file

ํŒŒ์ผ/ํด๋” ์ด๋™ ๋ฐ ์ด๋ฆ„ ๋ณ€๊ฒฝ

copy_file

ํŒŒ์ผ/ํด๋” ๋ณต์‚ฌ

stat_path

ํŒŒ์ผ/ํด๋”์˜ ํฌ๊ธฐ, ์ˆ˜์ •์ผ, ์†์„ฑ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์กฐํšŒ

โšก 4. ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์–ด ๋ฐ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ๋„๊ตฌ (8 Tools)

๋„๊ตฌ๋ช… (Tool)

์„ค๋ช…

search_files

Glob ํŒจํ„ด์œผ๋กœ ํŒŒ์ผ๋ช… ๊ฒ€์ƒ‰

find_in_files

ํŒŒ์ผ ๋‚ด๋ถ€ ํ…์ŠคํŠธ ๋ฐ ์ •๊ทœ์‹ ๊ณ ์† ๊ฒ€์ƒ‰

exec_command

PowerShell ๋˜๋Š” CMD ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜

run_script

PowerShell, Batch, Node.js, Python ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰

read_process_output

์žฅ๊ธฐ ์‹คํ–‰ ์ค‘์ธ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค์˜ ์ถœ๋ ฅ ๋ฒ„ํผ ์ฝ๊ธฐ

write_process_input

์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์˜ ํ‘œ์ค€ ์ž…๋ ฅ(stdin)์œผ๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก

stop_process

๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ

list_processes

ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก ๋ฐ ์ƒํƒœ ์กฐํšŒ


โš™๏ธ 1. ํ™˜๊ฒฝ ์„ค์ • ๊ฐ€์ด๋“œ (.env)

ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์˜ .env.example ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜์—ฌ .env ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ ํ›„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค:

copy .env.example .env

๐Ÿ“‹ ์ฃผ์š” ์„ค์ • ํ•ญ๋ชฉ ์ƒ์„ธ ์„ค๋ช…

ํ™˜๊ฒฝ ๋ณ€์ˆ˜

๊ธฐ๋ณธ๊ฐ’ / ์˜ˆ์‹œ

ํ•„์ˆ˜ ์—ฌ๋ถ€

์„ค๋ช…

MCP_PORT

12000

์„ ํƒ

๋กœ์ปฌ์—์„œ Express ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋  ํฌํŠธ ๋ฒˆํ˜ธ (๊ธฐ๋ณธ๊ฐ’: 12000)

MCP_WORKSPACE_ROOTS

test:C:\path\to\mcp-test, ether:C:\path\to\ether-chronicle

ํ•„์ˆ˜

ChatGPT๊ฐ€ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์ค‘ ์ž‘์—… ๊ณต๊ฐ„ (๋ณ„์นญ:๊ฒฝ๋กœ)

MCP_AUTH_TOKEN

your_secure_password

ํ•„์ˆ˜

ChatGPT OAuth ์Šน์ธ ํŽ˜์ด์ง€(/authorize)์—์„œ ์ž…๋ ฅํ•  ๋ณด์•ˆ ๋น„๋ฐ€๋ฒˆํ˜ธ

MCP_PUBLIC_URL

https://mcp.yourdomain.com

ํ•„์ˆ˜

Cloudflare Tunnel์„ ํ†ตํ•ด ์™ธ๋ถ€์— ๋…ธ์ถœ๋˜๋Š” ๊ณต๊ฐœ HTTPS ์ฃผ์†Œ

CLOUDFLARE_TUNNEL_TOKEN

your_tunnel_token

์„ ํƒ

Cloudflare Zero Trust ๋Œ€์‹œ๋ณด๋“œ์—์„œ ๋ฐœ๊ธ‰๋ฐ›์€ ๊ณ ์ • ํ„ฐ๋„ ํ† ํฐ

MCP_DEFAULT_SHELL

powershell

์„ ํƒ

exec_command ์‹คํ–‰ ์‹œ ๊ธฐ๋ณธ ์‰˜ (powershell, cmd, pwsh)

MCP_MAX_FILE_CHUNK_BYTES

1048576 (1MB)

์„ ํƒ

read_file 1ํšŒ ์ตœ๋Œ€ ์ฝ๊ธฐ ๋ฐ”์ดํŠธ ํฌ๊ธฐ

MCP_MAX_EDIT_FILE_BYTES

67108864 (64MB)

์„ ํƒ

edit_file / write_file ์ตœ๋Œ€ ์ˆ˜์ • ๊ฐ€๋Šฅ ํŒŒ์ผ ํฌ๊ธฐ

MCP_MAX_OUTPUT_BYTES

1048576 (1MB)

์„ ํƒ

ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์–ด ์‹คํ–‰ ์ถœ๋ ฅ ๋ฒ„ํผ ์ตœ๋Œ€ ํฌ๊ธฐ

# [Server Port]
MCP_PORT=12000

# [Multi-Root Security & Directory Sandbox]
MCP_WORKSPACE_ROOTS=test:C:\path\to\mcp-test, ether:C:\path\to\ether-chronicle, server:C:\path\to\localRemoteMcp

# [Authentication - ChatGPT OAuth 2.1]
MCP_AUTH_TOKEN=your_secure_password_here

# [Public Domain & Cloudflare Tunnel]
MCP_PUBLIC_URL=https://mcp.yourdomain.com
CLOUDFLARE_TUNNEL_TOKEN=your_cloudflare_tunnel_token_here

# [Shell Configuration]
MCP_DEFAULT_SHELL=powershell

# [Limits - Safety Guardrails]
MCP_MAX_FILE_CHUNK_BYTES=1048576
MCP_MAX_EDIT_FILE_BYTES=67108864
MCP_MAX_OUTPUT_BYTES=1048576

๐ŸŒ 2. Cloudflare Tunnel ๋ฐ ๋„๋ฉ”์ธ ์—ฐ๋™

๋ณธ ์„œ๋ฒ„๋Š” Cloudflare Zero Trust ํ„ฐ๋„์„ ํ†ตํ•ด .env์— ์ง€์ •๋œ ๋กœ์ปฌ ํฌํŠธ(MCP_PORT, ๊ธฐ๋ณธ๊ฐ’: 12000)๋ฅผ ๋ณด์œ ํ•˜์‹  ๋„๋ฉ”์ธ์˜ ์„œ๋ธŒ๋„๋ฉ”์ธ(https://mcp.yourdomain.com)์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”Œ Cloudflare ๋Œ€์‹œ๋ณด๋“œ ์„ค์ •

  1. Cloudflare Zero Trust Dashboard โž” Networks โž” Tunnels ๋ฉ”๋‰ด๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  2. **[Create a tunnel]**์„ ํด๋ฆญํ•˜์—ฌ Cloudflared ํ„ฐ๋„์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  3. Public Hostname ์ถ”๊ฐ€:

    • Subdomain: mcp (๋˜๋Š” ์›ํ•˜๋Š” ์„œ๋ธŒ๋„๋ฉ”์ธ)

    • Domain: yourdomain.com (๋ณด์œ ํ•˜์‹  ๋„๋ฉ”์ธ ์„ ํƒ)

    • Service Type: HTTP

    • URL: localhost:<MCP_PORT> (์˜ˆ: localhost:12000)

  4. ๋ฐœ๊ธ‰๋œ **ํ„ฐ๋„ ํ† ํฐ(Token)**์„ ๋ณต์‚ฌํ•˜์—ฌ .env์˜ CLOUDFLARE_TUNNEL_TOKEN ํ•ญ๋ชฉ์— ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค.


๐Ÿ“ฆ 3. Cloudflare ๋ฐ”์ด๋„ˆ๋ฆฌ (bin/cloudflared.exe) ์•ˆ๋‚ด

๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ํ„ฐ๋„์„ ์ž๋™์œผ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด cloudflared.exe ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ์ž๋™ ๋‹ค์šด๋กœ๋“œ ์ง€์› (๊ถŒ์žฅ):

    • start.bat ๋˜๋Š” start.ps1์„ ์ตœ์ดˆ ์‹คํ–‰ํ•  ๋•Œ bin/cloudflared.exe๊ฐ€ ์—†์œผ๋ฉด ๊ณต์‹ Cloudflare GitHub Release์—์„œ ์ตœ์‹  ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.

    • ์‚ฌ์šฉ์ž๊ฐ€ ๋ณ„๋„๋กœ ๋‹ค์šด๋กœ๋“œํ•  ํ•„์š” ์—†์ด start.bat๋งŒ ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • ์ˆ˜๋™ ๋‹ค์šด๋กœ๋“œ (์˜คํ”„๋ผ์ธ / ๋ฐฉํ™”๋ฒฝ ํ™˜๊ฒฝ):

    • ์ž๋™ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์ œํ•œ๋œ ํ™˜๊ฒฝ์ธ ๊ฒฝ์šฐ, Cloudflare ๊ณต์‹ ๋ฆด๋ฆฌ์ฆˆ ํŽ˜์ด์ง€์—์„œ cloudflared-windows-amd64.exe ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•œ ๋’ค, ํ”„๋กœ์ ํŠธ ๋‚ด bin/cloudflared.exe ๊ฒฝ๋กœ๋กœ ์ด๋ฆ„์„ ๋ฐ”๊พธ์–ด ๋„ฃ์–ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.


๐Ÿš€ 4. ์„œ๋ฒ„ ์‹คํ–‰ ๋ฐฉ๋ฒ•

๋ฐฉ๋ฒ• A. ์›ํด๋ฆญ ์ž๋™ ์‹คํ–‰ (start.bat / ๊ถŒ์žฅ)

start.bat์„ ๋”๋ธ” ํด๋ฆญํ•˜๊ฑฐ๋‚˜ ์ฝ˜์†”์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

start.bat

(์ž๋™์œผ๋กœ npm ํŒจํ‚ค์ง€ ์„ค์น˜ โž” .env ํ™•์ธ โž” cloudflared ๋ฐ”์ด๋„ˆ๋ฆฌ ํ™•์ธ โž” TypeScript ๋นŒ๋“œ ๋ฐ ์„œ๋ฒ„ + ํ„ฐ๋„์„ ํ•œ ๋ฒˆ์— ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค)

๋ฐฉ๋ฒ• B. ์ˆ˜๋™ ํ„ฐ๋ฏธ๋„ ์‹คํ–‰

# 1. ์˜์กด์„ฑ ์„ค์น˜
npm install

# 2. TypeScript ์ปดํŒŒ์ผ
npm run build

# 3. ํ…Œ์ŠคํŠธ ์‹คํ–‰
npm test

# 4. ์„œ๋ฒ„ ์‹œ์ž‘
npm start

๐Ÿค– 5. ChatGPT ์•ฑ / ํ”Œ๋Ÿฌ๊ทธ์ธ ์—ฐ๊ฒฐ ๊ฐ€์ด๋“œ (๋‹จ๊ณ„๋ณ„)

1๋‹จ๊ณ„. ChatGPT ์•ฑ ๋“ฑ๋ก

  1. ChatGPT ์›น์— ์ ‘์†ํ•˜์—ฌ **[์„ค์ •] โž” [ํ”Œ๋Ÿฌ๊ทธ์ธ / ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ]**๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  2. **[+ ์ƒˆ ํ”Œ๋Ÿฌ๊ทธ์ธ / ์•ฑ ๋งŒ๋“ค๊ธฐ]**๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์„ค์ •๊ฐ’์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค:

    • ์ด๋ฆ„: my-remote (๋˜๋Š” ์›ํ•˜๋Š” ์ด๋ฆ„)

    • ์—ฐ๊ฒฐ (Connection): ์„œ๋ฒ„ URL โž” https://mcp.yourdomain.com/mcp (๋ณธ์ธ ๋„๋ฉ”์ธ)

    • ์ธ์ฆ (Authentication): OAuth ์„ ํƒ

  4. **[๋งŒ๋“ค๊ธฐ]**๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

2๋‹จ๊ณ„. ๋ณด์•ˆ ๋กœ๊ทธ์ธ ์Šน์ธ

  1. ๋“ฑ๋ก๋œ ์•ฑ ์ƒ์„ธ ํ™”๋ฉด์—์„œ [์—ฐ๊ฒฐ โž”] ๋ฒ„ํŠผ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

  2. ๋ธŒ๋ผ์šฐ์ € ํŒ์—…์œผ๋กœ [Windows Scoped Remote MCP ์Šน์ธ] ์›น ํŽ˜์ด์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

  3. ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ๋ž€์— .env์— ์„ค์ •๋œ MCP_AUTH_TOKEN ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ณ  **[์Šน์ธํ•˜๊ณ  ChatGPT๋กœ ๋Œ์•„๊ฐ€๊ธฐ]**๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

3๋‹จ๊ณ„. ๊ถŒํ•œ ์„ค์ • ("๋ชจ๋“  ์•ก์…˜ ํ—ˆ์šฉ")

  • ์•ฑ ์ƒ์„ธ ํ™”๋ฉด์˜ ๊ถŒํ•œ (Permissions) ์˜ต์…˜์„ **๋ชจ๋“  ์•ก์…˜ ํ—ˆ์šฉ**์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • (๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ ํ™•์ธ ํŒ์—…์ด ๋œจ์ง€ ์•Š๊ณ  ChatGPT๊ฐ€ ์ž์œจ์ ์œผ๋กœ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค)


๐Ÿ’ฌ 6. ์‹ค์ „ ๋Œ€ํ™”ํ˜• ๊ฐœ๋ฐœ ํ”„๋กฌํ”„ํŠธ ์˜ˆ์‹œ

์ƒˆ ์ฑ„ํŒ…์ฐฝ(๋˜๋Š” @ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ฑ„ํŒ…์ฐฝ)์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง€์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

# 1. ํ”„๋กœ์ ํŠธ ํŒŒ์ผ ๋ชฉ๋ก ๋ฐ ๊ตฌ์กฐ ํŒŒ์•…
@my-remote ํ˜„์žฌ ์ž‘์—… ๊ณต๊ฐ„์˜ ํŒŒ์ผ๊ณผ ํด๋” ๋ชฉ๋ก์„ ์ •๋ฆฌํ•ด์„œ ๋ณด์—ฌ์ค˜

# 2. ์›น ๊ฒŒ์ž„ / ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ
@my-remote HTML5 Canvas๋กœ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ ˆํŠธ๋กœํ’ ๋ฒฝ๋Œ๊นจ๊ธฐ ๊ฒŒ์ž„(breakout.html)์„ ์„ธ๋ จ๋˜๊ฒŒ ๋งŒ๋“ค์–ด์ค˜

# 3. Godot 4 ๊ฒŒ์ž„ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ
@my-remote Godot 4 ๊ธฐ์ค€์œผ๋กœ 2D ์บ๋ฆญํ„ฐ ์ด๋™, ๋Œ€์‹œ, ์ ํ”„ ๋ฐ ๋ฌผ๋ฆฌ ์ถฉ๋Œ์„ ์ฒ˜๋ฆฌํ•˜๋Š” Player.gd๋ฅผ ์ž‘์„ฑํ•ด์ค˜

# 4. ํŒจํ‚ค์ง€ ์„ค์น˜ ๋ฐ ํ…Œ์ŠคํŠธ ์‹คํ–‰
@my-remote npm install ๋ช…๋ น์–ด๋กœ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๊ณ  npm test๋ฅผ ๋Œ๋ ค ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ด์ค˜

# 5. ์›น ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™” & ํ™”๋ฉด ์บก์ฒ˜ (Playwright)
@my-remote ๋„ค์ด๋ฒ„(naver.com)๋กœ ์ด๋™ํ•ด์„œ ๊ฒ€์ƒ‰์ฐฝ์— 'Godot Engine 4' ๊ฒ€์ƒ‰ํ•˜๊ณ  ๊ฒฐ๊ณผ ํŽ˜์ด์ง€ ์Šคํฌ๋ฆฐ์ƒท ์ฐ์–ด์„œ search.png๋กœ ์ €์žฅํ•ด์ค˜

# 6. ๋‚ด๊ฐ€ ๋งŒ๋“  ๋กœ์ปฌ ์›นํŽ˜์ด์ง€ ์‹ค์‹œ๊ฐ„ ๊ฒ€์ฆ
@my-remote ๋กœ์ปฌ ์›น์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €๋กœ ์ ‘์†ํ•ด์„œ [๊ฒŒ์ž„ ์‹œ์ž‘] ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ ๋‹ค์Œ ํ™”๋ฉด์ด ์ž˜ ๋‚˜์˜ค๋Š”์ง€ ์Šคํฌ๋ฆฐ์ƒท์œผ๋กœ ํ™•์ธํ•ด์ค˜

๐Ÿ“‚ 7. ๋‹ค์ค‘ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๋ฐ ์‹ค์‹œ๊ฐ„ ์ „ํ™˜ ๋ฐฉ๋ฒ•

๋ณธ ์„œ๋ฒ„๋Š” **๋‹ค์ค‘ ์›Œํฌ์ŠคํŽ˜์ด์Šค(Multi-Workspace)**๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ, ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋™์‹œ์— ๋“ฑ๋กํ•˜๊ณ  ๋Œ€ํ™” ๋„์ค‘ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๋ฒ• A. ChatGPT ๋Œ€ํ™”๋กœ ์‹ค์‹œ๊ฐ„ ์ „ํ™˜ (์„œ๋ฒ„ ์žฌ๋ถ€ํŒ… ์—†์Œ โญ)

  1. ํ˜„์žฌ ์ž‘์—… ๊ณต๊ฐ„ ํ™•์ธ:

    @my-remote ํ˜„์žฌ ์ž‘์—… ๊ณต๊ฐ„์ด ์–ด๋””๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์ค˜
  2. ๋“ฑ๋ก๋œ ์ „์ฒด ํ”„๋กœ์ ํŠธ ๋ชฉ๋ก ํ™•์ธ:

    @my-remote ๋“ฑ๋ก๋œ ๋ชจ๋“  ์›Œํฌ์ŠคํŽ˜์ด์Šค ๋ชฉ๋ก์„ ๋ณด์—ฌ์ค˜
  3. ์ž‘์—… ๊ณต๊ฐ„ ์ฆ‰์‹œ ์ „ํ™˜:

    @my-remote ether ํ”„๋กœ์ ํŠธ๋กœ ์ž‘์—… ๊ณต๊ฐ„์„ ์ „ํ™˜ํ•ด์ค˜

    (ChatGPT๊ฐ€ switch_workspace(name: "ether") ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์„œ๋ฒ„ ์žฌ๋ถ€ํŒ… ์—†์ด ์ฆ‰์‹œ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค)

๋ฐฉ๋ฒ• B. ์ƒˆ ํ”„๋กœ์ ํŠธ ์ถ”๊ฐ€ ๋“ฑ๋ก (.env)

  1. .env ํŒŒ์ผ์˜ MCP_WORKSPACE_ROOTS์— ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ ๋ณ„์นญ๊ณผ ๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

    MCP_WORKSPACE_ROOTS=test:C:\path\to\mcp-test, ether:C:\path\to\ether-chronicle, mygame:C:\path\to\mygame
  2. ํ„ฐ๋ฏธ๋„์—์„œ start.bat์„ ์žฌ์‹คํ–‰ํ•˜๋ฉด ์ถ”๊ฐ€๋œ ํ”„๋กœ์ ํŠธ๋“ค๋„ ์ฆ‰์‹œ ์ ‘๊ทผ ๋ฐ ์ „ํ™˜์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค. (OAuth ์ธ์ฆ ํ† ํฐ ์„ธ์…˜์€ ์˜๊ตฌ ๋ณด์กด๋ฉ๋‹ˆ๋‹ค)


๐Ÿ”’ 8. ๋ณด์•ˆ ๋ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ

  • Q. ์™ธ๋ถ€์ธ์ด ๋‚ด ์ปดํ“จํ„ฐ์— ๋ฌด๋‹จ ์ ‘์†ํ•  ์œ„ํ—˜์€ ์—†๋‚˜์š”?

    • 3์ค‘ ๋ณด์•ˆ ๊ตฌ์กฐ๋กœ ์™„๋ฒฝํ•˜๊ฒŒ ๋ณดํ˜ธ๋ฉ๋‹ˆ๋‹ค:

      1. ๋น„๋ฐ€๋ฒˆํ˜ธ ์ธ์ฆ: MCP_AUTH_TOKEN ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•„๋Š” ๋ณธ์ธ์˜ ChatGPT ๊ณ„์ •๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ.

      2. ์ƒŒ๋“œ๋ฐ•์Šค ๊ฒฉ๋ฆฌ: ํŒŒ์ผ ๋ฐ ๋ช…๋ น์–ด๊ฐ€ ์˜ค์ง ์ง€์ •๋œ MCP_WORKSPACE_ROOT ๋‚ด์—์„œ๋งŒ ์ž‘๋™ํ•˜๋ฉฐ ์ƒ์œ„ ๊ฒฝ๋กœ ์ ‘๊ทผ ์‹œ ์ฆ‰์‹œ ์ฐจ๋‹จ.

      3. Cloudflare Zero Trust: Cloudflare ๋Œ€์‹œ๋ณด๋“œ์—์„œ ๋‚ด IP๋งŒ ํ—ˆ์šฉํ•˜๋Š” ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Q. ํ„ฐ๋„์ด ์—ฐ๊ฒฐ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ 502 ์—๋Ÿฌ๊ฐ€ ๋‚  ๋•Œ:

    • start.bat ์ฐฝ์—์„œ ๋กœ์ปฌ ์„œ๋ฒ„(port: .env์˜ MCP_PORT)๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ๋ธŒ๋ผ์šฐ์ €์—์„œ https://mcp.yourdomain.com/health๋กœ ์ ‘์†ํ•˜์—ฌ { status: "ok" } ์‘๋‹ต์ด ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“„ ๋ผ์ด์„ ์Šค

MIT License

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
โ€“Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.

  • Persistent cloud development environments that coding agents create, run and test software in.

  • Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/moosin76/windows-scoped-remote-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server