Skip to main content
Glama
dwsitproject-hub

MCP Gateway

MCP 게이트웨이 — 1단계(KLIP, 읽기 전용)

권한이 부여된 Energi-Up 직원이 애플리케이션을 열지 않고도 Claude를 통해 자연어로 KLIP을 조회할 수 있게 해주는 단일 보안 서비스입니다. 엄격히 읽기 전용입니다.

배포 대상(PRD Q3, 현재 마감됨): <gateway-hostname> -> <gateway-public-ip> (ECS-MCP, ap-southeast-5). 호스트 이름은 mcp-gw이며, v0.9 문서에서 가정했던 mcp.example.com이 아님에 유의하십시오. PRD/TSD도 이에 맞게 업데이트되어야 합니다.

문서: PRD v0.9 · TSD v0.9 · 구현 가이드 · 설계 검토 · 배포 런북


1. 고정 버전(T-1)

MCP 스펙 개정판과 SDK 버전이 여기에 고정되어 있습니다. SDK 자체 문서가 설계 문서와 일치하지 않는 경우 SDK가 우선합니다 — SDK가 정확한 API를 정의합니다.

구성 요소

고정 버전

참고 사항

@modelcontextprotocol/sdk

1.30.0(정확히, 캐럿 없음)

2026년 7월 27일 게시. OAuth AS, Streamable HTTP 전송 및 requireBearerAuth를 제공합니다.

MCP 프로토콜 개정판

2025-11-25 구현, 2025-06-18 클라이언트와 와이어 형태 호환

개정판 2026-07-28(초안)은 프로토콜 수준 세션, GET 스트림 및 Last-Event-ID를 제거했습니다. 이 서버는 **무상태(stateless)**이므로 해당 변경 사항과 순방향 호환되며 /mcp에 대한 레거시 GET/DELETE에는 405로 응답합니다.

Node.js

22 LTS(node:22-slim)

TypeScript

5.9.3, strict + exactOptionalPropertyTypes

express

5.2.1

TSD의 4.x에서 상향 조정됨: SDK가 express@^5.2.1에 의존하며, express-5 라우터를 express-4 앱에 마운트하면 path-to-regexp 메이저 버전이 혼합됩니다.

zod

4.4.3

TSD의 3.x에서 상향 조정됨: SDK의 타입 정의가 zod 4를 대상으로 합니다. 이제 .default()출력 타입을 제공합니다.

jose

6.2.9

RS256 게이트웨이 토큰.

@node-rs/argon2

2.1.0

argon2를 대체: 사전 빌드된 바이너리이므로 node:22-slimnode-gyp 툴체인이 필요 없습니다.

axios

1.19.0

KLIP 클라이언트, 메서드 가드 뒤에 위치.

pg

8.23.0

PostgreSQL

16(컨테이너)

nginx

nginx.org 메인라인

구성은 deploy/nginx/mcp.conf에 있습니다.

Related MCP server: Snowflake MCP Server

2. 레이아웃

src/
  core/       config, logger, db, audit, cache, rateLimit, semaphore, migrate, errors
  adapters/klip/  routes(APPENDIX A) · fields(APPENDIX A) · client(guard) · session · paginate · normalize
  tools/klip/ 9 tool definitions + shared parameter plumbing
  mcp/        server, envelope, runner
  auth/       keys, hub(OIDC RP), users, clients, tokens, provider, loginPage
  http/       app, consent(Hub + break-glass), health, origin, clientIp
migrations/   idempotent SQL (001 schema, 002 Hub OIDC)
deploy/       nginx config, backup sidecar
test/         120 tests + mock KLIP and mock Hub fixtures

레이어링 규칙(T-3): tools → adapters → core. 엔트리포인트 외에는 http/를 임포트하는 것이 없습니다. 모든 비즈니스 정규화는 adapters/klip/normalize.ts에 있으며, 이 파일은 아무것도 임포트하지 않으므로 단독으로 단위 테스트가 가능합니다.

3. 인증 — 다운스트림 허브 OIDC

파일럿 사용자는 Downstream Hub(OIDC)로 로그인합니다. 게이트웨이는 Claude가 통신하는 권한 부여 서버로 유지되며, Hub는 게이트웨이 자체 /authorize 흐름의 한 단계일 뿐입니다.

