什么是 Sensact?
面向用户自有设备的认证型远程 MCP server,支持一次性能力调用与安全访问。
README
Sensact
Sensact is a Supabase-hosted remote MCP device platform.
The goal is to let LLM clients such as Codex or Claude discover and invoke capabilities on user-owned devices through a standard MCP server, while Supabase Auth provides the OAuth 2.1 authorization flow and Postgres + Realtime + Storage provide the control plane.
MCP Registry Preview
Sensact is prepared for the official MCP Registry as a remote-only public preview server.
- Registry name:
io.github.sensact-agents/sensact - Registry metadata file: server.json
- Canonical repository:
https://github.com/sensact-agents/Sensact - Public preview MCP URL:
https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp - Public preview protected resource metadata:
https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp/.well-known/oauth-protected-resource - Public preview authorization server metadata:
https://helavgrvwipmdvyejfom.supabase.co/auth/v1/.well-known/oauth-authorization-server
Current Scope
v1 is focused on one-shot device capability invocation:
- list devices visible to the authenticated user
- inspect device capabilities
- invoke simple device capabilities through jobs
- return structured results or artifact references
Reference v1 capabilities:
vision.camera_capturecontacts.find_contactvision.screen_capture
Planned later phases:
v2:WebRTCmedia sessions for realtime audio/videov3: advanced actions and realtime inference orchestration
Repository Layout
- docs
- Product, architecture, data model, MCP API, Supabase schema, consent, runtime design
- schemas/mcp
- JSON Schema contracts and MCP tool registration metadata
- services/mcp-service
- Shared TypeScript package for MCP tool definitions and server-side structure
- services/oauth-consent-app
- Browser auth + consent UI for the Supabase OAuth server at
/and/oauth/consent
- Browser auth + consent UI for the Supabase OAuth server at
- supabase
- Edge Function MCP gateway, migrations, config, seed
Not part of this repository snapshot:
- mediapipe
- ignored as a nested upstream repository
Key Documents
- sensact-app-product-design.md
- sensact-system-architecture.md
- sensact-mcp-api.md
- sensact-supabase-schema.md
- sensact-oauth-consent.md
Current Implementation Status
Implemented in this repository:
Supabase Edge FunctionMCP gateway at supabase/functions/mcp- protected resource metadata and
WWW-Authenticatechallenge for remote MCP OAuth list_devices,list_device_capabilities,invoke_device_capability,get_artifact- Supabase SQL migrations for core registry, capability, execution, artifact, and RLS setup
- browser auth app with Google sign-in, magic-link fallback, and OAuth consent UI for
Supabase Auth
Known limitations:
- No real device runtime is wired yet, so device discovery depends on external device registration
invoke_device_capabilityrequires an actual device runtime to consume jobs and write results- The consent app should be served from
https://www.sensactagent.com/oauth/consentin production
Prerequisites
Node.js 20+npmSupabase CLI- a
Supabaseproject with:- OAuth server enabled
- dynamic OAuth app registration enabled
- this repository linked or configured against that project
Local Development
1. MCP shared package
cd /Users/luolingfeng/Sensact/services/mcp-service
npm install
npm run typecheck
2. Web auth app
cd /Users/luolingfeng/Sensact/services/oauth-consent-app
cp .env.example .env
Set:
VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEY
Then run:
npm install
npm run dev
For local development the web auth app runs at:
http://127.0.0.1:3000/
http://127.0.0.1:3000/oauth/consent
Production web auth URLs:
https://www.sensactagent.com/
https://www.sensactagent.com/oauth/consent
3. Supabase schema and function deployment
Push migrations:
cd /Users/luolingfeng/Sensact
supabase db push --linked --yes
Deploy the MCP function:
cd /Users/luolingfeng/Sensact
supabase functions deploy mcp --project-ref <project-ref> --use-api --no-verify-jwt
--no-verify-jwt is intentional. The gateway must return its own 401 + WWW-Authenticate challenge for remote MCP discovery.
MCP Endpoints
Public preview server URL:
https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp
Public preview protected resource metadata:
https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp/.well-known/oauth-protected-resource
Public preview authorization server metadata:
https://helavgrvwipmdvyejfom.supabase.co/auth/v1/.well-known/oauth-authorization-server
Deployment template:
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
Using With MCP Clients
Registry lookup:
curl "https://registry.modelcontextprotocol.io/v0/servers?search=io.github.sensact-agents/sensact"
Fallback install for Codex:
codex mcp add sensact --url https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp
Log in through Supabase OAuth:
codex mcp login sensact
Check status:
codex mcp list
codex mcp get sensact
Fallback install for Claude Code:
claude mcp add --transport http sensact https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp
Publishing To MCP Registry
The repository publishes to the official MCP Registry from Git tags via GitHub Actions OIDC.
Create and push a release tag:
git tag vX.Y.Z
git push origin vX.Y.Z
The workflow at .github/workflows/publish-mcp.yml will:
- run the repository-level publication tests
- typecheck
services/mcp-service - test and build
services/oauth-consent-app - smoke test the public preview MCP endpoint
- validate
server.jsonagainst its$schema - stamp the pushed tag version into
server.json - authenticate with
mcp-publisher login github-oidc - publish
io.github.sensact-agents/sensactto the Registry
After publication, verify the public entry:
curl "https://registry.modelcontextprotocol.io/v0/servers?search=io.github.sensact-agents/sensact"
Verification Commands
Consent app:
cd /Users/luolingfeng/Sensact/services/oauth-consent-app
npm test
npm run build
MCP shared package:
cd /Users/luolingfeng/Sensact/services/mcp-service
npm run typecheck
Registry publication assets:
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 discovery:
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
Current repository bootstrap:
- commit:
d394e5b - tag:
v0.1.0
常见问题
Sensact 是什么?
面向用户自有设备的认证型远程 MCP server,支持一次性能力调用与安全访问。
相关 Skills
MCP构建
by anthropics
聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。
✎ 想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。
Slack动图
by anthropics
面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。
✎ 帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。
邮件模板
by alirezarezvani
快速搭建生产可用的事务邮件系统:生成 React Email/MJML 模板,接入 Resend、Postmark、SendGrid 或 AWS SES,并支持本地预览、i18n、暗色模式、反垃圾优化与追踪埋点。
✎ 面向营销与服务场景,快速搭建高质量邮件模板,省去反复设计与切图成本,成熟度和社区认可都很高。
相关 MCP Server
Slack 消息
编辑精选by Anthropic
Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。
✎ 这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。
by netdata
io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。
✎ 这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。
by d4vinci
Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。
✎ 这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。