Skip to main content
Glama

MCPGate

경량 MCP 게이트웨이 — MCP 도구를 집계, 필터링 및 관찰하세요.

MCPGate는 MCP 클라이언트(Claude Desktop, Claude Code, Cursor, VS Code)와 여러 MCP 서버 사이에 위치합니다. 단일 통합 MCP 엔드포인트를 제공하면서 어떤 도구를 노출할지에 대한 세밀한 제어 권한을 부여합니다.

기능

  • 도구 집계 — 여러 MCP 서버를 연결하고 모든 도구를 하나의 엔드포인트를 통해 노출

  • 도구 필터링 — 간단한 YAML 설정을 통해 서버별로 특정 도구 허용/차단

  • 도구 접두사 — 충돌 방지를 위한 자동 네임스페이싱 (github.create_issue)

  • 웹 대시보드 — 서버, 도구 및 요청 로그를 보여주는 실시간 상태 페이지

  • 이중 전송 — Stdio(Claude Desktop) 또는 HTTP/SSE(원격 클라이언트)

  • 감사 추적 — 모든 도구 호출을 타이밍과 함께 기록; 선택적 PostgreSQL 지속성

  • 자체 호스팅 — Railway, Docker에 배포하거나 로컬에서 실행

빠른 시작

로컬 (stdio — Claude Desktop용)

npx mcp-gate start --config mcpgate.yaml

claude_desktop_config.json에 추가하세요:

{
  "mcpServers": {
    "mcpgate": {
      "command": "npx",
      "args": ["-y", "mcp-gate", "start", "--config", "/path/to/mcpgate.yaml"]
    }
  }
}

로컬 (HTTP — 대시보드 포함)

npx mcp-gate start --config mcpgate.yaml
# Dashboard at http://localhost:3000
# MCP endpoint at http://localhost:3000/mcp

Docker

docker compose up
# Dashboard at http://localhost:3000
# Includes PostgreSQL for persistent audit trail

또는 독립 실행형:

docker run -p 3000:3000 \
  -e MCPGATE_CONFIG=$(cat mcpgate.yaml | base64 -w 0) \
  -e GITHUB_TOKEN=$GITHUB_TOKEN \
  ghcr.io/mprezz/mcpgate

Railway

Deploy on Railway

지속적인 감사 추적을 위해 PostgreSQL 플러그인을 추가하세요 — MCPGate가 DATABASE_URL을 자동으로 감지합니다.

구성

mcpgate.yaml을 생성하세요:

gateway:
  name: "my-gateway"
  transport: "stdio" # stdio | http | both
  port: 3000
  toolPrefix: true # prefix tools with server name

servers:
  - name: "github"
    transport: "stdio"
    command: "npx"
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_TOKEN: "${GITHUB_TOKEN}"
    tools:
      allow:
        - "create_issue"
        - "search_repos"

  - name: "filesystem"
    transport: "stdio"
    command: "npx"
    args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"]
    tools:
      block:
        - "write_file"
        - "delete_file"

logging:
  level: "info"

전체 참조는 mcpgate.example.yaml을 확인하세요.

도구 필터링

각 서버는 allow 또는 block을 지원합니다(상호 배타적):

  • allow — 이 도구들만 노출됩니다(화이트리스트)

  • block — 이 도구들을 제외한 모든 도구가 노출됩니다(블랙리스트)

  • 없음 — 모든 도구가 노출됩니다

인증

HTTP 전송을 보호하기 위해 Bearer 토큰을 추가하세요:

gateway:
  auth:
    token: "${MCPGATE_AUTH_TOKEN}"

인증이 구성되면:

  • 모든 엔드포인트는 Authorization: Bearer <token> 헤더가 필요합니다

  • /health는 공개 상태로 유지됩니다(Railway/Docker 상태 확인용)

  • MCP 클라이언트는 전송 구성의 사용자 지정 헤더를 통해 토큰을 전달합니다

인증이 구성되지 않으면 모든 엔드포인트가 열려 있습니다(로컬/개인용).

환경 변수 보간

YAML에서 ${VAR} 또는 ${VAR:-default}를 사용하여 환경 변수를 참조하세요:

env:
  GITHUB_TOKEN: "${GITHUB_TOKEN}"
  API_URL: "${API_URL:-https://api.example.com}"

대시보드

HTTP 모드에서 실행할 때 MCPGate는 루트 URL에서 웹 대시보드를 제공합니다:

  • / — 업스트림 서버, 도구 및 요청 로그가 포함된 상태 페이지

  • /api/status — 프로그래밍 방식 액세스를 위한 JSON API

  • /health — 상태 확인 엔드포인트(Railway/Docker용)

  • /mcp — MCP 프로토콜 엔드포인트(스트리밍 가능한 HTTP)

저장소

MCPGate는 모든 도구 호출을 타이밍 및 오류 정보와 함께 기록합니다.

  • 기본값 — 메모리 내(설정 불필요, 재시작 시 손실)

  • PostgreSQLDATABASE_URL 환경 변수 설정(테이블 자동 생성)

# Local development with Docker Compose
docker compose up postgres -d
export DATABASE_URL=postgresql://mcpgate:mcpgate@localhost:5432/mcpgate
npx mcp-gate start --config mcpgate.yaml

환경 변수

변수

필수

기본값

설명

PORT

아니요

3000

HTTP 포트 (Railway가 자동으로 설정)

MCPGATE_CONFIG

아니요

Base64 인코딩된 YAML 구성 (Railway/Docker용)

DATABASE_URL

아니요

PostgreSQL 연결 문자열 (지속적인 감사 추적 활성화)

LOG_LEVEL

아니요

info

debug / info / warn / error

MCPGATE_AUTH_TOKEN

아니요

HTTP 인증을 위한 Bearer 토큰 (YAML에서 ${MCPGATE_AUTH_TOKEN}으로 참조)

개발

git clone https://github.com/mprezz/mcpgate.git
cd mcpgate
npm install

npm run dev          # development with hot reload
npm run build        # compile TypeScript
npm run test         # run tests (vitest)
npm run lint         # eslint
npm run typecheck    # tsc --noEmit

아키텍처

Client (Claude, Cursor)
    │
    ▼ stdio or HTTP/SSE
┌──────────────────────────────┐
│         MCPGate              │
│                              │
│  ┌─────────────────────┐     │
│  │   Tool Registry     │     │  ← filters + namespaces tools
│  └─────────────────────┘     │
│  ┌─────────────────────┐     │
│  │   Tool Router       │     │  ← routes calls to correct server
│  └─────────────────────┘     │
│  ┌─────────────────────┐     │
│  │  Upstream Manager   │     │  ← manages server connections
│  └─────────────────────┘     │
│  ┌─────────────────────┐     │
│  │   Storage           │     │  ← memory or PostgreSQL
│  └─────────────────────┘     │
└──────────────────────────────┘
    │           │           │
    ▼           ▼           ▼
 Server A    Server B    Server C
 (GitHub)  (Filesystem)  (Custom)

라이선스

Apache 2.0 — LICENSE 참조

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

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/martin-santiago/mcpgate'

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