우리는 의도적으로 SDK의 ProxyOAuthServerProvider사용하지 않습니다. 프록시를 사용하면 Claude에게 Hub 토큰이 전달되어 RFC 8707 오디언스 바인딩이 깨지고, Claude에게 klip:read보다 더 넓은 Hub 범위가 부여되며, 토큰 발급이 우리의 통제를 벗어나 S8 킬 스위치가 더 이상 활성 세션을 무효화할 수 없게 됩니다.

Claude ──/authorize──▶ gateway ──302──▶ Downstream Hub ──302──▶ /authorize/hub/callback
                          │                                              │
                          │        validate id_token (sig/iss/aud/nonce)  │
                          │        check the pilot ALLOWLIST              │
                          ◀──────────────────────────────────────────────┘
                          └──302 code──▶ Claude ──/token──▶ gateway token (klip:read)

인증은 권한 부여가 아닙니다. Hub는 사용자가 누구인지 증명하고, users 테이블은 해당 사용자가 커넥터를 사용할 수 있는지 결정합니다. 1단계는 하나의 공유 KLIP 서비스 계정을 사용하므로, 허용된 모든 사용자는 MCP_READONLY가 읽을 수 있는 모든 것을 읽을 수 있습니다(검토 H8) — 파일럿 멤버십이 데이터 접근 제어입니다. 목록에 없는 Hub 계정은 403을 받으며, <= 15 상한은 user:add로 강제됩니다.

흐름에서 두 개의 PKCE 교환이 실행됩니다. 혼동하지 마십시오. Claude 자체의 code_challenge는 Claude→게이트웨이 구간을 보호하고(SDK가 처리), 게이트웨이가 서버 측에 보관하는 별도의 검증자(verifier)는 게이트웨이→Hub 구간을 보호합니다.

어떤 Hub 클라이언트인가? KLIP의 것이 아닌 게이트웨이 자체의 클라이언트

MCP 게이트웨이용 새 OIDC 클라이언트를 등록하십시오. KLIP이 이미 테스트 DWS Hub에 등록되어 있더라도 KLIP의 Hub 등록을 재사용하지 마십시오.

Hub는 두 신뢰 경계 중 하나만 다룹니다:

경계

자격 증명

Hub 관련 여부?

Claude → 게이트웨이(어떤 사람이 질문하는가)

게이트웨이 자체 Hub 클라이언트 + 파일럿 허용 목록

게이트웨이 → KLIP(데이터 읽기)

KLIP의 /api/auth/login에 대한 svc-mcp

아니요 — PRD §7에서 명시적으로 제외

KLIP의 클라이언트를 재사용하면 첫 번째 경계가 구체적인 방식으로 깨집니다. 게이트웨이는 ID 토큰의 aud를 자체 HUB_CLIENT_ID와 대조하여 검증합니다. KLIP의 클라이언트 ID를 공유한다는 것은 KLIP 로그인 중에 발급된 ID 토큰이 게이트웨이에서 수락된다는 뜻이며, 이는 혼동된 대리인(confused deputy) 형태입니다. 별도의 클라이언트가 있어야 두 신뢰 당사자를 구분할 수 있습니다. 또한 리다이렉트 URI 허용 목록, 클라이언트 시크릿, 교체 일정, Hub SSO 감사 항목, 비활성화 스위치를 독립적으로 유지할 수 있습니다 — 커넥터의 Hub 클라이언트를 끄는 것이 KLIP 로그인을 중단시켜서는 안 됩니다.

이 중 어느 것도 KLIP 측의 변경이 필요하지 않습니다. K1–K4는 영향을 받지 않습니다.

두 개의 Hub 인스턴스, 두 개의 등록

각 Hub에 게이트웨이를 별도로 등록하고 일치하는 KLIP과 페어링하십시오:

단계

KLIP_ENV

HUB_ISSUER

클라이언트

4–6(빌드, 스테이징 UAT)

staging

테스트 DWS Hub

테스트 Hub의 게이트웨이 클라이언트

7+(프로덕션 전환)

production

프로덕션 Hub

프로덕션 Hub의 별도 게이트웨이 클라이언트

이 페어링은 부팅 시 강제됩니다. 한 방향으로 잘못 구성하면 지저분한 것이 아니라 위험하기 때문입니다:

  • KLIP_ENV=production + 테스트 HUB_ISSUER게이트웨이가 시작을 거부합니다. 테스트 Hub 계정을 만들 수 있는 사람이라면 누구든 실제 상용 데이터에 접근할 수 있기 때문입니다.

  • KLIP_ENV=staging + 프로덕션 HUB_ISSUER → 경고 후 계속 진행합니다.

