Skip to main content
Glama

My Cool Proxy

NPM Version

My Cool Proxy는 오늘날의 MCP가 가진 많은 문제점들을 해결하려는 Model Context Protocol (MCP) 서버 게이트웨이입니다. 그 문제점들은 특별한 순서 없이 다음과 같습니다:

  • 도구 설명이 컨텍스트 창을 부풀립니다: 대부분의 에이전트가 MCP와 통합하는 방식의 문제입니다. 필요할 때 도구를 로드할 수 있는 추상화를 구현하는 대신, 대부분의 애플리케이션은 모든 MCP 도구를 한 번에 컨텍스트에 덤프합니다. 이를 완화하기 위해 My Cool Proxy는 도구를 Lua 인터프리터로 감싸고 도구를 점진적으로 발견하기 위한 상위 수준 도구를 제공합니다. 자세한 내용은 점진적 공개를 참조하세요.

  • 도구 결과가 컨텍스트 창을 부풀립니다. Bash를 사용하면 안 되나요? MCP 도구를 사용하는 대신 에이전트가 터미널 명령을 실행하고 bash로 결과를 필터링할 수도 있습니다. 하지만 이는 에이전트가 고위험 작업을 더 자주 수행하도록 허용한다는 뜻입니다. 예를 들어 에이전트가 gh CLI를 사용하여 GitHub와 상호작용하도록 허용할 수 있지만, 그렇다면 gh CLI를 사용하여 변경하거나 파괴적인 작업도 수행할 수 있습니다. GitHub MCP Server를 사용하면 대신 읽기 전용 도구로 범위를 쉽게 제한할 수 있습니다. MCP를 사용하면 에이전트가 접근할 수 있는 도구를 엄격하게 제어할 수 있습니다. 이를 돕기 위해 My Cool Proxy는 에이전트에 노출되는 도구를 추가로 필터링할 수 있게 해줍니다.

  • 대부분의 MCP 기능이 지원되지 않습니다: 안타깝게도 대부분의 애플리케이션은 에이전트에게 MCP 도구만 노출하고 프로토콜이 제공하는 다른 클라이언트 및 서버 기능은 무시합니다. My Cool Proxy는 가능한 한 많은 프로토콜 기능을 위한 공통 추상화 계층이 되는 것을 목표로 하며, 개발자가 MCP 호환 애플리케이션에서 MCP의 전체 기능을 사용할 수 있게 합니다. 이는 진행 중인 작업이며 자세한 내용은 기능 지원 표를 확인하세요.

  • 여러 에이전트용 설정 파일을 관리하는 것은 고통입니다: MCP 호환 애플리케이션을 두 개 이상 사용한다면, 여러 애플리케이션 간에 MCP 서버 구성을 동기화하는 데 어려움을 겪게 될 것입니다. My Cool Proxy는 사용하는 모든 서버에 대한 단일 통합 지점 역할을 하여 동기화해야 하는 서버 수를 하나로 줄임으로써 이 문제를 해결합니다.

빠른 시작

0. 설치

전역으로 설치하여 CLI 도구로 사용하세요:

npm install -g @karashiiro/my-cool-proxy

또는 npx로 직접 실행하세요:

npx @karashiiro/my-cool-proxy

1. 설정

게이트웨이는 첫 실행 시 기본 설정을 자동 생성합니다. 설정 파일을 생성하려면 한 번만 실행하세요:

my-cool-proxy  # Creates config and starts (with no servers)

# Find your config location
my-cool-proxy --config-path

그런 다음 설정을 편집하여 MCP 서버를 추가하세요.

예시 설정 구조:

{
  "port": 3000,
  "host": "localhost",
  "mcpClients": {
    "my-server": {
      "type": "http",
      "url": "https://example.com/mcp"
    }
  }
}

또는, 더 완전한 시작점을 위해 예시 설정을 복사하세요.

2. 실행

# If installed globally
my-cool-proxy

# If running via npx
npx @karashiiro/my-cool-proxy

3. 연결

예를 들어 Claude Desktop의 MCP 클라이언트 설정에 추가하세요:

{
  "mcpServers": {
    "my-cool-proxy": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

4. 사용하기

에이전트에게 설정한 MCP 서버가 도움을 줄 수 있는 작업을 요청하고 실행을 지켜보세요!

Related MCP server: MCP Gateway

점진적 공개

이 프록시는 에이전트와 여러 MCP(Model Context Protocol) 서버 간의 게이트웨이 역할을 합니다. 에이전트는 각 MCP 서버에 개별적으로 연결하는 대신 이 단일 프록시에 연결하고 통합 인터페이스를 통해 모든 설정된 서버에 접근할 수 있습니다.

에이전트는 사용 가능한 서버나 도구에 대한 최소한의 지식으로 시작합니다. 점진적으로 컨텍스트를 구축합니다:

  1. 서버 지침을 확인합니다. My Cool Proxy는 설정된 서버와 도구의 간략한 발췌문이 포함된 작은 프롬프트를 미리 로드하여 에이전트가 이를 사용하도록 유도합니다.

  2. list-servers를 호출합니다. 에이전트의 컨텍스트에는 이제 사용 가능한 모든 MCP 서버의 이름과 설명이 포함됩니다(예: "github", "slack", "database").

  3. list-server-tools(server_name)를 호출합니다. 에이전트의 컨텍스트가 해당 특정 서버의 모든 도구 이름과 설명을 포함하도록 확장됩니다.

  4. tool-details(server_name, tool_name)을 호출합니다. 에이전트의 컨텍스트에는 이제 특정 도구에 대한 전체 매개변수 스키마, 반환 유형(사용 가능한 경우) 및 사용 예제가 포함됩니다.

  5. execute(lua_script)를 호출합니다. 전체 컨텍스트를 통해 에이전트는 발견된 도구를 호출하는 Lua 스크립트를 작성할 수 있습니다.

모든 도구와 도구 설명을 처음부터 컨텍스트에 로드하는 대신, 에이전트가 해당 도구가 필요하다고 판단할 때까지 도구 로드를 지연시킵니다.

Lua를 사용한 도구 체이닝: 에이전트는 어떤 도구가 존재하는지 알게 되면 단일 execute() 호출로 복잡한 다단계 워크플로를 구성할 수 있어 중간 도구 결과의 컨텍스트 오버헤드를 절약할 수 있습니다. Lua 런타임은 발견된 모든 서버를 전역 변수로 제공하며, 도구는 비동기 함수로 호출할 수 있습니다.

순차적 도구 체이닝:

local raw_data = api_server.fetch({ id = 123 }):await()
local processed = processor.transform({ input = raw_data }):await()
result(processed)

조건부 로직:

local status = checker.validate({}):await()
if status.ok then
  result(processor.run({}):await())
else
  result(error_handler.notify({ error = status.message }):await())
end

반복문을 사용한 반복:

local results = {}
for i = 1, 5 do
  results[i] = worker.process({ index = i }):await()
end
result({ total = #results, data = results })

Gateway Skills

Gateway Skills는 My Cool Proxy의 Agent Skills 구현체로, 에이전트가 MCP Resources로 로드할 수 있는 재사용 가능한 컨텍스트 문서입니다. 활성화되면 에이전트는 다음을 수행할 수 있습니다:

  • 게이트웨이 서버 지침에 자동으로 주입된 프롬프트를 통해 스킬을 발견할 수 있습니다 (_gateway.list_resources() Lua 내장 함수 사용 또는 gw-skill:// URI를 찾아보세요).

  • _gateway.read_resource() Lua 내장 함수를 통해 스킬 콘텐츠를 읽을 수 있습니다.

  • _gateway.invoke_skill_script() Lua 내장 함수를 통해 스킬 스크립트를 실행할 수 있습니다.

많은 에이전트가 이미 자체 스킬 시스템을 구현하고 있지만, 이러한 시스템은 매우 파편화되어 있어 여러 개별 에이전트 애플리케이션에서 동일한 스킬을 재사용하기 어렵습니다. skills.sh와 같은 일부 시스템은 애플리케이션 간에 스킬을 명시적으로 복사하여 이 문제를 해결하지만, My Cool Proxy는 모든 스킬을 자체 스킬 관리 시스템에 중앙화하고 MCP를 통해 노출하여 이 문제를 해결합니다. My Cool Proxy는 기존 스킬 시스템과 구별하기 위해 이를 "Gateway Skills"라고 부릅니다.

Gateway Skills는 에이전트에 내장된 기존 스킬 시스템과 충돌할 수 있으므로 기본적으로 비활성화되어 있습니다. 설정 옵션은 설정 가이드를 참조하세요.

Gateway Skills가 이러한 방식으로 구현된 이유에 대한 더 깊은 설계 논의는 설계 문서의 이 섹션을 참조하세요.

웹 대시보드

My Cool Proxy에는 게이트웨이 활동을 모니터링하기 위한 선택적 웹 대시보드가 포함되어 있습니다. 활성화하면 별도의 포트에서 실행되며 다음을 제공합니다:

  • 실행 기록 — 모든 Lua 스크립트 실행을 구문 강조된 스크립트와 결과와 함께 탐색합니다.

  • 도구 호출 로그 — 각 실행 중 호출된 MCP 도구를 확인합니다.

  • 세션 모니터링 — 활성 세션, 연결된 서버 및 기능을 봅니다.

  • 실시간 업데이트 — 새로운 실행이 WebSocket을 통해 대시보드로 스트리밍됩니다.

설정에 dashboard 섹션을 추가하여 활성화하세요:

{
  "dashboard": {
    "port": 3100,
    "host": "localhost"
  }
}

그런 다음 브라우저에서 http://localhost:3100에 접속하세요. 자세한 내용은 설정 가이드를 참조하세요.

설정

전체 설정 참조는 설정 가이드를 참조하세요.

MCP 기능 지원 표

기능

지원 여부

세부 정보

도구

✅

My Cool Proxy는 도구가 최소한으로 지원되기를 기대합니다. 다행히도 MCP를 지원하는 모든 것은 도구를 지원합니다.

프롬프트

✅

My Cool Proxy는 MCP 서버의 프롬프트를 연결된 클라이언트로 전달하며, 에이전트가 스크립트 내에서 프롬프트를 로드할 수 있도록 _gateway.get_prompt() 및 _gateway.list_prompts() Lua 내장 함수를 제공합니다.

리소스

✅

My Cool Proxy는 MCP 서버의 리소스를 연결된 클라이언트로 전달하고, 에이전트가 스크립트 내에서 리소스를 로드할 수 있도록 _gateway.read_resource() 및 _gateway.list_resources() Lua 내장 함수를 제공합니다.

서버 지침

✅

My Cool Proxy는 연결된 MCP 서버의 지침 중 일부를 자체 서버 지침에 로드하고, 호출 시 list-servers 도구를 통해 전체 사본도 전송합니다.

발견 알림

✅

My Cool Proxy는 연결된 MCP 서버의 도구/프롬프트/리소스 변경 알림을 수신하여 자체 내부 레지스트리를 자동으로 업데이트하며, 이는 이후 도구 호출에 반영됩니다.

자동 완성

✅

프롬프트 인수 및 리소스 템플릿 변수 자동 완성은 업스트림 서버에서 연결된 클라이언트로 전달됩니다. 에이전트는 Lua 스크립트 내에서 _gateway.complete()를 호출하여 리소스 템플릿 변수 및 프롬프트 인수에 대한 유효한 값을 찾을 수도 있습니다.

로깅

✅

My Cool Proxy는 로깅 알림을 연결된 클라이언트로 전달하고, 자체적으로도 로그를 기록합니다.

루트

✅

roots/list 요청은 업스트림 서버에서 다운스트림 클라이언트로 전달됩니다. 다운스트림 클라이언트의 notifications/roots/list_changed 알림은 모든 업스트림 서버로 전파됩니다. 샘플링 심이 활성화되면 첫 번째 유효한 로컬 루트가 ACP 에이전트의 작업 디렉터리로 사용됩니다.

샘플링

✅

My Cool Proxy는 ACP를 통한 샘플링 지원 심을 지원하지만, 기본적으로 비활성화되어 있습니다. 자세한 내용은 구성 문서를 참조하세요.

유도

⚠️

유도 요청(양식 및 URL 모드)은 업스트림 서버에서 연결된 클라이언트로 프록시됩니다. 기본적으로 유도를 지원하지 않는 클라이언트를 위한 심은 (현재) 제공되지 않습니다 (ACP를 통해 심을 수 있는 샘플링과 달리).

진행

✅

업스트림 서버의 진행 알림은 연결된 클라이언트로 전달됩니다. Lua 스크립트가 여러 도구를 동시에 호출하면 해당 진행 상황이 단일 스트림으로 집계(합산)됩니다.

작업

⚠️

작업을 지원하는 도구 호출은 지원되지만, 상태 업데이트를 특별한 용도로 활용하지는 않습니다. 샘플링/유도 작업은 현재 지원되지 않습니다.

OAuth 2.0

❌

OAuth 2.0 인증 챌린지는 아직 지원되지 않습니다 (하지만 지원될 예정입니다)

MCP Apps

❌

MCP Apps는 아직 지원되지 않습니다 (하지만 지원될 예정입니다)

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A meta-server that aggregates multiple MCP servers into a single interface, reducing token usage by 98%+ through progressive tool discovery and direct code execution that processes data between tools without consuming context window space.
    16 npm
    10
    Apache 2.0
  • A
    license
    Not graded
    quality
    F
    maintenance
    A universal gateway that aggregates multiple MCP servers into a single interface while providing advanced token optimization, result filtering, and automated summarization. It enables efficient management of large tool catalogs and reduces context usage by up to 95% for major AI clients.
    33 npm
    16
    MIT
  • F
    license
    A
    quality
    A
    maintenance
    A multiplexing gateway that aggregates multiple MCP servers into a single port, significantly reducing context token usage through a Meta-MCP discovery system. It enables dynamic tool discovery and invocation across various transport protocols including stdio, HTTP, and SSE.
    15
    78
    -
  • A
    license
    A
    quality
    B
    maintenance
    A single MCP server gateway that reduces context bloat by providing progressive tool discovery and invocation, dynamically provisioning downstream servers on demand.
    26
    113 PyPI
    21
    MIT