open-index/open-npm huggingface dataset:
npm package: @runtypelabs/mcp
Description: Model Context Protocol (MCP) server for Runtype API
Author: Runtype Labs
Latest version: 0.1.1

# @runtypelabs/mcp

Model Context Protocol (MCP) server for Runtype API.

> Official MCP client package available on npm

## Installation

```bash
npm install @runtypelabs/mcp
# or
pnpm add @runtypelabs/mcp
```

## Usage

### Local CLI (stdio transport)

Run the MCP server locally for use with Claude Desktop, Cursor, or other MCP clients:

```bash
RUNTYPE_API_KEY=tv_xxx npx @runtypelabs/mcp
```

#### Claude Desktop Configuration

Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "runtype": {
      "command": "npx",
      "args": ["@runtypelabs/mcp"],
      "env": {
        "RUNTYPE_API_KEY": "tv_your_api_key_here"
      }
    }
  }
}
```

#### Cursor Configuration

Add to `~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "runtype": {
      "command": "npx",
      "args": ["@runtypelabs/mcp"],
      "env": {
        "RUNTYPE_API_KEY": "tv_your_api_key_here"
      }
    }
  }
}
```

### Hosted Endpoint (HTTP transport)

You can also use the hosted MCP endpoint at `https://api.runtype.com/v1/mcp/protocol`:

```json
{
  "mcpServers": {
    "runtype": {
      "url": "https://api.runtype.com/v1/mcp/protocol",
      "headers": {
        "Authorization": "Bearer tv_your_api_key_here"
      }
    }
  }
}
```

### Programmatic Usage

```typescript
import { createMcpServer, RuntypeApiClient } from "@runtypelabs/mcp"
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"

// Create API client
const client = new RuntypeApiClient({
  apiKey: "tv_xxx",
  baseUrl: "https://api.runtype.com",
})

// Create MCP server
const server = createMcpServer({ apiClient: client })

// Connect with your transport of choice
const transport = new StdioServerTransport()
await server.connect(transport)
```

## Environment Variables

| Variable | Description | Default |
|----------|-------------|---------|
| `RUNTYPE_API_KEY` | Your Runtype API key | (required) |
| `RUNTYPE_API_URL` | API base URL | `https://api.runtype.com` |

## Available Tools

| Tool | Description |
|------|-------------|
| `dispatch` | Execute a flow with optional record context |
| `list_flows` | List available flows |
| `get_flow` | Get flow details |
| `run_flow` | Execute a flow by ID |
| `list_records` | List records |
| `get_record` | Get record details |
| `create_record` | Create a new record |
| `update_record` | Update a record |
| `list_tools` | List available tools |
| `execute_tool` | Execute a tool |
| `run_prompt` | Run a prompt directly |

## License

MIT
npm package: @runtypelabs/persona-proxy
Description: Proxy server for @runtypelabs/persona widget - handles flow configuration and forwards requests to AI backends.
Author: Runtype
Latest version: 3.8.5

## Vanilla Agent Proxy

Proxy server library for `@runtypelabs/persona` widget. Handles flow configuration and forwards requests to Runtype or other AI backends.

### Installation

```bash
npm install @runtypelabs/persona-proxy
```

### Usage

The proxy server handles flow configuration and forwards requests to Runtype. You can configure it in three ways:

**Option 1: Use default flow (recommended for getting started)**

```ts
// api/chat.ts
import { createChatProxyApp } from '@runtypelabs/persona-proxy';

export default createChatProxyApp({
  path: '/api/chat/dispatch',
  allowedOrigins: ['https://www.example.com']
});
```

**Option 2: Reference a Runtype flow ID**

```ts
import { createChatProxyApp } from '@runtypelabs/persona-proxy';

export default createChatProxyApp({
  path: '/api/chat/dispatch',
  allowedOrigins: ['https://www.example.com'],
  flowId: 'flow_abc123' // Flow created in Runtype dashboard or API
});
```

**Option 3: Define a custom flow**

```ts
import { createChatProxyApp } from '@runtypelabs/persona-proxy';

export default createChatProxyApp({
  path: '/api/chat/dispatch',
  allowedOrigins: ['https://www.example.com'],
  flowConfig: {
    name: "Custom Chat Flow",
    description: "Specialized assistant flow",
    steps: [
      {
        id: "custom_prompt",
        name: "Custom Prompt",
        type: "prompt",
        enabled: true,
        config: {
          model: "meta/llama3.1-8b-instruct-free",
          responseFormat: "markdown",
          outputVariable: "prompt_result",
          userPrompt: "{{user_message}}",
          systemPrompt: "you are a helpful assistant, chatting with a user",
          previousMessages: "{{messages}}"
        }
      }
    ]
  }
});
```