hub:check는 감지된 페어링을 출력하므로 전환이 검증 가능합니다:

pairing:       KLIP staging  <->  Hub testing

DWS Hub가 요구하는 사항(일반 OIDC가 아님)

Docs/SSO-TARGET-APP-INTEGRATION.md에 따름. 이 중 네 가지는 OIDC 클라이언트 라이브러리가 가정하는 기본값과 다르며, 세 가지는 완전히 실패할 수 있습니다:

DWS Hub

클라이언트 유형

공개(public), PKCE S256 — token_endpoint_auth_methods_supported: ["none"], 클라이언트 시크릿 없음

디스커버리

/api/sso/.well-known/openid-configuration — 발급자의 RFC 8414 경로가 아님

토큰 본문

JSON; 폼 인코딩은 unsupported_grant_type 반환

범위

openid profile email만 — 그룹 클레임이 없으므로 HUB_REQUIRED_GROUP은 사용 불가

redirect_uri

토큰 요청에서 필수이며 바이트 단위로 정확해야 함

따라서 HUB_DISCOVERY_URL은 명시적으로 구성되고, HUB_CLIENT_SECRET은 선택 사항이며, HUB_TOKEN_BODY는 기본값이 json이고 unsupported_grant_type 발생 시 폼으로의 일회성 폴백이 있습니다(어느 것이 작동했는지 로깅하여 고정할 수 있음).

설정 방법

  1. 리다이렉트 URI <PUBLIC_URL>/authorize/hub/callback로 Hub에 게이트웨이를 OIDC 클라이언트로 등록하십시오. 공개 클라이언트이므로 시크릿을 요청하지 마십시오.

  2. HUB_ISSUER, HUB_DISCOVERY_URL, HUB_CLIENT_ID/opt/mcp/.env에 넣으십시오.

  3. 파일럿 사용자가 시도하기 전에 검증하십시오:

    docker compose exec -T gateway node dist/cli.js hub:check

    이 명령은 등록할 리다이렉트 URI를 출력하고 디스커버리를 실행하며, Hub가 S256 PKCE를 광고하지 않으면 경고합니다. 게이트웨이는 또한 부팅 시 디스커버리를 프로브하고 /healthzhub_oidc로 보고합니다.

  4. 파일럿 사용자를 추가하십시오(비밀번호 없음 — Hub가 인증함):

    docker compose exec -T gateway node dist/cli.js user:add someone@example.com "Their Name"

비상(break-glass) 계정

Hub가 다운되거나 잘못 구성된 경우를 위해 정확히 하나의 로컬 비밀번호 계정이 허용됩니다:

docker compose exec -T gateway node dist/cli.js user:add-break-glass it-emergency@example.com

이 계정은 로그인 페이지의 공개 고지 뒤에 숨겨져 있으며, 첫 사용 시 비밀번호 변경을 강제하고, 이를 통한 모든 로그인은 높은 심각도로 break_glass: true로 감사됩니다. Hub 인증 사용자는 비밀번호 경로를 전혀 사용할 수 없으므로, Hub를 끄는 것이 아무도 설정하지 않은 비밀번호로 폴백하는 방법이 될 수 없습니다.

Hub 경로가 프로덕션에서 입증되면 BREAK_GLASS_ENABLED=false로 설정하여 비밀번호 노출 영역을 완전히 제거하십시오.

선택적 그룹 게이트 — DWS Hub에서는 사용할 수 없음

HUB_REQUIRED_GROUP은 groups 클레임에 대한 두 번째 검사를 추가합니다. DWS Hub는 이 클레임을 발급하지 않으므로(오직 openid profile email만 광고함) 설정하면 모든 사용자가 거부됩니다. 그렇게 하면 hub:check가 경고합니다. users 테이블의 파일럿 허용 목록이 계속 인가 통제 수단으로 남습니다.

IdP 시작 로그인

Hub는 대시보드 타일에서 사용자를 콜백으로 바로 보낼 수 있습니다. 커넥터에서는 이 방식이 작동하지 않습니다. 콜백은 Claude가 시작한 인가 요청을 완료하기 위해 존재하므로, 인가 요청 없이 도착하면 코드를 발급할 대상이 없기 때문입니다. 게이트웨이는 이를 감지하여 "sign-in expired"로 실패 처리하는 대신 "start from Claude instead"라고 안내합니다.

