Skip to main content
Glama

Sensact

Sensact는 Supabase에서 호스팅되는 remote MCP 디바이스 플랫폼입니다.

목표는 Codex 또는 Claude 같은 LLM 클라이언트가 표준 MCP 서버를 통해 사용자 소유 디바이스의 기능을 발견하고 호출할 수 있게 하는 것이며, Supabase Auth가 OAuth 2.1 권한 부여 흐름을 제공하고 Postgres + Realtime + Storage가 제어 평면을 제공합니다.

MCP Registry 미리보기

Sensact는 공식 MCP Registry를 위한 remote-only public preview 서버로 준비되어 있습니다.

  • Registry 이름: io.github.sensact-agents/sensact

  • Registry 메타데이터 파일: server.json

  • 공식 저장소: https://github.com/sensact-agents/Sensact

  • 공개 미리보기 MCP URL: https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp

  • 공개 미리보기 보호 리소스 메타데이터: https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp/.well-known/oauth-protected-resource

  • 공개 미리보기 권한 부여 서버 메타데이터: https://helavgrvwipmdvyejfom.supabase.co/auth/v1/.well-known/oauth-authorization-server

Related MCP server: Supabase MCP

현재 범위

v1은 일회성 디바이스 기능 호출에 중점을 둡니다:

  • 인증된 사용자에게 표시되는 디바이스 나열

  • 디바이스 기능 검사

  • 작업을 통한 간단한 디바이스 기능 호출

  • 구조화된 결과 또는 아티팩트 참조 반환

참조 v1 기능:

  • vision.camera_capture

  • contacts.find_contact

  • vision.screen_capture

이후 계획된 단계:

  • v2: 실시간 오디오/비디오를 위한 WebRTC 미디어 세션

  • v3: 고급 작업 및 실시간 추론 오케스트레이션

저장소 구조

  • docs

    • 제품, 아키텍처, 데이터 모델, MCP API, Supabase 스키마, 동의, 런타임 설계

  • schemas/mcp

    • JSON Schema 계약 및 MCP 도구 등록 메타데이터

  • services/mcp-service

    • MCP 도구 정의 및 서버 측 구조를 위한 공유 TypeScript 패키지

  • services/oauth-consent-app

    • / 및 /oauth/consent에서 Supabase OAuth 서버를 위한 브라우저 인증 + 동의 UI

  • supabase

    • Edge Function MCP 게이트웨이, 마이그레이션, 설정, 시드

이 저장소 스냅샷에 포함되지 않는 항목:

  • mediapipe

    • 중첩된 업스트림 저장소로 무시됨

주요 문서

현재 구현 상태

이 저장소에 구현된 내용:

  • supabase/functions/mcp의 Supabase Edge Function MCP 게이트웨이

  • remote MCP OAuth를 위한 보호 리소스 메타데이터 및 WWW-Authenticate 챌린지

  • list_devices, list_device_capabilities, invoke_device_capability, get_artifact

  • 핵심 레지스트리, 기능, 실행, 아티팩트 및 RLS 설정을 위한 Supabase SQL 마이그레이션

  • Google 로그인, 매직 링크 폴백, Supabase Auth용 OAuth 동의 UI를 갖춘 브라우저 인증 앱

알려진 제한 사항:

  • 아직 실제 디바이스 런타임이 연결되지 않아 디바이스 발견은 외부 디바이스 등록에 의존합니다

  • invoke_device_capability는 작업을 소비하고 결과를 기록할 실제 디바이스 런타임이 필요합니다

  • 프로덕션에서는 동의 앱이 https://www.sensactagent.com/oauth/consent에서 제공되어야 합니다

사전 요구 사항

  • Node.js 20+

  • npm

  • Supabase CLI

  • 다음을 갖춘 Supabase 프로젝트:

    • OAuth 서버 활성화

    • 동적 OAuth 앱 등록 활성화

    • 해당 프로젝트에 연결되거나 구성된 이 저장소

로컬 개발

1. MCP 공유 패키지

cd /Users/luolingfeng/Sensact/services/mcp-service
npm install
npm run typecheck

2. 웹 인증 앱

cd /Users/luolingfeng/Sensact/services/oauth-consent-app
cp .env.example .env

