README.th.md•48.5 kB
<div align="center">
<a href="https://www.nonead.com">
<img src="https://www.nonead.com/assets/img/vi/NONEAD_ai.png" width="300" alt="nonead logo">
</a>
</div>
<p align="center">
<a href="./README.en.md">English</a> |
<a href="./README.md">简体中文</a> |
<a href="./README.jp.md">日本語</a> |
<a href="./README.ko.md">한국어</a> |
<a href="./README.de.md">Deutsch</a> |
<a href="./README.fr.md">Français</a> |
<a href="./README.ru.md">Русский язык</a> |
<a href="./README.th.md">ภาษาไทย</a> |
<a href="./README.es.md">Español</a> |
<a href="./README.ar.md">العربية</a> |
<a href="./README.da.md">dansk</a>
</p>
<p align="center">
<a href='https://gitee.com/nonead/Nonead-Universal-Robots-MCP/releases'>
<img src='https://img.shields.io/github/v/release/nonead/Nonead-Universal-Robots-MCP.svg?label=Gitee%20Release&color=blue' alt="Gitee Release"></img>
</a>
<a href="https://github.com/nonead/Nonead-Universal-Robots-MCP/releases">
<img src="https://img.shields.io/github/v/release/nonead/Nonead-Universal-Robots-MCP.svg?label=GitHub%20Release" alt="GitHub Release"></img>
</a>
<a href='https://www.python.org/downloads/'>
<img src='https://img.shields.io/pypi/pyversions/RPALite'></img>
</a>
<a href='https://www.universal-robots.cn'>
<img src='https://img.shields.io/badge/PolyScope-3.x_&_5.x-71A8CF'></img>
</a>
<a href="https://gitee.com/nonead/Nonead-Universal-Robots-MCP/wikis/pages">
<img src="https://img.shields.io/badge/User%20Guide-1e8b93?logo=readthedocs&logoColor=f5f5f5" alt="User Guide"></img>
</a>
<a href="./LICENSE">
<img height="20" src="https://img.shields.io/badge/License-User_Segmented_Dual_Licensing-blue" alt="license"></img>
</a>
<a href="https://gitee.com/nonead/Nonead-Universal-Robots-MCP">
<img height="20" src="https://gitee.com/nonead/Nonead-Universal-Robots-MCP/badge/fork.svg?theme=dark" alt="Gitee Forks"></img>
</a>
<a href="https://gitee.com/nonead/Nonead-Universal-Robots-MCP">
<img height="20" src="https://gitee.com/nonead/Nonead-Universal-Robots-MCP/badge/star.svg?theme=dark" alt="Gitee Stars"></img>
</a>
<a href="https://github.com/nonead/Nonead-Universal-Robots-MCP">
<img src="https://img.shields.io/github/forks/nonead/Nonead-Universal-Robots-MCP?label=Forks&style=flat-square" alt="Github Forks"></img>
</a>
<a href='https://github.com/nonead/Nonead-Universal-Robots-MCP'>
<img src="https://img.shields.io/github/stars/nonead/Nonead-Universal-Robots-MCP.svg?style=flat-square&label=Stars&logo=github" alt="Github Stars"/></img>
</a>
</p>
## 1. MCP คืออะไร?
MCP (โปรโตคอลบริบทแบบจำลอง) คือโปรโตคอลสื่อสารที่พัฒนาโดย Anthropic (เปิดตัวเป็นโอเพนซอร์สพฤศจิกายน 2024) ช่วยให้โมเดลภาษาใหญ่ (เช่น DeepSeek-V3-0324, DeepSeek-R1, Qwen3) เข้าถึงข้อมูล/เครื่องมือ/บริการภายนอกได้อย่างมีประสิทธิภาพ
ความสามารถหลัก:
การให้บริบท:
ส่งไฟล์/ข้อมูลฐานข้อมูลเสริม
ตัวอย่าง: วิเคราะห์รายงานก่อนตอบคำถาม
การเชื่อมต่อเครื่องมือ:
ควบคุมระบบท้องถิ่น/ระยะไกลโดยตรง
ตัวอย่าง: จัดระเบียบเอกสารอัตโนมัติ
สร้างเวิร์กโฟลว์อัจฉริยะ:
รวมบริการ MCP หลายรายการ
ความปลอดภัยข้อมูล:
ทำงานในสภาพแวดล้อมท้องถิ่น
## 2. วิธีการทำงาน
สถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์:
ไคลเอนต์ MCP: แอปพลิเคชัน AI (ส่งคำขอ)
เซิร์ฟเวอร์ MCP: ให้อินเทอร์เฟซข้อมูล
การสื่อสาร: ใช้มาตรฐาน JSON-RPC 2.0
## 3. หน้าที่หลักของเซิร์ฟเวอร์
การเข้าถึงข้อมูล:
ไฟล์/ฐานข้อมูล/หน่วยความจำ
การดำเนินการ:
ฟังก์ชันที่กำหนดไว้ (เช่น คิวรี SQL)
การแจ้งเตือนแบบไดนามิก:
อัปเดตข้อมูลแบบเรียลไทม์
การจัดการเซสชัน:
ดูแลการเชื่อมต่อ
## 2. ฟังก์ชันหลักของเซิร์ฟเวอร์ nUR MCP
คำอธิบายทางเทคนิคของผลิตภัณฑ์ nUR_MCP_SERVER ที่พัฒนาโดย Nonead Corporation
ภาพรวมผลิตภัณฑ์:
nUR_MCP_SERVER เป็นระบบซอฟต์แวร์ตัวกลางสำหรับควบคุมหุ่นยนต์อัจฉริยะที่สร้างขึ้นบนโปรโตคอลอินเทอร์เฟซ MCP (Model Control Protocol) โดยการรวมโมเดลภาษาขนาดใหญ่ (LLM) เพื่อควบคุมหุ่นยนต์อุตสาหกรรมผ่านการโต้ตอบด้วยภาษาธรรมชาติ ผลิตภัณฑ์นี้ใช้การออกแบบโครงสร้างแบบ Client-Server และสนับสนุนการรวมเข้ากับหุ่นยนต์ร่วม Universal Robots ทุกซีรี่ส์ได้อย่างลึกซึ้ง ปฏิวัติกระบวนทัศน์การควบคุมหุ่นยนต์อุตสาหกรรมแบบเดิมที่ใช้การเขียนโปรแกรมผ่าน teach pendant
โครงสร้างเทคโนโลยีหลัก:
1. เครื่องมือวิเคราะห์ความหมาย
โมดูลประมวลผล NLP ที่ใช้โครงสร้าง Transformer หลายชั้น สนับสนุนการวิเคราะห์คำสั่งแบบรับรู้บริบท (Contextual Command Parsing) สามารถแปลงภาษาธรรมชาติเป็นคำสั่งควบคุมหุ่นยนต์แบบ end-to-end ด้วยความแม่นยำในการจดจำคำสั่งถึง 98.6%
2. ระบบสร้างสคริปต์แบบไดนามิก
เฟรมเวิร์กการสร้างโค้ดที่ใช้ LLM สามารถแปลงคำสั่งภาษาธรรมชาติเป็นสคริปต์ควบคุมหุ่นยนต์ URScript โดยอัตโนมัติ สนับสนุนการตรวจสอบไวยากรณ์และการตรวจสอบความปลอดภัยแบบเรียลไทม์ มีประสิทธิภาพในการสร้างสูงกว่าการเขียนโปรแกรมแบบเดิมถึง 12 เท่า
3. อินเทอร์เฟซควบคุมแบบมัลติโมดัล
- ชั้นขยายโปรโตคอล MCP: สนับสนุนการสื่อสารแบบ TCP/UDP คู่ ให้การตอบสนองคำสั่งระดับไมโครวินาที
- ชั้นอุปนามอุปกรณ์: ทำให้สามารถเชื่อมต่อปลั๊กอิน URCap ตามมาตรฐาน
- Data Bus: ใช้โปรโตคอล TCP/IP Ethernet เพื่อควบคุมหลายเครื่องร่วมกัน
คุณสมบัติหลัก:
▶ การควบคุมทันทีด้วยภาษาธรรมชาติ
ควบคุมการเคลื่อนไหวของหุ่นยนต์โดยตรงผ่านคำสั่งเสียง/ข้อความ (การควบคุมตำแหน่ง, การวางแผนวิถี, การดำเนินการ I/O) สนับสนุนการฉีดพารามิเตอร์แบบไดนามิกและการแก้ไขการเคลื่อนไหวแบบเรียลไทม์
▶ ระบบรวบรวมข้อมูลอัจฉริยะ
- รวบรวมข้อมูลสถานะ 12 มิติ เช่น แรงบิดข้อต่อ, ตำแหน่งปลายแขน แบบเรียลไทม์
- สนับสนุนกฎการกรองข้อมูลที่กำหนดด้วยภาษาธรรมชาติ
- สร้างรายงานข้อมูลที่มีโครงสร้างโดยอัตโนมัติ (CSV/JSON/XLSX)
▶ การควบคุมหลายเครื่องร่วมกัน
ใช้อัลกอริทึมการจัดตารางงานแบบกระจาย ร่วมกับ MCP-Client ที่พัฒนาโดย Tord สามารถจัดการคลัสเตอร์หุ่นยนต์ UR ได้พร้อมกัน ≤12 ตัว สนับสนุนคำสั่งเสียงแบบต่อเนื่องและการจัดงานข้ามอุปกรณ์
▶ โมดูลการเรียนรู้แบบปรับตัว
มีเฟรมเวิร์กการฝึกแบบเพิ่มปริมาณในตัว ปรับปรุงความสัมพันธ์ระหว่างคำสั่ง-การกระทำอย่างต่อเนื่องผ่านผลตอบรับจากผู้ใช้ วงจรการเรียนรู้ของระบบ ≤24 ชั่วโมง
ข้อมูลจำเพาะทางเทคนิค:
- ความล่าช้าในการตอบสนองคำสั่ง: <200ms (end-to-end)
- ความเข้ากันได้ของโปรโตคอล: MCP v2.1+ / URScript v5.0+
- ความสามารถในการประมวลผลพร้อมกัน: 200+ TPS
**ตารางจำแนกฟังก์ชันของเครื่องมือ nUR_MCP_SERVER:**
| รหัสเครื่องมือ | หมวดหมู่ฟังก์ชัน | คำอธิบายฟังก์ชัน | พารามิเตอร์หลัก |
|--------|----------|----------|----------|
| fkUCFg7YmxSflgfmJawHeo | การจัดการการเชื่อมต่อ | เชื่อมต่อหุ่นยนต์ UR | ip:IP หุ่นยนต์ |
| fcr4pIqoIXyxh3ko9FOsWU | การจัดการการเชื่อมต่อ | ตัดการเชื่อมต่อหุ่นยนต์ UR | ip:IP หุ่นยนต์ |
| fNKAydKkxHwmGFgyrePBsN | การตรวจสอบสถานะ | รับเวลาการทำงาน (วินาที) | ip:IP หุ่นยนต์ |
| fYTMsGvSRpUdWmURng7kGX | การทำงานกับรีจิสเตอร์ | รับค่าส่งออกรีจิสเตอร์ Int (0-23) | ip:IP หุ่นยนต์, index:ดัชนีรีจิสเตอร์ |
| fvfqDMdDJer6kpbCzwFL1D | การทำงานกับรีจิสเตอร์ | รับค่าส่งออกรีจิสเตอร์ Double (0-23) | ip:IP หุ่นยนต์, index:ดัชนีรีจิสเตอร์ |
| fCJ6sRw9m0ArdZ-MCaeNWK | การทำงานกับรีจิสเตอร์ | รับค่าส่งออกรีจิสเตอร์ Double (0-31) | ip:IP หุ่นยนต์, index:ดัชนีรีจิสเตอร์ |
| f_ZXAIUv-eqHelwWxrzDHe | ข้อมูลอุปกรณ์ | รับหมายเลขซีเรียล | ip:IP หุ่นยนต์ |
| fZ2ALt5kD50gV9AdEgBrRO | ข้อมูลอุปกรณ์ | รับรุ่น | ip:IP หุ่นยนต์ |
| fEtHcw5RNF54X9RYIEU-1m | การควบคุมการเคลื่อนไหว | รับพิกัด TCP แบบเรียลไทม์ | ip:IP หุ่นยนต์ |
| ftsb2AsiqiPqSBxHIwALOx | การควบคุมการเคลื่อนไหว | รับมุมข้อต่อแบบเรียลไทม์ | ip:IP หุ่นยนต์ |
| fXmkr4PLkHKF0wgQGEHzLt | การควบคุมการเคลื่อนไหว | ส่งคำสั่งท่าทางข้อต่อ | ip:IP หุ่นยนต์, q:มุมข้อต่อ(เรเดียน) |
| fWdukQrgFZeK-DEcST4AwO | การควบคุมการเคลื่อนไหว | ส่งคำสั่งเคลื่อนที่แบบเส้นตรง TCP | ip:IP หุ่นยนต์, pose:ตำแหน่ง TCP |
| f2gbgju7QsymJa4wPgZQ0T | การควบคุมการเคลื่อนไหว | การเคลื่อนที่แบบเส้นตรงแกน X | ip:IP หุ่นยนต์, distance:ระยะทาง(เมตร) |
| fS6rCxVp498s5edU7jCMB3 | การควบคุมการเคลื่อนไหว | การเคลื่อนที่แบบเส้นตรงแกน Y | ip:IP หุ่นยนต์, distance:ระยะทาง(เมตร) |
| fJps7j-T3lwzXhp8p0_suy | การควบคุมการเคลื่อนไหว | การเคลื่อนที่แบบเส้นตรงแกน Z | ip:IP หุ่นยนต์, distance:ระยะทาง(เมตร) |
| fTMj5413O5CzsORAyBYXj8 | การควบคุมโปรแกรม | โหลดโปรแกรม UR | ip:IP หุ่นยนต์, program_name:ชื่อโปรแกรม |
| fqiYJ1c9fqCs5eYd-yKEeJ | การควบคุมโปรแกรม | โหลดและรันโปรแกรม UR | ip:IP หุ่นยนต์, program_name:ชื่อโปรแกรม |
| fW6-wrPoqm2bE3bMgtLbLP | การควบคุมโปรแกรม | หยุดโปรแกรมปัจจุบัน | ip:IP หุ่นยนต์ |
| fsEmm-VX3CCY_XvnCDms7f | การควบคุมโปรแกรม | หยุดโปรแกรมปัจจุบันชั่วคราว | ip:IP หุ่นยนต์ |
| f83-fUQBd-YRSdIQDpuYmW | การตรวจสอบสถานะ | รับแรงดันไฟฟ้าปัจจุบัน | ip:IP หุ่นยนต์ |
| foMoD2L690vRdQxdW_gRNl | การตรวจสอบสถานะ | รับกระแสไฟฟ้าปัจจุบัน | ip:IP หุ่นยนต์ |
| fDZBXqofuIb-7IjS6t2YJ2 | การตรวจสอบสถานะ | รับแรงดันไฟฟ้าข้อต่อ | ip:IP หุ่นยนต์ |
| fgAa_kwSmXmvld6Alx39ij | การตรวจสอบสถานะ | รับกระแสไฟฟ้าข้อต่อ | ip:IP หุ่นยนต์ |
| furAKHVnYvORJ9R7N7vpbl | การตรวจสอบสถานะ | รับอุณหภูมิข้อต่อ | ip:IP หุ่นยนต์ |
| fuNb7TgOgWNukjAVjusMN4 | การตรวจสอบสถานะ | รับสถานะการทำงาน | ip:IP หุ่นยนต์ |
| fD12XJtqjgI46Oufwt928c | การตรวจสอบสถานะ | รับสถานะการทำงานโปรแกรม | ip:IP หุ่นยนต์ |
| fMLa2mjlactTbD_CCKB1tX | ข้อมูลอุปกรณ์ | รับเวอร์ชันซอฟต์แวร์ | ip:IP หุ่นยนต์ |
| fWXQKGQ6J5mas9K9mGPK3x | ข้อมูลอุปกรณ์ | รับโหมดความปลอดภัย | ip:IP หุ่นยนต์ |
| f81vKugz9xnncjirTC3B6A | การควบคุมโปรแกรม | รับรายการโปรแกรม | ip:IP หุ่นยนต์, username/password:ข้อมูลรับรอง SSH |
| ffaaQZeknwwTISLYdYqM0_ | การควบคุมโปรแกรม | ส่งสคริปต์โปรแกรม | ip:IP หุ่นยนต์, script:เนื้อหาสคริปต์ |
| fsWlT3tCOn1ub-kUZCrq7E | การควบคุมการเคลื่อนไหว | การเคลื่อนที่แบบวงกลม | ip:IP หุ่นยนต์, center:ตำแหน่ง TCP ศูนย์กลาง, r:รัศมี(เมตร) |
| f7y1QpjnA9s1bzfLeOkTnS | การควบคุมการเคลื่อนไหว | วาดสี่เหลี่ยมจัตุรัส | ip:IP หุ่นยนต์, origin:ตำแหน่ง TCP เริ่มต้น, border:ความยาวด้าน(เมตร) |
| fuN_LLSc22VKXWXwbwNARo | การควบคุมการเคลื่อนไหว | วาดสี่เหลี่ยมผืนผ้า | ip:IP หุ่นยนต์, origin:ตำแหน่ง TCP เริ่มต้น, width/height:ความกว้าง/ความสูง(เมตร) |
หมายเหตุ: เครื่องมือทั้งหมดต้องเชื่อมต่อกับหุ่นยนต์ก่อนจึงจะใช้งานได้
## 3. ข้อปฏิเสธความรับผิดชอบ
ก่อนใช้ nUR MCP Server ต้องตรวจสอบว่าผู้ปฏิบัติงานผ่านการอบรมความปลอดภัยหุ่นยนต์ UR และรู้จักการใช้ปุ่มหยุดฉุกเฉิน (E-stop)
ตรวจสอบสภาพหุ่นยนต์และเซิร์ฟเวอร์อย่างสม่ำเสมอเพื่อความปลอดภัย
ข้อกำหนดความปลอดภัยที่ต้องปฏิบัติตาม:
การมองเห็นหุ่นยนต์
ผู้ควบคุมต้องมองเห็นหุ่นยนต์ Universal Robots ตลอดเวลาเพื่อตรวจสอบสถานะ
ห้ามออกจากพื้นที่ขณะหุ่นยนต์ทำงาน
สภาพแวดล้อมปลอดภัย
ล้างสิ่งกีดขวางและตรวจสอบให้แน่ใจว่าไม่มีบุคคล/วัตถุในเขตอันตราย
ติดตั้งรั้วกายภาพหรือม่านแสงความปลอดภัยหากจำเป็น
การละเมิดกฎความปลอดภัย
หากเกิดความเสียหายจากความไม่ปฏิบัติตาม (เช่น ไม่เฝ้าดู ไม่เคลียร์พื้นที่) ทางเราไม่รับผิดชอบ
ความเสี่ยงทั้งหมดเป็นของผู้ใช้งาน
## 4. การเผยแพร่เวอร์ชัน
### 4.1 อัปเดตล่าสุด
* 2025.05.15 : เปิดตัว nUR_MCP_SERVER เป็นครั้งแรก
### 4.2 แผนในอนาคต
* พัฒนา MCP Client เฉพาะสำหรับ nUR MCP Server เพื่อเพิ่มความปลอดภัยของแอคชูเอเตอร์
* เพิ่มการบันทึก Log ของหุ่นยนต์ UR
* การสำรองข้อมูลและอัปโหลดโปรแกรมหุ่นยนต์ UR
## 5. เริ่มต้นใช้งานอย่างรวดเร็ว
### 5.1 สำหรับผู้ใช้ทั่วไป
#### 5.1.1 ข้อกำหนดระบบ
* **รุ่นระบบปฏิบัติการที่แนะนำ:**
```text
macOS: macOS Monterey 12.6 หรือใหม่กว่า
Linux: CentOS 7 / Ubuntu 20.04 หรือใหม่กว่า
Windows: Windows 10 LTSC 2021 หรือใหม่กว่า
```
* **ข้อกำหนดซอฟต์แวร์:**
สภาพแวดล้อมเซิร์ฟเวอร์ MCP
```text
Python 3.11 หรือใหม่กว่า
pip 25.1 หรือใหม่กว่า
UV Package Manager 0.6.14 หรือใหม่กว่า
bun 1.2.8 หรือใหม่กว่า
```
ไคลเอนต์ MCP
```text
Claude Desktop 3.7.0 หรือใหม่กว่า
Cherry Studio 1.2.10 หรือใหม่กว่า
Cline 3.14.1 หรือใหม่กว่า
ClaudeMind, Cursor, NextChat, ChatMCP, Copilot-MCP, Continue, Dolphin-MCP, Goose ยังไม่ผ่านการทดสอบ
```
LLM โมเดลภาษาขนาดใหญ่
```text
DeepSeek-V3-0324 หรือใหม่กว่า
DeepSeek-R1-671b หรือใหม่กว่า
Qwen3-235b-a22b หรือใหม่กว่า
โดยทั่วไปโมเดลภาษาที่รองรับ MCP สามารถใช้งานได้ โมเดลนอกเหนือจากรายการยังไม่ผ่านการทดสอบ
โมเดลที่ใช้งานผ่าน Ollama ยังไม่สามารถเรียกใช้ Tool ได้ กำลังแก้ไขปัญหา...
```
#### 5.1.2 การติดตั้ง
**การติดตั้งเซิร์ฟเวอร์ MCP:**
1. ติดตั้ง Python 3.11 หรือใหม่กว่า
2. ติดตั้ง pip 25.1 หรือใหม่กว่า
3. ติดตั้ง UV Package Manager 0.6.14 หรือใหม่กว่า
4. ติดตั้ง bun 1.2.8 หรือใหม่กว่า
5. ติดตั้ง MCP Server:
```
git clone https://gitee.com/nonead/Nonead-Universal-Robots-MCP.git
cd nUR_MCP_SERVER
pip install -r requirements.txt
```
**การกำหนดค่าไคลเอนต์ MCP:**
**สำหรับใช้งานกับ Claude Desktop ให้เพิ่มการกำหนดค่าเซิร์ฟเวอร์:**
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"nUR_MCP_SERVER": {
"command": "uvx",
"args": ["/home/nonead/MCP_Server/Nonead-Universal-Robots-MCP"]
}
}
}
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"nUR_MCP_SERVER": {
"command": "uvx",
"args": ["D:\\MyProgram\\MCP_SERVER\\Nonead-Universal-Robots-MCP"]
}
}
}
**สำหรับใช้งานกับ Cherry Studio ให้เพิ่มการกำหนดค่าเซิร์ฟเวอร์:**
**สำหรับ macOS & Linux:**
```
{
"mcpServers": {
"nUR_MCP_SERVER": {
"name": "nUR_MCP_Server",
"type": "stdio",
"description": "NONEAD Universal-Robots MCP Server",
"isActive": true,
"provider": "NONEAD Corporation",
"providerUrl": "https://www.nonead.com",
"logoUrl": "https://www.nonead.com/assets/img/vi/5.png",
"tags": [
"NONEAD",
"nUR_MCP_Server",
"Universal-Robots"
],
"command": "uvx",
"args": [
"/home/nonead/MCP_Server/Nonead-Universal-Robots-MCP"
]
}
}
}
```
**สำหรับ Windows:**
```
{
"mcpServers": {
"nUR_MCP_SERVER": {
"name": "nUR_MCP_Server",
"type": "stdio",
"description": "NONEAD Universal-Robots MCP Server",
"isActive": true,
"provider": "NONEAD Corporation",
"providerUrl": "https://www.nonead.com",
"logoUrl": "https://www.nonead.com/assets/img/vi/5.png",
"tags": [
"NONEAD",
"nUR_MCP_Server",
"Universal-Robots"
],
"command": "uvx",
"args": [
"D:\\MyProgram\\MCP_SERVER\\Nonead-Universal-Robots-MCP"
]
}
}
}
```
**เพื่อใช้งานร่วมกับ Cline ให้เพิ่มการกำหนดค่าเซิร์ฟเวอร์:**
MacOS & Linux:
{
"mcpServers": {
"nUR_MCP_SERVER": {
"command": "uvx",
"args": ["/home/nonead/MCP_Server/Nonead-Universal-Robots-MCP"]
}
}
}
Windows:
{
"mcpServers": {
"nUR_MCP_SERVER": {
"command": "uvx",
"args": ["D:\\MyProgram\\MCP_SERVER\\Nonead-Universal-Robots-MCP"]
}
}
}
### 5.2 ใช้ชุดเครื่องมือ (สำหรับนักพัฒนา)
#### 5.2.1 เครื่องมือและส่วนประกอบ
* **รุ่นระบบที่แนะนำ:**
```text
ผู้ใช้ macOS: macOS Monterey 12.6 หรือใหม่กว่า
ผู้ใช้ Linux: CentOS 7 / Ubuntu 20.04 หรือใหม่กว่า
ผู้ใช้ Windows: Windows 10 LTSC 2021 หรือใหม่กว่า
```
* **ความต้องการด้านซอฟต์แวร์:**
สภาพแวดล้อมเซิร์ฟเวอร์ MCP
```text
Python 3.11 หรือใหม่กว่า
pip 25.1 หรือใหม่กว่า
UV Package Manager 0.6.14 หรือใหม่กว่า
bun 1.2.8 หรือใหม่กว่า
```
แบบจำลองภาษาขนาดใหญ่ LLM
```text
DeepSeek-V3-0324 หรือใหม่กว่า
DeepSeek-R1-671b หรือใหม่กว่า
Qwen3-235b-a22b หรือใหม่กว่า
โดยทั่วไปแบบจำลองภาษาขนาดใหญ่ที่รองรับ MCP สามารถใช้งานได้ แบบจำลองที่ไม่ได้ระบุไว้ยังไม่ได้รับการทดสอบ
แบบจำลองที่ติดตั้งผ่าน Ollama ปัจจุบันไม่สามารถเรียกใช้เครื่องมือได้ กำลังแก้ไข...
```
#### 5.2.2 การติดตั้ง
**สำหรับนักพัฒนา macOS/Linux/Windows**
```text
Python 3.11 หรือใหม่กว่า
pip 25.1 หรือใหม่กว่า
ตัวจัดการแพ็คเกจ UV 0.6.14 หรือใหม่กว่า
bun 1.2.8 หรือใหม่กว่า
```
#### 5.2.3 การใช้งาน
ตัวอย่างงานที่โมเดลภาษาขนาดใหญ่สามารถดำเนินการได้:
* เชื่อมต่อหุ่นยนต์ Universal IP: 192.168.1.199
* รับพิกัดท่าปัจจุบันของ TCP end effector
* แสดงรายการคำสั่งทั้งหมดของเครื่องมือ nUR_MCP_SERVER
* ดึงข้อมูลฮาร์ดแวร์ทั้งหมดของหุ่นยนต์ Universal
* ประมวลผลสคริปต์โปรแกรมของหุ่นยนต์
* เรียกใช้โปรแกรมในตัว XXXX.urp
* กำหนดหุ่นยนต์ IP 172.22.109.141 เป็น A และ IP 172.22.98.41 เป็น B เชื่อมต่อทั้งคู่ บันทึกท่า TCP และตำแหน่งหลักของ A (ซ้าย) และ B (ขวา) วิเคราะห์ความสัมพันธ์ระหว่างท่า
* ดำเนินการเป็นขั้นตอน: หุ่นยนต์ Universal IP 192.168.1.199 บันทึกท่า TCP ปัจจุบัน แล้วเคลื่อน TCP +20mm ในแกน Z, -50mm ในแกน Y, +30mm ในแกน X ทำซ้ำ 5 ครั้ง
* เขียนและดำเนินการสคริปต์หุ่นยนต์: วาดวงกลมรัศมี 50mm ในระนาบฐานโดยมีท่าปัจจุบันเป็นศูนย์กลาง
* กำหนดหุ่นยนต์ IP 172.22.109.141 เป็น A และ 172.22.98.41 เป็น B เชื่อมต่อ คำสั่งต่อๆ ไปจะควบคุมเฉพาะ A พร้อมซิงค์การเคลื่อนไหวกระจกของ B
## 6. โครงสร้างทางเทคนิค
MCP ใช้โครงสร้างแบบ client-server ด้วยโปรโตคอลมาตรฐานสำหรับการสื่อสารระหว่างโมเดลกับทรัพยากรภายนอก

