Sensact

平台与服务

by sensact-agents

面向用户自有设备的认证型远程 MCP server,支持一次性能力调用与安全访问。

什么是 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_capture
  • contacts.find_contact
  • vision.screen_capture

Planned later phases:

  • v2: WebRTC media sessions for realtime audio/video
  • v3: 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
  • supabase
    • Edge Function MCP gateway, migrations, config, seed

Not part of this repository snapshot:

  • mediapipe
    • ignored as a nested upstream repository

Key Documents

Current Implementation Status

Implemented in this repository:

  • Supabase Edge Function MCP gateway at supabase/functions/mcp
  • protected resource metadata and WWW-Authenticate challenge 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_capability requires an actual device runtime to consume jobs and write results
  • The consent app should be served from https://www.sensactagent.com/oauth/consent in production

Prerequisites

  • Node.js 20+
  • npm
  • Supabase CLI
  • a Supabase project with:
    • OAuth server enabled
    • dynamic OAuth app registration enabled
    • this repository linked or configured against that project

Local Development

1. MCP shared package

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

2. Web auth app

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

Set:

  • VITE_SUPABASE_URL
  • VITE_SUPABASE_ANON_KEY

Then run:

bash
npm install
npm run dev

For local development the web auth app runs at:

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

Production web auth URLs:

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

3. Supabase schema and function deployment

Push migrations:

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

Deploy the MCP function:

bash
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:

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

Public preview protected resource metadata:

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

Public preview authorization server metadata:

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

Deployment template:

text
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:

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

Fallback install for Codex:

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

Log in through Supabase OAuth:

bash
codex mcp login sensact

Check status:

bash
codex mcp list
codex mcp get sensact

Fallback install for Claude Code:

bash
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:

bash
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.json against its $schema
  • stamp the pushed tag version into server.json
  • authenticate with mcp-publisher login github-oidc
  • publish io.github.sensact-agents/sensact to the Registry

After publication, verify the public entry:

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

Verification Commands

Consent app:

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

MCP shared package:

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

Registry publication assets:

bash
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:

bash
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

Universal
热门

聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。

想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。

平台与服务
未扫描123.0k

Slack动图

by anthropics

Universal
热门

面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。

帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。

平台与服务
未扫描123.0k

邮件模板

by alirezarezvani

Universal
热门

快速搭建生产可用的事务邮件系统:生成 React Email/MJML 模板,接入 Resend、Postmark、SendGrid 或 AWS SES,并支持本地预览、i18n、暗色模式、反垃圾优化与追踪埋点。

面向营销与服务场景,快速搭建高质量邮件模板,省去反复设计与切图成本,成熟度和社区认可都很高。

平台与服务
未扫描12.5k

相关 MCP Server

Slack 消息

编辑精选

by Anthropic

热门

Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。

这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。

平台与服务
84.2k

by netdata

热门

io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。

这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。

平台与服务
78.5k

by d4vinci

热门

Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。

这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。

平台与服务
38.1k

评论