Sensact

io.github.sensact-agentsPublished by GitHub account sensact-agentsv0.1.2Updated Oct 25, 2026

An authenticated remote MCP server for user-owned devices and one-shot capability invocation.

VerifiedStreamable HTTPWeb executableDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

Remote MCP server that lets an assistant list a user's registered devices, inspect their capabilities, and invoke one-shot device capabilities.

What you can do
List devices visible to the authenticated user and inspect each device's capabilities, including reference capabilities such as camera capture, screen capture and contact lookup. Invoke a device capability as a job and retrieve structured results or artifact references. Access is gated by Supabase OAuth with a browser sign-in and consent step. Realtime media sessions and advanced actions are described as planned, not current.
When to use it
Use it when you want an AI client such as Codex or Claude to reach user-owned devices through a standard remote MCP endpoint, for example to trigger a camera or screen capture or look up a contact. It is a public preview, so expect limited functionality.
Requirements
A remote MCP client that supports HTTP transport and OAuth. Sign-in goes through Supabase Auth (Google sign-in or magic-link fallback) with a consent screen. No API keys or environment variables are declared. Device discovery depends on devices being registered externally, and invocation needs a device runtime to consume jobs.
Before you install
The server acts on user-owned devices: invoking a capability can capture a camera or screen or read contacts, so grant consent deliberately. The README states no real device runtime is wired yet, so discovery and invocation may not work end to end. It is a public preview hosted on Supabase, and device data and artifacts pass through that hosted control plane.

Installation

In SourceWeft

  1. Open Sensact in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.sensact-agents%2Fsensact/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "sensact": {
      "type": "http",
      "url": "https://helavgrvwipmdvyejfom.supabase.co/functions/v1/mcp"
    }
  }
}

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

  • 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 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-servicenpm installnpm run typecheck

2. Web auth app

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

Set:

  • VITE_SUPABASE_URL
  • VITE_SUPABASE_ANON_KEY

Then run:

bash
npm installnpm 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/Sensactsupabase db push --linked --yes

Deploy the MCP function:

bash
cd /Users/luolingfeng/Sensactsupabase 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/mcphttps://<project-ref>.supabase.co/functions/v1/mcp/.well-known/oauth-protected-resourcehttps://<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 listcodex 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.Zgit 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-appnpm testnpm run build

MCP shared package:

bash
cd /Users/luolingfeng/Sensact/services/mcp-servicenpm run typecheck

Registry publication assets:

bash
cd /Users/luolingfeng/Sensactnode --test scripts/registry-publication.test.mjsnode scripts/validate-server-json.mjsnode scripts/smoke-test-remote-mcp.mjs

Remote MCP discovery:

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

Git

Current repository bootstrap:

  • commit: d394e5b
  • tag: v0.1.0

Source: README.md at commit 613ba46

Tools

0
SourceWeft has not read this server's tools yet.

Version history

1
  1. v0.1.2LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declaredRequired10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.