Skip to main content
Glama
jasonlcs

Waferlock Robot MCP

by jasonlcs
README.md
# Waferlock MCP CLI (Public)

這個專案提供一個獨立的 CLI,透過 Waferlock Robot MCP 在 Heroku 上的公開 REST API,將資料橋接到支援 Model Context Protocol (MCP) 的客戶端(例如 ChatGPT Desktop)。使用者只需要 API URL 與 Token,即可在本地啟動 stdio 版 MCP 伺服器,不需暴露 AWS 憑證。

## 安裝與使用

### 1. 取得程式碼

```bash
git clone https://github.com/jasonlcs/waferlock-robot-mcp-public.git
cd waferlock-robot-mcp-public
```

### 2. 編譯

```bash
npm install
npm run build
```

### 3. 直接執行 (本地調試)

```bash
node dist/cli.js \
  --api-url https://waferlock-robot-mcp-1177c207c107.herokuapp.com \
  --api-token <你的 API Token> \
  --mcp-token <選填:要求 MCP 客戶端提供的 Token>
```

- `--server-name`:覆寫 MCP server 名稱
- `--server-version`:覆寫 MCP server 版本
- `--mcp-token`:若指定,MCP 客戶端必須提供同樣的 Token(透過環境變數或連線設定)

### 4. 透過 `npx` 執行 (Git 來源)

建立 tag 後(例如 `git tag v1.0.0 && git push origin v1.0.0`),即可提供使用者以下指令:

```bash
npx --yes github:jasonlcs/waferlock-robot-mcp-public#v1.0.0 \
  --api-url https://waferlock-robot-mcp-1177c207c107.herokuapp.com \
  --api-token <你的 API Token> \
  --mcp-token <選填>
```

### 5. ChatGPT Desktop 設定範例

```json
{
  "mcpServers": {
    "waferlock-robot": {
      "command": "npx",
      "args": [
        "--yes",
        "github:jasonlcs/waferlock-robot-mcp-public#v1.0.0",
        "--api-url", "https://waferlock-robot-mcp-1177c207c107.herokuapp.com",
        "--api-token", "<你的 API Token>",
        "--mcp-token", "<選填>"
      ]
    }
  }
}
```

將 `jasonlcs`、`waferlock-robot-mcp-1177c207c107`、`<你的 API Token>` 改成實際值即可使用。

## 專案結構

```
waferlock-robot-mcp-public/
├── package.json
├── tsconfig.json
├── README.md
└── src
    ├── cli.ts
    └── services
        ├── manualApiProvider.ts
        ├── manualProvider.ts
        └── mcpService.ts
```

## 開發注意事項
- 需要 Node.js 18+(提供原生 `fetch`)。
- CLI 會優先讀取命令列參數(`--api-url`、`--api-token` 等),若未提供則回退至環境變數 `API_URL`、`API_TOKEN`、`MCP_TOKEN`。
- 內建 `dotenv`,會載入 `.env`(選用)。
- 專案使用 TypeScript;若想讓使用者省去編譯步驟,可在 repo 中同步 `dist/`,或加上 npm `prepare` 腳本在安裝時自動編譯。

## 後續步驟
1. `npm run build` 確認 `dist/` 生成。必要時 `chmod +x dist/cli.js`。
2. `git add . && git commit -m "Initial public CLI"`,再 `git push -u origin main`。
3. 建立版本 tag(例:`git tag v1.0.0 && git push origin v1.0.0`)。
4. 在主專案或文件提到此 CLI,指引用法(`npx github:...` 或 `node dist/cli.js ...`)。

## 授權
ISC License

TDQS

B3.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: get_manual_info retrieves details for a specific manual, list_manuals shows all manuals, and search_manuals finds manuals by filename. There is no overlap or ambiguity in their functions.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (get_manual_info, list_manuals, search_manuals) with clear, descriptive names. There are no deviations in naming conventions.

Tool Count3/5

With only 3 tools, the set feels thin for a product manual management system. While the tools cover basic retrieval and listing, it lacks operations like upload, update, or delete, which are typical for such a domain.

Completeness2/5

The tool set is significantly incomplete for managing Waferlock product manuals. It only supports read operations (get, list, search), missing essential CRUD functions such as create/upload, update, and delete, which are necessary for full lifecycle coverage.