open-index/open-npm huggingface dataset:
npm package: @squidlerio/squidler-mcp
Description: Squidler MCP proxy - enables testing localhost URLs via local Chrome and CDP proxy
Author: Squidler
Latest version: 1.0.2

# @squidlerio/squidler-mcp

MCP proxy that sits between an AI client (Claude, Cursor, etc.) and the remote Squidler MCP server. It forwards all tools, resources, and prompts transparently, while adding local Chrome session management for testing localhost URLs.

## How it works

```
AI Client (stdio) ←→ MCP Proxy ←→ Remote Squidler MCP (HTTP)
                        ↕
                   Local Chrome ←→ CDP Proxy (WebSocket)
```

The proxy intercepts `test_case_run` calls — when local Chrome mode is enabled, it automatically creates a CDP session and routes the test through your local browser instead of the cloud worker's Chrome.

## Quick Start

Run directly with npx — no install or API key needed:

```bash
npx @squidlerio/squidler-mcp
```

On first use, a browser window opens for you to sign in to Squidler. Your session is saved locally so you only need to do this once.

### Claude Code

```bash
claude mcp add squidler -- npx -y @squidlerio/squidler-mcp
```

### Cursor / Other MCP Clients

Add to your MCP client configuration:

```json
{
  "mcpServers": {
    "squidler": {
      "command": "npx",
      "args": ["-y", "@squidlerio/squidler-mcp"]
    }
  }
}
```

## CLI Commands

```bash
# Sign in to Squidler (happens automatically on first use)
squidler-mcp login

# Sign out and clear saved session
squidler-mcp logout

# Download Chrome headless shell for local testing
squidler-mcp download-chrome
```

## Local Session Tools

These tools are added by the proxy (not available on the remote server):

- **`local_session_start`** — Enable local Chrome mode. Accepts `headless` (boolean, default: true). Chrome is launched on the first `test_case_run`.
- **`local_session_stop`** — Disable local Chrome mode and stop any active session.
- **`local_session_status`** — Check if local Chrome mode is enabled and if a session is active.

When local Chrome mode is enabled, `test_case_run` automatically creates/recycles a CDP session and routes through your local Chrome. Back-to-back tests get a fresh Chrome instance each time.

## Advanced: API Key Override

If you prefer to use an API key instead of OAuth login, set the `SQUIDLER_API_KEY` environment variable:

```json
{
  "mcpServers": {
    "squidler": {
      "command": "npx",
      "args": ["-y", "@squidlerio/squidler-mcp"],
      "env": {
        "SQUIDLER_API_KEY": "your-api-key"
      }
    }
  }
}
```

| Variable | Required | Default | Description |
|---|---|---|---|
| `SQUIDLER_API_KEY` | No | — | API key override (skips OAuth login) |
| `SQUIDLER_API_URL` | No | `https://mcp.squidler.io` | Remote MCP server URL |

## Development

```bash
bun install
bun run start          # Run CLI
bun run mcp-proxy      # Run MCP proxy
bun run build          # Build for npm publishing
```
npm package: @squids-io/qdataai-ui
Description: A react library developed with dumi
Latest version: 4.2.0

# @squids-io/qdataai-ui

A react library developed with dumi

## Usage

TODO

## Options

TODO

## Development

```bash
# install dependencies
$ pnpm install

# develop library by docs demo
$ pnpm start

# build library source code
$ pnpm run build

# build library source code in watch mode
$ pnpm run build:watch

# build docs
$ pnpm run docs:build

# check your project for potential problems
$ pnpm run doctor
```

## Reference