4. 빠른 시작(로컬)

npm ci
docker run -d --name mcpgw-devdb -e POSTGRES_DB=gateway -e POSTGRES_USER=gateway \
  -e POSTGRES_PASSWORD=devpassword -p 127.0.0.1:55432:5432 postgres:16-alpine
cp .env.example .env.dev   # then edit: PUBLIC_URL=http://localhost:8787, DATABASE_URL=...55432...
npx tsx test/fixtures/mockKlip.ts 5099 &      # mock KLIP, behaves like the real one
set -a; . ./.env.dev; set +a
npm run migrate
npx tsx src/index.ts

파일럿 사용자를 생성합니다(TTY 또는 파이프 입력에서 작동):

printf 'a-strong-password\na-strong-password\n' | npx tsx src/cli.ts user:add you@example.com "Your Name"

5. 테스트

npm test

Suite

다루는 내용

normalize.spec.ts (33)

Incoterm × 상태 × null 매트릭스, kg→MT, 반올림 순서, 음수 잔량, WIB 타임스탬프

guard.spec.ts (9)

T-6에 대한 메서드/경로 전체 표, 경로 순회 및 출처 이스케이프

envelope.spec.ts (12)

T-5 봉투(envelope), next_step 절단, 주입 페이로드 무력화

truncation.spec.ts (4)

제한된 페치(fetch)는 totals를 절대 게시하지 않고 totals_partial을 게시합니다

integration.spec.ts (23)

목 KLIP을 상대로 한 9개 도구 전체; 비-GET 요청은 어떤 것도 KLIP에 도달하지 않음; 401 재로그인; AUTH_DEGRADED; 타입화된 오류; 단위 작업 원칙

resource.spec.ts (6)

RFC 8707 오디언스 바인딩: 이 서버의 정식 리소스만 허용됨

audit.spec.ts (8)

S5 리댁션 — 문자열에는 적극적, 숫자에는 무영향

hub.spec.ts (20)

목 제공자를 상대로 한 Hub OIDC: 디스커버리 발급자 불일치, 외부 서명 키, 잘못된 발급자/오디언스, 만료된 토큰, 누락 및 재사용된 nonce, 이메일 클레임 없음

hubGroupGate.spec.ts (5)

HUB_REQUIRED_GROUP 접근 허용, 근접 일치 그룹 이름 포함

hubPairing.spec.ts (5)

테스트 Hub 뒤에 있는 프로덕션 KLIP은 부팅을 거부함; 정상 페어링은 거부하지 않음

hubTokenAuth.spec.ts (7)

디스커버리에서 선택된 토큰 엔드포인트 인증 방법, post 전용 및 공개 클라이언트 Hub 포함

hubDws.spec.ts (16)

DWS Hub를 정확히 모델링: /api/sso 디스커버리, 공개 클라이언트, JSON 전용 토큰 본문, groups 스코프 없음, 양방향 인코딩 폴백 포함

목 Hub는 실제로 동작하는 미니 OIDC 제공자입니다. 실제 디스커버리 문서, 실제 JWKS, 실제 RS256 ID 토큰, 인가 코드에 대한 PKCE 검증을 갖추고 있으며, 잘못된 토큰을 위조하는 데 필요한 모든 조절 장치를 갖추고 있습니다. 부정 사례가 바로 핵심이기 때문입니다.

목 KLIP 픽스처는 실제 시스템의 특이점을 의도적으로 재현합니다: MT로 표시된 킬로그램, 혼합 언어 상태, 표준 네 가지에 속하지 않는 인코텀, null 수량, 초과 납품 계약, 조용히 100으로 제한되는 limit, 프롬프트 인젝션 페이로드를 담은 계약 비고.

6. 배포

실제 IP, 호스트 이름 및 보안 그룹 표를 포함한 호스트별 전체 절차: deploy/RUNBOOK.md.

# on ECS-MCP
cd /opt/mcp && git pull
docker compose build gateway && docker compose up -d
curl -fsS http://127.0.0.1:8787/healthz

관리자 CLI — 참고로 이 명령은 컨테이너 내부에서 실행됩니다. 호스트에는 Docker만 설치되어 있고 Node.js가 없기 때문입니다:

