Skip to main content
Glama
tsai70213-debug

FANUC 0i-F Plus Parameters MCP Server

README.md
# FANUC 0i-F Plus Parameters MCP Server

這是一個可直接執行的 Python MCP Server,包含目前對話中整理的 FANUC 參數:
`1660`、`1735`、`1769`、`1783`、`19539`。

> 資料完整性說明:目前工作區沒有原始 PDF 或先前產生的 JSON,因此專案只保留
> 對話中已明確整理的內容;資料型態、單位、範圍、頁碼等未確認欄位為 `null`。
> `19539` 明確保留為 `unresolved`,沒有推測或補寫定義。

## 需求

- Python 3.10 或更新版本

## 安裝

Windows PowerShell:

```powershell
cd fanuc-mcp-server
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
```

macOS / Linux:

```bash
cd fanuc-mcp-server
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
```

## 執行

伺服器使用 stdio transport:

```powershell
python server.py
```

直接執行時等待 MCP Client 從標準輸入連線是正常行為。

## MCP Client 設定

`mcp.json` 提供從專案目錄啟動的範例。若 Client 不支援 `cwd`,請把
`args` 中的 `server.py` 改成其絕對路徑;建議也改用虛擬環境內 Python 的絕對路徑。

```json
{
  "mcpServers": {
    "fanuc-parameters": {
      "command": "C:\\完整路徑\\fanuc-mcp-server\\.venv\\Scripts\\python.exe",
      "args": ["C:\\完整路徑\\fanuc-mcp-server\\server.py"]
    }
  }
}
```

## 提供的 Tools

- `get_fanuc_parameter(parameter_no)`:取得單一參數
- `list_fanuc_parameters(include_unresolved=true)`:列出參數
- `search_fanuc_parameters(query, include_unresolved=true)`:文字搜尋
- `compare_fanuc_parameters(parameter_numbers)`:比較多個參數

範例提問:

- `請查詢 FANUC 1769`
- `比較 FANUC 1660、1735、1769`
- `搜尋「時間常數」`
- `19539 的解析狀態是什麼?`

## 提供的 Resources

- `fanuc://manuals/b64700ct-01`
- `fanuc://parameters/{parameter_no}`

## 測試

在專案根目錄執行:

```powershell
python -m unittest discover -s tests -v
```

測試會確認:

- 恰好包含 5 個指定參數
- `19539` 保持 `unresolved` 且沒有名稱或摘要
- 關鍵字搜尋正常
- 每筆 JSONL 都符合 JSON Schema

也可用官方 MCP Inspector 做互動測試(需要 Node.js):

```powershell
npx -y @modelcontextprotocol/inspector python server.py
```

## 專案結構

```text
fanuc-mcp-server/
├── data/
│   └── fanuc_parameters.jsonl
├── schema/
│   └── parameter.schema.json
├── tests/
│   ├── test_repository.py
│   └── test_schema.py
├── repository.py
├── resources.py
├── tools.py
├── server.py
├── requirements.txt
├── mcp.json
└── README.md
```

## 後續擴充

新增資料時,每行加入一個符合 `schema/parameter.schema.json` 的 JSON 物件,然後重新
執行測試。對尚未從手冊確認的參數,請使用 `status: "unresolved"` 並保留未知欄位為
`null`。
# FANUC_MCP