open-index/open-npm huggingface dataset:
npm package: @mcborov01/phantomauth
Description: MCP server that fills web forms with secrets from SecureVault — AI agents never see raw credentials
Author: andriyshevchenko
Latest version: 2.8.30

# PhantomAuth

MCP server that fills web forms with secrets from [SecureVault](https://github.com/andriyshevchenko/SecureVault) — AI agents never see raw credentials.

## How it works

PhantomAuth sits between your AI agent and Microsoft's Playwright MCP:

```
AI Agent → PhantomAuth MCP → Playwright MCP → Browser
               ↕
          SecureVault (OS Keychain)
```

1. Agent calls `secure_fill("Microsoft Email", "#email-input")`
2. PhantomAuth resolves "Microsoft Email" from SecureVault's OS keychain
3. The raw value is forwarded directly to Playwright MCP's `browser_fill_form`
4. Agent only sees "✅ Filled — value hidden from agent"

The agent **never** sees the actual password, token, or credential.

## Prerequisites

- [SecureVault](https://github.com/andriyshevchenko/SecureVault) installed with secrets in the OS keychain
- [Playwright MCP](https://github.com/microsoft/playwright-mcp) running in HTTP mode:
  ```bash
  npx @playwright/mcp@latest --port 8931 --shared-browser-context
  ```

## Setup

Add to your MCP client configuration (e.g. VS Code `mcp.json`):

```json
{
  "mcpServers": {
    "phantomauth": {
      "command": "node",
      "args": ["C:/src/PhantomAuth/index.js"],
      "env": {
        "PLAYWRIGHT_MCP_URL": "http://localhost:8931/mcp"
      }
    }
  }
}
```

## Tools

### `secure_fill`
Fill a form field with a secret. Uses Playwright's fill (sets value directly).

```
secure_fill(secretTitle: "My Password", selector: "#password")
```

### `secure_type`
Type a secret into a field keystroke-by-keystroke. Use for React-controlled inputs.

```
secure_type(secretTitle: "TOTP Code", selector: "#otp-input", pressEnterAfter: true)
```

### `secure_authenticate`
Multi-step login flow using a SecureVault profile.

```
secure_authenticate(
  profileName: "Microsoft",
  steps: [
    { selector: "#email", envVar: "EMAIL", action: "fill" },
    { selector: "#password", envVar: "PASSWORD", action: "fill", pressEnterAfter: true, waitMs: 2000 }
  ]
)
```

### `list_vault_secrets`
List available secret names (values are never exposed).

### `list_vault_profiles`
List profiles and their env var → secret mappings.

## Configuration

| Environment Variable | Default | Description |
|---|---|---|
| `PLAYWRIGHT_MCP_URL` | `http://localhost:8931/mcp` | URL of the Playwright MCP HTTP endpoint |

## License

MIT

## AI Agent Skills

PhantomAuth includes instruction files that teach AI agents how to use the tools:

| File | Agent | Description |
|------|-------|-------------|
| `.github/copilot-instructions.md` | GitHub Copilot | Custom instructions loaded automatically by Copilot |
| `.claude/skills/phantomauth.md` | Claude Code | Skill file discovered by Claude Code |
| `SKILL.md` | Universal | Cross-agent skill file (agentskills.io format) |

### Using with agentskills CLI

```bash
npx agentskills export --target copilot
npx agentskills export --target claude
```
npm package: @mccahan/simple-proxy-ui
Description: Creates a super simple local proxy with the world's least sophisticated browser-based UI, allowing you to perform request overrides using regex.
Author: Ryan McCahan
Latest version: 0.1.3

# Simple Proxy UI

Creates a super simple local proxy with the world's least sophisticated browser-based UI, allowing you to perform request overrides using regex.

To start, use `npx github:mccahan/simple-proxy-ui https://<hostname>`

By default the configuration interface will serve at http://localhost:3001 and the local proxy at http://localhost:3000
npm package: @mccann/vue-cli-plugin-sanity
Description: vue-cli plugin for easy access to Sanity.io datasets
Author: David Eglin
Latest version: 0.1.4

# `@mccann/vue-cli-plugin-sanity`

Easily integrate [Sanity](https://sanity.io) as a datasource within your vue-cli project

## Installation / Setup

To add this plugin to your `vue-cli` powered project, run the following command from inside your project folder:
```
vue add @mccann/vue-cli-plugin-sanity
```

You will be prompted for 3 configuration settings during setup:
```
Enter your Sanity projectId
Enter your dataset name (default: production)
Use Sanity CDN? (Y/n)
```

You can find your projectId and dataset name from your [Sanity management console](https://manage.sanity.io), but these should all be settings you are familiar with if you have worked with Sanity before.

## Files

The plugin will add some files to your project:

* `src/sanity/index.js` is the main point of entry for Sanity calls within your project
* `src/sanity/options.js` is the configuration file where your configuration is stored

## Usage

The plugin adds a `$sanity` mixin to your project which exposes the `fetch()` method to your components like so:

```
const query = `*[_type == 'page']{
  ...
}`
const data = await this.$sanity.fetch(query)
this.data = data
```