docker compose exec -T gateway node dist/cli.js user:list
docker compose exec -T gateway node dist/cli.js audit:summary --days 7
docker compose exec -T gateway node dist/cli.js audit:export --from 2026-08-01 --to 2026-09-01 --out /tmp/audit.csv
docker compose exec -T gateway node dist/cli.js routes:verify        # probes KLIP, reports Appendix A gaps

킬 스위치(S8) — 목표 5분 이내:

docker compose exec -T gateway node dist/cli.js tokens:revoke-all --reason "incident 2026-xx"
docker compose stop gateway

앱 컨테이너가 비정상(unhealthy)이면 break-glass를 수행합니다:

docker compose exec -T db psql -U gateway -d gateway -c "UPDATE oauth_tokens SET revoked_at=now() WHERE revoked_at IS NULL;"

7. 부록 A는 하드 게이트입니다

src/adapters/klip/routes.tssrc/adapters/klip/fields.ts에는 어댑터가 의존하는 모든 KLIP 경로, 쿼리 매개변수 이름, 페이지 크기 상한, 응답 필드 이름 및 열거형 값이 들어 있습니다. 현재 모든 항목이 검증되지 않았습니다.

이 게이트는 문서상 절차가 아니라 실행 가능한 게이트입니다. KLIP_ENV=production에서는 경로가 하나라도 검증되지 않으면 프로세스가 시작을 거부합니다. 스테이징을 대상으로 routes:verify를 실행하고 결과를 기록한 다음, 각 경로에 verified: true를 설정하고 enums.verified = true를 설정하세요.

나머지보다 더 중요한 두 필드가 있습니다:

  • maxLimit — KLIP이 실제로 수용하는 최대 limit. 만약 100으로 조용히 제한된다면, KLIP_PAGE_SIZE가 1000일 때 한 페이지가 열 페이지로 늘어나 지연 시간 목표를 깨뜨립니다.

  • enums.* — 정식 상태 값과 인코텀 값. 매핑되지 않은 값은 기본값으로 절대 처리되지 않으며 데이터 품질 주석과 함께 합계에서 제외됩니다.

8. TSD v0.9와의 차이점

각 항목은 설계 검토에서 비롯되었으며 해당 호출 지점에 주석으로 달려 있습니다.

#

변경

이유

B3

Origin은 존재하고 유효하지 않은 경우에만 거부됨

사양은 제시되었고 유효하지 않은 Origin에 대해서만 403을 요구한다. Claude는 커넥터를 서버 간으로 호출하며 아무것도 보내지 않을 수 있다. 누락된 경우를 거부하면 모든 도구 호출이 403이 된다.

B4

aud = <PUBLIC_URL>/mcp, 호스트 이름만이 아님

RFC 8707 audience 바인딩. PRM 문서에 authorization_servers + resource를 추가하고, 401 챌린지에 scope를, RFC 9207 iss를 추가했다.

B5

무상태 전송; 요청별 토큰에서 신원 확인

2026-07-28 개정판에서 프로토콜 세션이 제거되었다. T-4는 구조적으로 충족된다 — 가로챌 세션이 없다.

B6

Kill switch는 docker compose exec를 실행한다

호스트에 Node.js가 없으므로 cd /opt/mcp && node cli.js는 절대 작동할 수 없다.

B7

nginx는 남용 방지의 최소 기준이며, 사용자별 한도는 OAuth sub를 키로 한다

모든 트래픽은 Anthropic의 공유 이그레스 범위에서 들어오므로, IP 키 기반 제한은 전체 파일럿을 하나의 버킷에 넣는다. limit_req_status 429를 추가했다(기본값은 503이다).

H1

OAuth는 SDK의 mcpAuthRouter + OAuthServerProvider 기반으로 구축됨

SDK는 폐기 및 기본 rate limiting을 포함한 AS를 제공한다. 우리가 담당하는 것은 저장소와 사용자 인증뿐이다.

H2

다운스트림 Hub OIDC가 로그인 경로이며, break-glass 로컬 계정 하나가 있다

Phase 2에서 앞당겨 가져왔다. Hub가 인증하고, users 테이블은 파일럿 허용 목록으로 유지된다. ProxyOAuthServerProvider는 의도적으로 거부되었다 — §3 참조.

H3

Anthropic의 160.79.104.0/21에 대한 nginx 허용 목록 스캐폴딩