**Hosting on Vercel:**

```ts
import { createVercelHandler } from '@runtypelabs/persona-proxy';

export default createVercelHandler({
  allowedOrigins: ['https://www.example.com'],
  flowId: 'flow_abc123' // Optional
});
```

### Configuration Options

| Option | Type | Description |
| --- | --- | --- |
| `upstreamUrl` | `string` | Runtype API endpoint (defaults to `https://api.runtype.com/v1/dispatch`) |
| `apiKey` | `string` | Runtype API key (defaults to `RUNTYPE_API_KEY` environment variable) |
| `path` | `string` | Proxy endpoint path (defaults to `/api/chat/dispatch`) |
| `allowedOrigins` | `string[]` | CORS allowed origins |
| `flowId` | `string` | Runtype flow ID to use |
| `flowConfig` | `RuntypeFlowConfig` | Custom flow configuration |

### Environment Setup

Add `RUNTYPE_API_KEY` to your environment. The proxy constructs the Runtype payload (including flow configuration) and streams the response back to the client.

### Building

```bash
pnpm build
```

This generates:
- `dist/index.js` (ESM)
- `dist/index.cjs` (CJS)
- Type definitions in `dist/index.d.ts`
npm package: @runtzswap-libs/eslint-config-runtzswap
Description: Eslint config for Runtzswap
Author: RabbitDoge
Latest version: 1.0.5

# eslint-config-pancake

Pancake Eslint config with:

- Airbnb config
- Typescript
- Prettier

## Usage

```
npx install-peerdeps --dev @pancakeswap/eslint-config-pancake
```

Add `"extends": "@pancakeswap/eslint-config-pancake"` to your eslint config file.
npm package: @runtzswap-libs/sdk
Description: 🛠 An SDK for building applications on top of Runtzswap.
Latest version: 2.4.1

# Runtzswap SDK

