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 已作为 remote-only public preview 服务器为官方 MCP Registry 做好准备。

  • 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

    • 面向 Supabase OAuth 服务器的浏览器认证 + 同意 UI,位于 / 和 /oauth/consent

  • supabase

    • Edge Function MCP 网关、迁移、配置、种子数据

不属于此仓库快照的部分:

  • mediapipe

    • 作为嵌套的上游仓库被忽略

关键文档

当前实现状态

本仓库已实现:

  • 位于 supabase/functions/mcp 的 Supabase Edge Function MCP 网关

  • 用于远程 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. Web 认证应用

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

设置:

  • VITE_SUPABASE_URL

  • VITE_SUPABASE_ANON_KEY

然后运行:

npm install
npm run dev

在本地开发中,Web 认证应用运行于:

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

生产环境 Web 认证 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 是有意为之。网关必须为远程 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 端点进行冒烟测试

  • 根据其 $schema 验证 server.json

  • 将推送的标签版本写入 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

远程 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

当前仓库引导状态:

  • commit: d394e5b

  • tag: 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