설정:

  • VITE_SUPABASE_URL

  • VITE_SUPABASE_ANON_KEY

그런 다음 실행:

npm install
npm run dev

로컬 개발에서 웹 인증 앱은 다음에서 실행됩니다:

http://127.0.0.1:3000/
http://127.0.0.1:3000/oauth/consent

프로덕션 웹 인증 URL:

https://www.sensactagent.com/
https://www.sensactagent.com/oauth/consent

3. Supabase 스키마 및 함수 배포

마이그레이션 푸시:

cd /Users/luolingfeng/Sensact
supabase db push --linked --yes

MCP 함수 배포:

cd /Users/luolingfeng/Sensact
supabase functions deploy mcp --project-ref <project-ref> --use-api --no-verify-jwt

--no-verify-jwt는 의도적입니다. 게이트웨이는 remote MCP 발견을 위해 자체 401 + WWW-Authenticate 챌린지를 반환해야 합니다.

MCP 엔드포인트

공개 미리보기 서버 URL:

https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp

공개 미리보기 보호 리소스 메타데이터:

https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp/.well-known/oauth-protected-resource

공개 미리보기 권한 부여 서버 메타데이터:

https://helavgrvwipmdvyejfom.supabase.co/auth/v1/.well-known/oauth-authorization-server

배포 템플릿:

https://<project-ref>.supabase.co/functions/v1/mcp
https://<project-ref>.supabase.co/functions/v1/mcp/.well-known/oauth-protected-resource
https://<project-ref>.supabase.co/auth/v1/.well-known/oauth-authorization-server

MCP 클라이언트와 함께 사용하기

Registry 조회:

curl "https://registry.modelcontextprotocol.io/v0/servers?search=io.github.sensact-agents/sensact"

Codex용 폴백 설치:

codex mcp add sensact --url https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp

Supabase OAuth를 통한 로그인:

codex mcp login sensact

상태 확인:

codex mcp list
codex mcp get sensact

Claude Code용 폴백 설치:

claude mcp add --transport http sensact https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp

MCP Registry에 게시

이 저장소는 GitHub Actions OIDC를 통해 Git 태그에서 공식 MCP Registry로 게시합니다.

릴리스 태그 생성 및 푸시:

git tag vX.Y.Z
git push origin vX.Y.Z

.github/workflows/publish-mcp.yml의 워크플로는 다음을 수행합니다:

  • 저장소 수준 게시 테스트 실행

  • services/mcp-service 타입체크

  • services/oauth-consent-app 테스트 및 빌드

  • 공개 미리보기 MCP 엔드포인트 스모크 테스트

  • server.json을 해당 $schema에 대해 검증

  • 푸시된 태그 버전을 server.json에 기록

  • mcp-publisher login github-oidc로 인증

  • io.github.sensact-agents/sensact를 Registry에 게시

게시 후 공개 항목을 확인:

curl "https://registry.modelcontextprotocol.io/v0/servers?search=io.github.sensact-agents/sensact"

검증 명령

동의 앱:

cd /Users/luolingfeng/Sensact/services/oauth-consent-app
npm test
npm run build

MCP 공유 패키지:

cd /Users/luolingfeng/Sensact/services/mcp-service
npm run typecheck

Registry 게시 자산:

cd /Users/luolingfeng/Sensact
node --test scripts/registry-publication.test.mjs
node scripts/validate-server-json.mjs
node scripts/smoke-test-remote-mcp.mjs

Remote MCP 발견:

curl -i https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp
curl -i https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp/.well-known/oauth-protected-resource
curl -i https://helavgrvwipmdvyejfom.supabase.co/auth/v1/.well-known/oauth-authorization-server

Git

현재 저장소 부트스트랩:

  • 커밋: d394e5b

  • 태그: v0.1.0

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A control plane for AI agents and human supervisors. Persistent task registry with scoped permissions, inter-agent delegation, and full provenance — all accessible via MCP. Deploy on Supabase free tier in 3 commands.
    41 npm
    11
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server enabling AI assistants to perform CRUD operations on a Supabase database via a standardized interface.
    193
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    MCP server for self-hosted Supabase with RLS-aware PostgreSQL and PostgREST layers, enabling safe database introspection, SQL queries, and PostgREST access via natural language.
    MIT