프로젝트 소개

TianGong-LCA-MCP는 MCP 호환 AI 호스트에 TianGong 전과정평가(LCA) 기능을 노출하는 Model Context Protocol(MCP) 서버입니다. 로컬 클라이언트 통합용 STDIO와 원격 사용용 Streamable HTTP, 두 가지 전송 방식을 지원합니다. 구성은 `.env.example`에서 복사한 환경 변수로 이루어지며, Supabase 발급자, 공개 키, 허용된 공개 OAuth 클라이언트 ID, 허용 브라우저 출처를 포함합니다. README는 OAuth 인증에 Redis, 기밀 클라이언트 시크릿, 서버 측 세션 암호화 키가 필요하지 않다고 설명합니다. GLAD 데이터셋 검색 도구에는 추가로 GLAD API 키와 기본 URL(기본값은 공개 Global LCA Data Access 엔드포인트)이 필요합니다. 원격 Streamable HTTP는 OAuth 2.1로 보호되는 리소스로 설명됩니다. 호환 MCP 호스트는 보호 리소스 메타데이터를 발견하고, Supabase Auth 인증 서버를 따라가며, 사용자 브라우저를 열고, S256 PKCE를 사용하는 Authorization Code 흐름을 완료합니다. 자격 증명은 AI 또는 MCP 호스트가 아닌 브라우저에 입력됩니다. Supabase는 공개 MCP 클라이언트에 액세스 토큰과 회전하는 리프레시 토큰을 발급합니다. 클라이언트는 리프레시 토큰을 로컬에 저장하고 각 요청에 수명이 짧은 ES256 액세스 JWT를 보냅니다. 서버는 서명, 발급자, 대상, 만료, 역할/세션, 정확한 클라이언트 ID를 검증하며, Edge/PostgREST가 컨텍스트를 재검증하고 행 수준 보안을 적용합니다. Dynamic Client Registration은 비활성화되어 있습니다. 운영자는 Supabase에 정확한 공개 클라이언트와 루프백 콜백을 등록하고 해당 UUID를 허용 목록 변수에 나열합니다. MCP 오리진 자체는 권한 부여, 토큰, 리프레시, 취소, 콜백, 등록 또는 데모 엔드포인트를 노출하지 않습니다. 설치 및 시작 옵션에는 전역 pnpm 패키지(`@tiangong-lca/mcp-server`)를 dotenv-cli를 통해 STDIO 서버로 실행하거나, env 파일과 함께 포트 9278에 게시된 로컬 빌드 Docker 이미지를 사용하는 방법이 포함됩니다. 로컬 테스트는 pnpm 스크립트를 사용합니다. `pnpm start`는 MCP Inspector를 통한 STDIO 서버, `pnpm start:server`는 Streamable HTTP 서버, `pnpm start:server-local`은 로컬 HTTP 변형을 실행합니다. HTTP 시작 명령은 크로스 플랫폼 Node argv 래퍼를 통해 MCP Inspector를 실행합니다. README는 고정된 도구 체인(Node 24.19.0, pnpm 11.24.0, TypeScript 7.0.2)을 문서화하고, 공개 사전 빌드 이미지 태그가 검증되지 않았으므로 Docker 예제가 로컬 빌드를 설명한다고 언급합니다.