Anthropic은 안정적인 이그레스 범위를 공개하고 허용 목록을 권장한다. /authorize는 사용자 브라우저에서 실행되므로 기업 이그레스에 대해 열려 있다. 실제 소스 주소를 Stage 6에서 확인할 때까지 주석 처리되어 있다.

H4

잘린 결과는 totals_partial을 게시하고, 집계는 정수 kg로 하며, 매핑되지 않은 enum은 제외하고, 음수 outstanding은 보존한다

자신 있게 틀린 숫자로 가는 네 가지 별개의 경로.

H5

짧은 TTL 캐시, 2..N 페이지는 동시에 가져오고, 페이지 크기는 maxLimit으로 제한

순차적 왕복 10회로는 P95 ≤ 5초를 충족할 수 없다.

H6

9번째 도구 klip_reference를 추가하고, 타입이 있는 UNKNOWN_FILTER_VALUE도 추가

이것이 없으면 오타가 있는 플랜트 이름이 빈 집합을 반환하고, 이는 "미결제 없음"으로 읽힌다.

H7

environmentsourceKLIP_ENV에서 파생된다

명세에 하드코딩된 "KLIP production" 문자열은 모든 스테이징 UAT 응답이 프로덕션이라고 주장하게 만들었을 것이다.

H9

audit_events는 월간 range 파티셔닝된다. audit:export를 추가했고, X-Forwarded-For를 존중한다

파티션 삭제를 통한 보존은 append-only 트리거가 허용하는 유일한 방법이다. U5의 export는 구현이 없었고, 클라이언트 IP는 모두 127.0.0.1로 기록되었을 것이다.

H10

백업 사이드카, 컨테이너 healthcheck, /healthz 상세 정보는 내부 호출자로 제한

TSD에는 명시되었지만 가이드에는 구현되지 않아서, go-live 시점에 존재하지 않았을 것이다.

알 수 없는 도구 매개변수는 z.strictObject를 통해 거부된다

PRD 8.1은 거부를 요구한다. 일반 z.object는 추가 항목을 조용히 무시한다.

도구는 outputSchema에 대해 structuredContent를 반환한다

프로스에 내장된 JSON이 아니라 타입이 있는 데이터 — 전사 오류가 줄어든다. 이것이 M1이 측정하는 것이다.

9. 아직 남은 사항

  • Appendix A 조정 (P1) — 프로덕션을 차단하며, 시작 시 강제된다.

  • KLIP 측 K1–K4MCP_READONLY 역할, svc-mcp 계정, 보안 그룹 규칙.

  • 호스트 외부 백업 동기화 및 검증된 복원 — 사이드카는 로컬에만 쓴다.

  • deploy/nginx/mcp.conf실제 기업 이그레스 CIDR을 넣은 다음, 주석 처리된 두 줄의 return 403을 활성화한다.

  • 부하 테스트 — 30명 동시 사용자 용량 NFR.

  • Hub 클라이언트 등록 — 게이트웨이 자체의 것을 먼저 테스트 DWS Hub에: HUB_ISSUER, 클라이언트 ID와 시크릿, 리다이렉트 URI <PUBLIC_URL>/authorize/hub/callback을 Hub 측에 등록한다. Hub의 email 및 groups 클레임 이름을 확인한 다음 hub:check를 실행한다. 프로덕션 Hub에는 Stage 7에서 두 번째 별도 등록이 필요하다.

  • HUB_REQUIRED_GROUP을 설정할지, 그리고 Hub 경로가 프로덕션에서 입증된 후 BREAK_GLASS_ENABLED=false로 전환할지 결정한다.

F
license - not found
Not graded
quality - not tested
B
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 Servers

  • F
    license
    A
    quality
    B
    maintenance
    Enables read-only querying of the gong-nl-db Postgres database through natural language via Claude Desktop.
    9
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language queries against Snowflake Gold-layer tables through Claude Desktop, allowing users to ask business questions in plain English without SQL knowledge.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Gives Claude live access to your Observe tenant, enabling natural language queries about errors, logs, and metrics without writing OPAL pipelines.
    17
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables natural language interaction with Kintone data via Claude, allowing listing apps, field definitions, querying and modifying records.

View all related MCP servers

Related MCP Connectors

  • WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.

  • Connect Claude to Fathom meeting recordings, transcripts, and summaries

  • Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.

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/dwsitproject-hub/MCP-Gateway'

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