โมเดล Client-Server
องค์ประกอบหลัก:
โฮสต์ MCP: แอปพลิเคชัน LLM (เช่น Claude Desktop) ที่เริ่มการเชื่อมต่อ
ไคลเอนต์ MCP: โปรโตคอลไคลเอนต์ที่รักษาการเชื่อมต่อ 1:1 กับเซิร์ฟเวอร์
เซิร์ฟเวอร์ MCP: โปรแกรมน้ำหนักเบาที่เปิดเผยฟังก์ชันผ่าน Model Context Protocol มาตรฐาน
แหล่งข้อมูลท้องถิ่น: ไฟล์/ฐานข้อมูล/บริการที่เซิร์ฟเวอร์เข้าถึงได้อย่างปลอดภัย
บริการระยะไกล: ระบบภายนอกที่เข้าถึงได้ผ่านอินเทอร์เน็ต (เช่น APIs)
ความรับผิดชอบ:
โฮสต์ MCP:
ให้ส่วนติดต่อผู้ใช้
จัดการการเชื่อมต่อกับผู้ให้บริการ LLM
รวมไคลเอนต์ MCP สำหรับการเข้าถึงทรัพยากรภายนอก
ไคลเอนต์ MCP:
สร้าง/รักษาการเชื่อมต่อเซิร์ฟเวอร์ MCP
ส่งคำขอและรับการตอบกลับ
จัดการการแลกเปลี่ยนข้อมูลตามมาตรฐาน MCP
เซิร์ฟเวอร์ MCP:
ประมวลผลคำขอจากไคลเอนต์
ดำเนินการฟังก์ชันเฉพาะหรือให้เข้าถึงทรัพยากร
จัดรูปแบบการตอบกลับตามมาตรฐานโปรโตคอล MCP
โปรโตคอลการสื่อสาร
MCP ใช้ JSON-RPC 2.0 เป็นโปรโตคอลพื้นฐาน สนับสนุน:

คำขอ: ข้อความที่เริ่มการดำเนินการจากไคลเอนต์→เซิร์ฟเวอร์ หรือในทางกลับกัน
การตอบกลับ: การตอบสนองต่อคำขอที่มีผลลัพธ์หรือข้อมูลข้อผิดพลาด
การแจ้งเตือน: ข้อความทางเดียวที่ไม่ต้องการการตอบกลับ (มักใช้สำหรับการแจ้งเหตุการณ์)
กลไกการขนส่งที่สนับสนุน:
มาตรฐาน I/O (Stdio): สำหรับเซิร์ฟเวอร์ท้องถิ่นผ่านการสื่อสารระหว่างกระบวนการ
Server-Sent Events (SSE): กลไกการขนส่งแบบ HTTP สำหรับเซิร์ฟเวอร์ระยะไกล
ข้อได้เปรียบของ MCP
MCP เหนือกว่าวิธีการแบบเดิมในด้านความเป็นหนึ่งเดียว ความปลอดภัย และความสามารถในการขยาย
ความเป็นหนึ่งเดียว
การโต้ตอบที่เป็นมาตรฐานแก้ปัญหาการแบ่งส่วน:
การเข้าถึงแบบปลั๊กอิน: โปรโตคอลรวมศูนย์สำหรับแหล่งข้อมูลที่หลากหลาย
ความเข้ากันได้ข้ามแพลตฟอร์ม: รองรับโมเดล/แพลตฟอร์ม AI ที่แตกต่างกัน
การพัฒนาที่ง่ายขึ้น: มุ่งเน้นที่ตรรกะทางธุรกิจ
ความปลอดภัย
กลไกความปลอดภัยในตัวปกป้องข้อมูล:
การปกป้องข้อมูลสำคัญ: คีย์ API/ข้อมูลผู้ใช้ ฯลฯ
การควบคุมการเข้าถึง: เซิร์ฟเวอร์ MCP เปิดใช้งานข้อจำกัดการเข้าถึงแบบละเอียด
การประมวลผลในท้องถิ่น: หลีกเลี่ยงการอัปโหลดข้อมูลสำคัญไปยังบุคคลที่สาม
ความสามารถในการขยาย
การออกแบบแบบโมดูลาร์ช่วยให้ขยายได้สูง:
การเชื่อมต่อหลายบริการ: บริการหลายรายการสามารถเชื่อมต่อกับไคลเอนต์ที่เข้ากันได้
การขยายระบบนิเวศ: ห้องสมุดของส่วนประกอบที่สร้างไว้ล่วงหน้าเพิ่มขึ้น
ความสามารถในการปรับแต่ง: การพัฒนาเซิร์ฟเวอร์ MCP ที่กำหนดเอง
## 7. ติดต่อเรา
**GitHub**: <https://github.com/nonead/Nonead-Universal-Robots-MCP>
**gitee**: <https://gitee.com/nonead/Nonead-Universal-Robots-MCP>
**เว็บไซต์ทางการ**: <https://www.nonead.com>
<img src="./images/QR.gif" alt="ติดต่อ: Nonead Tech WeChat" width="200">
## 8. ความแตกต่างระหว่าง nUR MCP Server กับเซิร์ฟเวอร์ MCP อื่นๆ
ผู้ใช้ nUR MCP Server ต้องมีความตระหนักด้านความปลอดภัยสูงมากและต้องผ่านการฝึกอบรมการใช้งานหุ่นยนต์ Universal Robots เนื่องจากโมเดลภาษาขนาดใหญ่ควบคุมหุ่นยนต์จริง การใช้งานที่ไม่เหมาะสมอาจทำให้เกิดการบาดเจ็บและความเสียหายต่อทรัพย์สิน - โปรดใช้ความระมัดระวังสูงสุด
## 9. การอ้างอิง
หากคุณใช้ซอฟต์แวร์นี้ โปรดอ้างอิงดังนี้:
* [nURMCP: NONEAD Universal-Robots Model Context Protocol Server](https://www.nonead.com)
* Nonead สาธิตความหมายที่แท้จริงของการผลิตอัจฉริยะ นำนวัตกรรมที่เปลี่ยนแปลงโลกของเรา
## 10. ใบอนุญาต
โครงการนี้ใช้รูปแบบการอนุญาตแบบคู่ที่แบ่งตามผู้ใช้ (User-Segmented Dual Licensing)
**หลักการพื้นฐาน**
* ผู้ใช้ส่วนบุคคลและองค์กร/องค์กรที่มีไม่เกิน 10 คน: ใช้ GNU Affero General Public License v3.0 (AGPLv3) โดยปริยาย
* องค์กรที่มีมากกว่า 10 คน: ต้องได้รับใบอนุญาตเชิงพาณิชย์ (Commercial License)
คำจำกัดความของ "ไม่เกิน 10 คน":
หมายถึงจำนวนบุคคลทั้งหมดในองค์กรของคุณ (รวมถึงบริษัท องค์กรไม่แสวงหาผลกำไร หน่วยงานรัฐบาล สถาบันการศึกษา หรือองค์กรใดๆ) ที่สามารถเข้าถึง ใช้ หรือได้รับประโยชน์จากซอฟต์แวร์นี้ (nUR_MCP_SERVER) ไม่ว่าโดยทางตรงหรือทางอ้อม ไม่เกิน 10 คน ซึ่งรวมถึงแต่ไม่จำกัดเพียงนักพัฒนา ผู้ทดสอบ ผู้ปฏิบัติงาน ผู้ใช้ปลายทาง ผู้ใช้ผ่านระบบที่บูรณาการ เป็นต้น
### 10.1 ใบอนุญาตโอเพนซอร์ส (Open Source License): AGPLv3 - สำหรับผู้ใช้ส่วนบุคคลและองค์กรไม่เกิน 10 คน
* หากคุณเป็นผู้ใช้ส่วนบุคคล หรือองค์กรของคุณตรงตามคำจำกัดความ "ไม่เกิน 10 คน" ข้างต้น คุณสามารถใช้ แก้ไข และแจกจ่าย nUR_MCP_SERVER ภายใต้เงื่อนไขของ AGPLv3 ได้อย่างอิสระ ข้อความเต็มของ AGPLv3 สามารถดูได้ที่ https://www.gnu.org/licenses/agpl-3.0.html
* **ข้อผูกพันหลัก:** ข้อกำหนดสำคัญของ AGPLv3 คือ หากคุณแก้ไข nUR_MCP_Server และให้บริการผ่านเครือข่าย หรือแจกจ่ายเวอร์ชันที่แก้ไขแล้ว คุณต้องให้ซอร์สโค้ดที่สมบูรณ์แก่ผู้รับภายใต้สัญญาอนุญาต AGPLv3 แม้ว่าคุณจะตรงตามเกณฑ์ "ไม่เกิน 10 คน" หากคุณต้องการหลีกเลี่ยงข้อผูกพันในการเปิดเผยซอร์สโค้ดนี้ คุณต้องพิจารณาได้รับใบอนุญาตเชิงพาณิชย์ (ดูด้านล่าง)
* โปรดอ่านและทำความเข้าใจข้อกำหนดทั้งหมดของ AGPLv3 ให้ละเอียดก่อนใช้งาน
### 10.2 ใบอนุญาตเชิงพาณิชย์ (Commercial License) - สำหรับองค์กรที่มีมากกว่า 10 คน หรือผู้ใช้ที่ต้องการหลีกเลี่ยงข้อผูกพันของ AGPLv3
* **ข้อบังคับ:** หากองค์กรของคุณ**ไม่**ตรงตามคำจำกัดความ "ไม่เกิน 10 คน" ข้างต้น (หมายความว่ามี 11 คนหรือมากกว่าที่สามารถเข้าถึง ใช้ หรือได้รับประโยชน์จากซอฟต์แวร์นี้) คุณ**ต้อง**ติดต่อเราเพื่อรับและลงนามในใบอนุญาตเชิงพาณิชย์ก่อนจึงจะสามารถใช้ nUR_MCP_SERVER ได้
* **ทางเลือกโดยสมัครใจ:** แม้ว่าองค์กรของคุณจะตรงตามเงื่อนไข "ไม่เกิน 10 คน" แต่หากกรณีการใช้งานของคุณ**ไม่สามารถปฏิบัติตามข้อกำหนดของ AGPLv3** ได้ (โดยเฉพาะข้อผูกพันในการเปิดเผยซอร์สโค้ด) หรือคุณต้องการข้อกำหนดเชิงพาณิชย์**เฉพาะ**ที่ AGPLv3 **ไม่ได้ให้ไว้** (เช่น การรับประกัน การชดเชย การไม่มีข้อจำกัด Copyleft เป็นต้น) คุณก็**ต้อง**ติดต่อเราเพื่อรับและลงนามในใบอนุญาตเชิงพาณิชย์
* **กรณีทั่วไปที่ต้องมีใบอนุญาตเชิงพาณิชย์ (รวมแต่ไม่จำกัดเพียง):**
* องค์กรของคุณมีขนาดเกิน 10 คน
* (ไม่ว่าขนาดองค์กร) คุณต้องการแจกจ่ายเวอร์ชัน nUR_MCP_SERVER ที่แก้ไขแล้ว แต่ไม่ต้องการเปิดเผยซอร์สโค้ดส่วนที่คุณแก้ไขตาม AGPLv3
* (ไม่ว่าขนาดองค์กร) คุณต้องการให้บริการทางเครือข่าย (SaaS) ที่ใช้ nUR_MCP_SERVER ที่แก้ไขแล้ว แต่ไม่ต้องการให้ซอร์สโค้ดที่แก้ไขแก่ผู้ใช้บริการตาม AGPLv3
* (ไม่ว่าขนาดองค์กร) นโยบายบริษัท สัญญาลูกค้า หรือข้อกำหนดโครงการของคุณไม่อนุญาตให้ใช้ซอฟต์แวร์ที่ได้รับอนุญาตภายใต้ AGPLv3 หรือต้องการการแจกจ่ายแบบปิดและความลับ
* **รับใบอนุญาตเชิงพาณิชย์:** โปรดติดต่อทีมพัฒนาของ nUR_MCP_SERVER ที่ service@nonead.com เพื่อเจรจาเรื่องการอนุญาตเชิงพาณิชย์
### 10.3 การมีส่วนร่วม (Contributions)
* เรายินดีต้อนรับการมีส่วนร่วมจากชุมชนในการพัฒนา nUR_MCP_SERVER การมีส่วนร่วมทั้งหมดที่ส่งมาให้โครงการนี้จะถือว่าได้รับอนุญาตภายใต้สัญญา AGPLv3
* การส่งการมีส่วนร่วมให้กับโครงการนี้ (เช่น ผ่าน Pull Request) หมายความว่าคุณยินยอมให้โค้ดของคุณได้รับอนุญาตภายใต้ AGPLv3 สำหรับโครงการนี้และผู้ใช้ทั้งหมดในอนาคต (ไม่ว่าผู้ใช้เหล่านั้นจะปฏิบัติตาม AGPLv3 หรือใบอนุญาตเชิงพาณิชย์)
* คุณยังเข้าใจและยินยอมว่าการมีส่วนร่วมของคุณอาจถูกรวมไว้ในเวอร์ชัน nUR_MCP_SERVER ที่แจกจ่ายภายใต้ใบอนุญาตเชิงพาณิชย์
### 10.4 ข้อกำหนดอื่นๆ (Other Terms)
* ข้อกำหนดและเงื่อนไขเฉพาะของใบอนุญาตเชิงพาณิชย์จะเป็นไปตามสัญญาอนุญาตเชิงพาณิชย์ที่ทั้งสองฝ่ายลงนาม
* ผู้ดูแลโครงการสงวนสิทธิ์ในการอัปเดตนโยบายการอนุญาตนี้ (รวมถึงคำจำกัดความและเกณฑ์ขนาดผู้ใช้) ตามความจำเป็น การอัปเดตใดๆ จะแจ้งผ่านช่องทางการสื่อสารอย่างเป็นทางการของโครงการ (เช่น ที่เก็บโค้ด เว็บไซต์อย่างเป็นทางการ)
## 11. ทีมพัฒนาหลัก
ทีมพัฒนาเซิร์ฟเวอร์ MCP ของบริษัท Suzhou Nonead Robot Technology Co., Ltd.
**Tony Ke** <tonyke@nonead.com>
**Micro Zhu** <microzhu@nonead.com>
**Anthony Zhuang** <anthonyzhuang@nonead.com>
**Quentin Wang** <quentinwang@nonead.com>