[Dumi](https://d.umijs.org/)

[Lobe UI](https://github.com/lobehub/lobe-ui)

## LICENSE

MIT
npm package: @squids/prettier-config
Description: Squids Prettier config
Author: ued@squids.cn
Latest version: 1.0.0

# `@squids/prettier-config`

> Squids [Prettier](https://prettier.io) config

## Usage

**Install**:

```bash
$ npm i -D @squids/prettier-config
```

**Edit `package.json`**:

```jsonc
{
  // ...
  "prettier": "@squids/prettier-config"
}
```

**Or Edit `.prettierrc.js`**:

```js
// package.json type=commonjs
module.exports = {
  ...require('@squids/prettier-config'),
  semi: false,
}

// package.json type=module
import config from '@squids/prettier-config'

export default {
  ...config,
  semi: false,
}
```
npm package: @squids/reset.css
Description: A clean and concise CSS reset
Latest version: 1.0.0

# @squids/reset.css

> A clean and concise CSS reset


**NPM**

```sh
npm install --save @squids/reset.css
```

**CDN**

See xxx

**Download**

See https://github.com/squids-io/squids-fnd/packages/reset.css/latest/reset.css


## Browser support

* Chrome
* Edge
* Firefox
* Safari
* Opera
npm package: @squievreux/ui
Description: Quievreux Design System - Icons & UI Components
Latest version: 0.1.1

# @squievreux/ui

Zentrales Design-System Package für Quievreux Applications.
Beinhaltet standardisierte Icons (Lucide) und CSS Design Tokens.

## Installation

```bash
npm install @squievreux/ui
# oder
pnpm add @squievreux/ui
```

Voraussetzung: `.npmrc` mit GitHub Token konfiguriert.

## Integration (Tailwind CSS)

Anstatt ein CSS-File zu importieren, muss Tailwind CSS so konfiguriert werden, dass es den JavaScript-Code dieses Pakets nach Klassen scannt.

Füge dazu folgenden Pfad in deine `tailwind.config.js` unter `content` hinzu:

```javascript
module.exports = {
  content: [
    // ... andere Pfade
    "./node_modules/@squievreux/ui/dist/**/*.{js,mjs}"
  ],
  // ...
}
```

Dadurch wird nur das CSS generiert, das tatsächlich verwendet wird.

## Icons

Verwende die `Icon` Komponente für konsistente Größen:

```tsx
import { Icon } from '@squievreux/ui';
import { Music, Play } from 'lucide-react';

export function Player() {
  return (
    <div>
      <Icon icon={Music} size="md" />
      <Icon icon={Play} size="lg" className="text-primary" />
    </div>
  );
}
```

### Größen (Sizes)

| Token | Pixel | Tailwind  |
| ----- | ----- | --------- |
| `xs`  | 12px  | h-3 w-3   |
| `sm`  | 16px  | h-4 w-4   |
| `md`  | 20px  | h-5 w-5   |
| `lg`  | 24px  | h-6 w-6   |
| `xl`  | 32px  | h-8 w-8   |
| `2xl` | 40px  | h-10 w-10 |

## Development

```bash
pnpm install
pnpm build
```

## Lizenz

UNLICENSED
npm package: @squill/mysql-5.7
Description: A MySQL 5.7 query-builder/ORM
Author: anyhowstep
Latest version: 0.0.11

[![npm version](https://badge.fury.io/js/%40squill%2Fmysql-5.7.svg)](https://badge.fury.io/js/%40squill%2Fmysql-5.7)

At the moment, written with MySQL 5.7.26 in mind.

This is a MySQL 5.7 adapter for [`@squill/squill`](https://github.com/AnyhowStep/tsql)

-----

### TODO

+ Detailed usage instructions

```ts
import * as sql from "@squill/squill";
import * as mysql from "@squill/mysql-5.7";

const myTable = sql.table("myTable")
    .addColumns({
        myTableId : sql.dtBigIntSigned(),
        description : sql.dtVarChar(1024),
    })
    .setAutoIncrement(columns => columns.myTableId);

const pool = new mysql.Pool({
    host      : /*Some MySQL_HOST*/,
    database  : /*Some MYSQL_DATABASE*/,
    user      : /*Some MYSQL_USERNAME*/,
    password  : /*Some MYSQL_PASSWORD*/,
    charset   : mysql.CharSet.utf8mb4,
});

await pool
    .acquire(connection => myTable
        .whereEqPrimaryKey({
            myTableId : 1337n,
        })
        .fetchOne(connection)
    )
    .then(
        (row) => {
            console.log(row.myTableId);
            console.log(row.description);
        },
        (err) => {
            if (sql.isSqlError(err)) {
                //Probably some error related to executing a SQL query
                //Maybe a RowNotFoundError
            } else {
                //Probably some other error
            }
        }
    );

/**
 * Build a query that may be used later.
 */
const myQuery = sql.from(myTable)
    .select(columns => [
        columns.myTableId
        sql.concat(
            "Description: ",
            columns.description
        ).as("labeledDescription"),
    ]);

await pool
    .acquire(connection => myQuery
        .whereEqPrimaryKey(
            tables => tables.myTable,
            {
                myTableId : 1337n,
            }
        )
        .fetchOne(connection)
    )
    .then(
        (row) => {
            console.log(row.myTableId);
            console.log(row.labeledDescription);
        },
        (err) => {
            if (sql.isSqlError(err)) {
                //Probably some error related to executing a SQL query
                //Maybe a RowNotFoundError
            } else {
                //Probably some other error
            }
        }
    );

```