Forked from the [Uniswap SDK](https://github.com/Uniswap/uniswap-v2-sdk/commit/a88048e9c4198a5bdaea00883ca00c8c8e582605).

You can refer to the Uniswap SDK documentation [uniswap.org](https://uniswap.org/docs/v2/SDK/getting-started/).

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone https://github.com/RuntzCoinOfficial/RuntzSwap-SDK.git
```

Move into the runtzswap-sdk working directory

```sh
cd runtzswap-sdk/
```

Install dependencies

```sh
yarn install
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 6 passed, 6 of 7 total
Tests:       3 skipped, 82 passed, 85 total
Snapshots:   0 total
Time:        5.091s
Ran all test suites.
✨  Done in 6.61s.
```
npm package: @runtzswap-libs/uikit
Description: Set of UI components for runtz projects
Latest version: 1.0.50

# 🥞 Runtz UIkit

[![Version](https://img.shields.io/npm/v/@runtzswap-libs/uikit)](https://www.npmjs.com/package/@runtzswap-libs/uikit) [![Size](https://img.shields.io/bundlephobia/min/@runtzswap-libs/uikit)](https://www.npmjs.com/package/@runtzswap-libs/uikit)

Runtz UIkit is a set of React components and hooks used to build pages on Runtz's apps. It also contains a theme file for dark and light mode.

## Install

`yarn add @runtzswap-libs/uikit`

## Setup

### Theme

Before using Runtz UIkit, you need to provide the theme file to styled-component.

```
import { ThemeProvider } from 'styled-components'
import { light, dark } from '@runtzswap-libs/uikit'
...
<ThemeProvider theme={isDark}>...</ThemeProvider>
```

### Reset

A reset CSS is available as a global styled component.

```
import { ResetCSS } from '@runtzswap-libs/uikit'
...
<ResetCSS />
```

### Types

This project is built with Typescript and export all the relevant types.

## How to use the UIkit

If you want to use components from the UIkit, check the [Storybook documentation](https://runtzswap.github.io/runtz-uikit/)
npm package: @runwayml/avatars-node-rpc
Description: Node.js handler for backend RPC tool calls in Runway avatar sessions
Latest version: 0.1.0

# @runwayml/avatars-node-rpc

Node.js handler for backend RPC tool calls in [Runway](https://runwayml.com) avatar sessions.

This package joins a LiveKit room as a hidden participant and dispatches incoming tool call requests from the avatar worker to your handler functions via LiveKit RPC.

## Installation

```bash
npm install @runwayml/avatars-node-rpc
```

Requires Node.js 18 or later.

## Usage

### With API key and session ID

The package calls the `/connect_backend` endpoint and joins the room automatically:

```typescript
import { createRpcHandler } from '@runwayml/avatars-node-rpc';

const handler = await createRpcHandler({
  apiKey: process.env.RUNWAYML_API_SECRET!,
  sessionId: 'your-session-id',
  tools: {
    lookup_trivia: async (args) => {
      const question = await db.getRandomQuestion(args.category as string);
      return { question: question.text, options: question.choices };
    },
  },
  onConnected: () => console.log('Connected to session'),
  onDisconnected: () => console.log('Session ended'),
  onError: (err) => console.error('RPC error:', err),
});

await handler.close();
```

### With pre-fetched credentials

If you already called `/connect_backend` yourself:

```typescript
const handler = await createRpcHandler({
  credentials: {
    url: 'wss://livekit.example.com',
    token: '<jwt>',
    roomName: '<session-id>',
  },
  tools: {
    lookup_trivia: async (args) => {
      return { answer: 'The mitochondria is the powerhouse of the cell' };
    },
  },
});
```

## API

### `createRpcHandler(options): Promise<RpcHandler>`

Connects to a LiveKit room and starts handling tool call requests.

**Options:**

| Option | Type | Description |
|--------|------|-------------|
| `apiKey` | `string` | Runway API key. Required if `credentials` is not provided. |
| `sessionId` | `string` | Session ID. Required if `credentials` is not provided. |
| `baseUrl` | `string` | Base URL for the Runway API. Defaults to `https://api.dev.runwayml.com`. |
| `credentials` | `{ url, token, roomName }` | Pre-fetched LiveKit credentials. Alternative to `apiKey` + `sessionId`. |
| `tools` | `Record<string, ToolHandler>` | Tool handler functions keyed by tool name. |
| `onConnected` | `() => void` | Called when connected to the LiveKit room. |
| `onDisconnected` | `() => void` | Called when disconnected. |
| `onError` | `(error: Error) => void` | Called on handler errors. |
| `debug` | `boolean` | Log RPC method calls for debugging. |

**`ToolHandler`:** `(args: Record<string, unknown>) => Promise<Record<string, unknown>>`

Each tool handler receives the arguments from the LLM and returns a result object. If a handler throws, the error message is sent back to the worker so it doesn't hang until timeout.

### `RpcHandler`

| Property/Method | Type | Description |
|-----------------|------|-------------|
| `close()` | `Promise<void>` | Disconnect from the room and clean up. |
| `connected` | `boolean` | Whether currently connected to the room. |

## License

MIT
npm package: @runx/nx-runners
Description: `@runx/nx-runners` is a set of runners for Nx projects.
Latest version: 2.0.0

# `@runx/nx-nx-runners`

> **Attention is required!** This project is not an official [Nx Cloud](https://nx.app) service. This is an open-source alternative.

`@runx/nx-nx-runners` is a set of nx-runners for Nx projects.

Now available 1 runner for caching build artifacts with S3 `@runx/nx-nx-runners/s3`

## `@runx/nx-nx-runners/s3`

### Configuring the S3 runner

The runner is configured in `nx.json`. Available all options of default runner configuration.

```json
{
  "tasksRunnerOptions": {
    "default": {
      "runner": "@runx/nx-runners/s3",
      "options": {
        "cacheableOperations": ["build", "lint", "test", "e2e"]
      }
    }
  }
}
```

Connection is configured using the `s3` option

```json
{
  "tasksRunnerOptions": {
    "default": {
      "runner": "@runx/nx-runners/s3",
      "options": {
        "cacheableOperations": ["build", "lint", "test", "e2e"],
        "s3": {
          "endpoint": "http://192.168.1.4:9000",
          "accessKeyId": "accessKeyId",
          "secretAccessKey": "secretAccessKey",
          "bucket": "bucket"
        }
      }
    }
  }
}
```
npm package: @ruochuan/mp-cli
Description: ![npm version](https://img.shields.io/npm/v/@ruochuan/mp-cli) ![npm download](https://img.shields.io/npm/dm/mp-cli) ![github forks](https://img.shields.io/github/forks/lxchuan12/mp-cli?style=social) ![github stars](https://img.shields.io/github/stars/lxch
Latest version: 0.10.3

# mp-cli

![npm version](https://img.shields.io/npm/v/@ruochuan/mp-cli)
![npm download](https://img.shields.io/npm/dm/mp-cli)
![github forks](https://img.shields.io/github/forks/lxchuan12/mp-cli?style=social)
![github stars](https://img.shields.io/github/stars/lxchuan12/mp-cli?style=social)
![github watchers](https://img.shields.io/github/watchers/lxchuan12/mp-cli?style=social)
![github license](https://img.shields.io/github/license/lxchuan12/mp-cli)

> 基于微信小程序 `miniprogram-ci` 开发的上传小程序的自动化工具

[miniprogram-ci 官方文档](https://developers.weixin.qq.com/miniprogram/dev/devtools/ci.html)

> 密钥及 IP 白名单配置 参考文档。一般来说自己使用，可以关闭 IP 白名单，因为 IP 地址可能变。

## 支持的功能

![支持的功能](./images/xmind.png)

显示帮助信息

![显示帮助信息](./images/version-and-help-v0.9.0.png)

上传效果

![上传效果](./images/upload.png)

预览效果就是在控制台显示二维码。

## 使用及功能列表

```bash
npm i @ruochuan/mp-cli -g
# 查看帮助
mp-cli -h
mp-cli --help

# 查看版本号
mp-cli -v
mp-cli --version

# 或者别名 ruochuan-mp-cli 、rmc
ruochuan-mp-cli --help
rmc --help

# 或者不全局安装 npx @ruochuan/mp-cli --help
```

-   [x] 支持上传 `mp-cli --upload`
-   [x] 支持预览 `mp-cli --preview`
-   [x] 支持指定参数 如 `robot` 默认是 1，命令：`mp-cli --upload --robot 2`
-   [x] 支持空跑，不执行 `mp-cli --upload --dry`
-   [x] 支持指定 `git commit hash` 和作者
-   [x] 支持单选多个小程序 `mp-cli --upload --useSelect`
-   [x] 支持选择多个批量上传 `mp-cli --upload --useMultiSelect`
-   [x] 支持自定义的 `projectOptions`、`uploadOptions`、`previewOptions` 配置，参考 `wx.config.js` 配置

```bash
参数可以相互结合。
--robot 2 [ 可选 1-30 ]
--dry 空跑
--useSelect 单选
--useMultiSelect 多选批量上传
```

## 使用前需先配置 `wx.config.js` 配置（更推荐）

在当前小程序项目的目录下配置 `wx.config.js`，这个优先于 `.env`

参考[当前项目中的 `wx.config.js`](https://github.com/lxchuan12/mp-cli/blob/main/wx.config.js)

按照[微信小程序文档](https://developers.weixin.qq.com/miniprogram/dev/devtools/ci.html)配置小程序密钥等，这样就能上传和预览了。如果没有微信小程序，可以自行免费开通个人的[微信小程序](https://mp.weixin.qq.com/)。

## 或者配置 `.env`

在当前小程序项目的目录下配置 `.env`

参考[当前项目中的 `.env`](https://github.com/lxchuan12/mp-cli/blob/main/.env)

## `configPath` `json` 配置

如果需要多选时，需配置 `configPath`。

参考 [当前项目中的 `config/example.json`](https://github.com/lxchuan12/mp-cli/blob/main/config/example.json)

## 可自行开发

```bash
# 克隆我写的 mp-cli 工具
git clone https://github.com/lxchuan12/mp-cli.git
cd mp-cli
yarn install
# 没有自己的小程序可以克隆腾讯开源的电商小程序
git clone https://github.com/lxchuan12/tdesign-miniprogram-starter-retail.git
# 切到分支 feature/release-it
git checkout feature/release-it
```

可以克隆我的项目，到一个目录中，比如 `projects` 中。

再克隆我的另外一个小程序（腾讯开源的电商小程序），到同一个目录中。比如 `projects` 中。

## TODOs

-   [x] 使用 `ES Module` 开发
-   [x] 初步引入 `TS`
-   [ ] cwd
-   [ ] 校验 nodejs 版本
-   [ ] 加入测试
-   [ ] 支持可视化操作

## 原理文章

文章已完成[README-2](./README-2.md)，也已发布在掘金。

[听说你还在用开发者工具上传小程序，我从尤雨溪那学会了基于 miniprogram-ci 开发脚手架工具，提效摸鱼](https://juejin.cn/post/7124467547163852808)

**注意**：文章是基于 [`tag v0.7.0`](https://github.com/lxchuan12/mp-cli/tree/0.7.0) 撰写。后续 `mp-cli` 会持续更新，文章可能不会更新。