nUR MCP Server
1. MCP란 무엇인가요?
MCP(Model Context Protocol)는 Anthropic에서 개발한 통신 프로토콜로(2024년 11월 오픈 소스화) 대규모 언어 모델(예: DeepSeek-V3-0324, DeepSeek-R1, Qwen3)이 외부 데이터/도구/서비스에 효율적으로 액세스하여 보다 정확하고 지능적인 응답을 제공할 수 있도록 합니다.
주요 역량:
컨텍스트 프로비저닝: 파일/데이터베이스 콘텐츠를 보충 컨텍스트로 제공 예: 답변하기 전에 보고서 분석
외부 도구 통합: 로컬/원격 시스템(파일, API, 하드웨어)을 직접 작동 예: 자동화된 문서 구성
워크플로 자동화: 복잡한 작업을 위해 여러 MCP 서비스를 결합합니다.
데이터 보안: 로컬 실행으로 민감한 정보 보호
Related MCP server: Unitree Go2 MCP Server
2. MCP 작동 방식
클라이언트-서버 아키텍처:
MCP 클라이언트: AI 애플리케이션(요청 시작) MCP 서버: 데이터/도구 인터페이스 제공 통신: JSON-RPC 2.0 호환
3. 서버 기능
데이터 액세스: 파일/데이터베이스/메모리 리소스 도구 실행: 미리 정의된 함수(SQL 쿼리, 파일 작업) 실시간 업데이트: 데이터 변경에 대한 푸시 알림 세션 관리: 연결 유지 관리
2. nUR MCP 서버의 핵심 기능
Tuode Technology 자체 개발 nUR_MCP_SERVER 제품의 기술 사양
제품 개요:
nUR_MCP_SERVER는 MCP(모델 제어 프로토콜) 인터페이스를 기반으로 구축된 지능형 로봇 제어 미들웨어 시스템으로, 대규모 언어 모델(LLM)과의 통합을 통해 산업용 로봇의 자연어 상호작용 제어를 지원합니다. 클라이언트-서버 아키텍처로 설계되어 유니버설 로봇의 모든 협동 로봇 제품군과 긴밀하게 통합되어 산업용 로봇의 기존 티칭 펜던트 프로그래밍 패러다임에 혁신을 불러옵니다.
핵심 기술 아키텍처:
의미론적 파싱 엔진
다층 트랜스포머 기반 NLP 처리 모듈을 탑재하여 컨텍스트 인식 명령 구문 분석(Contextual Command Parsing)을 지원하여 자연어에서 로봇 제어 명령으로의 종단 간 변환을 달성하며, 명령 인식 정확도는 98.6%입니다.동적 스크립트 생성 시스템
자연어 명령을 URScript 로봇 제어 스크립트로 자동 변환하는 LLM 기반 코드 생성 프레임워크입니다. 실시간 구문 검증 및 안전성 검증을 지원하여 기존 프로그래밍 방식 대비 생성 효율을 12배 향상시킵니다.다중 모드 제어 인터페이스
MCP 프로토콜 확장 계층: µs 수준의 명령 응답을 통해 듀얼 모드 TCP/UDP 통신을 지원합니다.
장치 추상화 계층: URCap 플러그인 통합을 표준화합니다.
데이터 버스: TCP/IP 이더넷 프로토콜을 통해 다중 로봇 협업 제어를 가능하게 합니다.
핵심 기능:
▶ 자연어 실시간 제어
음성/텍스트 명령을 통해 로봇 동작(포즈 제어, 궤적 계획, I/O 작업)을 직접 구동하여 동적 매개변수 주입과 실시간 동작 조정을 지원합니다.
▶ 지능형 데이터 수집 시스템
12차원 상태 데이터(관절 토크, 엔드 이펙터 포즈 등)를 실시간으로 수집합니다.
자연어로 정의된 데이터 필터링 규칙을 지원합니다.
구조화된 데이터 보고서(CSV/JSON/XLSX)를 자동으로 생성합니다.
▶ 다중 로봇 협업 제어
분산형 작업 스케줄링 알고리즘을 기반으로 Tuode의 MCP-Client와 함께 사용하면 ≤12개의 UR 로봇을 동시에 관리할 수 있으며, 음성 전달 명령과 여러 기기 간의 작업 오케스트레이션을 지원합니다.
▶ 적응형 학습 모듈
사용자 피드백을 통해 명령-동작 매핑을 지속적으로 최적화하는 증분적 교육 프레임워크를 갖추고 있으며, 시스템 반복 주기는 ≤24시간입니다.
기술 사양:
명령 응답 지연 시간: <200ms(엔드투엔드).
프로토콜 호환성: MCP v2.1+ / URScript v5.0+.
동시 처리 용량: 200+ TPS.
nUR_MCP_SERVER 도구의 기능 분류 표:
도구 ID | 기능 범주 | 기능 설명 | 주요 매개변수 |
fkUCFg7YmxSflgfmJawHeo | 연결 관리 | UR 로봇에 연결 | ip:로봇 IP |
fcr4pIqoIXyxh3ko9FOsWU | 연결 관리 | UR 로봇 연결 해제 | ip:로봇 IP |
fNKAydKkxHwmGFgyrePBsN | 상태 모니터링 | 전원 켜짐 시간(초) 가져오기 | ip:로봇 IP |
fYTMsGvSRpUdWmURng7kGX | 등록 작업 | Int 레지스터 출력(0-23) 가져오기 | ip:로봇 IP, index:레지스터 인덱스 |
fvfqDMdDJer6kpbCzwFL1D | 등록 작업 | 이중 레지스터 출력(0-23) 가져오기 | ip:로봇 IP, index:레지스터 인덱스 |
fCJ6sRw9m0ArdZ-MCaeNWK | 등록 작업 | 이중 레지스터 출력(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, 포즈:TCP 위치 |
f2gbgju7QsymJa4wPgZQ0T | 모션 컨트롤 | X축 선형 이동 | ip:로봇 IP, 거리:이동 거리(미터) |
fS6rCxVp498s5edU7jCMB3 | 모션 컨트롤 | Y축 선형 이동 | ip:로봇 IP, 거리:이동 거리(미터) |
fJps7j-T3lwzXhp8p0_suy | 모션 컨트롤 | Z축 선형 이동 | ip:로봇 IP, 거리:이동 거리(미터) |
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, 사용자 이름/비밀번호: SSH 자격 증명 |
ffaaQZeknwwTISLYdYqM0_ | 프로그램 제어 | 프로그램 스크립트 보내기 | ip:로봇 IP, 스크립트:스크립트 내용 |
fsWlT3tCOn1ub-kUZCrq7E | 모션 컨트롤 | 원운동 | ip:로봇 IP, center:TCP 중심 위치, r:반경(미터) |
f7y1QpjnA9s1bzfLeOkTnS | 모션 컨트롤 | 정사각형을 그리다 | ip:로봇 IP, origin:TCP 시작 위치, border:측면 길이(미터) |
fuN_LLSc22VKXWXwbwNARo | 모션 컨트롤 | 사각형 그리기 | ip:로봇 IP, origin:TCP 시작 위치, 너비/높이:너비/높이(미터) |
참고: 모든 도구는 먼저 로봇 연결을 설정해야 합니다.
3. 면책 조항
nUR MCP 서버를 사용하기 전에 작업자가 UR 로봇 안전 교육을 이수했고 비상 정지(E-stop) 절차를 잘 알고 있는지 확인하세요.
시스템의 안정성과 안전성을 유지하기 위해 로봇과 MCP 서버의 작동 상태를 정기적으로 검사하세요.
nUR MCP 서버를 사용할 때는 다음 안전 프로토콜을 엄격히 준수해야 합니다.
로봇 가시성
작업자는 실시간 모니터링을 위해 Universal Robots을 직접 시야에 두어야 합니다.
긴급 상황에 즉각 대응하기 위해 로봇 작동 중에는 작동 영역을 벗어나는 것이 금지되어 있습니다.
안전한 작업 환경
로봇이 작동하기 전에 장애물을 제거하고 위험 구역에 인원/물체가 들어가지 않도록 하세요.
필요한 경우 무단 접근을 방지하기 위해 물리적 장벽이나 안전 조명 커튼을 설치하세요.
불이행에 대한 책임 면제
안전 요구 사항을 준수하지 않아 발생한 부상, 장비 손상 또는 생산 사고에 대해서는 책임을 지지 않습니다(예: 무인 작업, 작업 영역 정리 안 함).
모든 운영상의 위험과 결과는 사용자가 부담합니다.
4. 버전 릴리스
4.1 최근 업데이트
2025.05.15 : nUR_MCP_SERVER 최초 릴리스
4.2 미래 계획
액추에이터 안전 기능을 강화하기 위해 nUR MCP 서버용 전용 MCP 클라이언트를 개발합니다.
UR 로봇 로그 기록 기능을 추가합니다.
UR 로봇 프로그램의 백업 및 업로드를 활성화합니다.
5. 빠른 시작
5.1 제품 기반(일반 사용자용)
5.1.1 엔진 및 종속성
권장 시스템 버전:
지엑스피1
소프트웨어 요구 사항:
MCP 서버 환경
Python 3.11 or later pip 25.1 or later UV Package Manager 0.6.14 or later bun 1.2.8 or laterMCP 클라이언트
Claude Desktop 3.7.0 or later Cherry Studio 1.2.10 or later Cline 3.14.1 or later ClaudeMind, Cursor, NextChat, ChatMCP, Copilot-MCP, Continue, Dolphin-MCP, Goose - Not tested.LLM 대규모 언어 모델
DeepSeek-V3-0324 or later DeepSeek-R1-671b or later Qwen3-235b-a22b or later Generally, any MCP-supported LLM can be used. Models not listed here have not been tested. Ollama-deployed models currently cannot invoke Tools (under resolution)...
5.1.2 설치
MCP 서버 설치:
Python 3.11 이상을 설치하세요.
pip 25.1 이상을 설치하세요.
UV 패키지 관리자 0.6.14 이상을 설치하세요.
bun 1.2.8 이상을 설치하세요.
MCP 서버 설치:
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 엔진 및 종속성
권장 시스템 버전:
macOS Users: macOS Monterey 12.6 or later Linux Users: CentOS 7 / Ubuntu 20.04 or later Windows Users: Windows 10 LTSC 2021 or later소프트웨어 요구 사항:
MCP 서버 환경
Python 3.11 or later pip 25.1 or later UV Package Manager 0.6.14 or later bun 1.2.8 or laterLLM 대규모 언어 모델
DeepSeek-V3-0324 or later DeepSeek-R1-671b or later Qwen3-235b-a22b or later Generally, any LLM supporting MCP is usable. Untested models are not guaranteed. Ollama-deployed models currently cannot invoke Tools (under resolution)...
5.2.2 설치
macOS / Linux / Windows 개발자를 위한
Python 3.11 or later
pip 25.1 or later
UV Package Manager 0.6.14 or later
bun 1.2.8 or later 5.2.3 사용법
LLM에 실행을 지시할 수 있는 몇 가지 작업 예는 다음과 같습니다.
IP: 192.168.1.199에서 UR 로봇에 연결하세요.
UR 로봇의 현재 TCP 엔드 이펙터 포즈 좌표를 가져옵니다.
nUR_MCP_SERVER 도구의 모든 명령을 나열합니다.
UR 로봇의 모든 하드웨어 데이터를 검색합니다.
UR 로봇에서 스크립트 프로그램을 실행합니다.
UR 로봇의 내장 프로그램 XXXX.urp를 실행합니다.
172.22.109.141에 있는 UR 로봇을 "로봇 A"로, 172.22.98.41에 있는 로봇을 "로봇 B"로 할당합니다. 두 로봇을 연결하고 현재 TCP 자세와 주요 위치(왼쪽은 로봇 A, 오른쪽은 로봇 B)를 기록한 후, 두 로봇의 공간적 관계를 분석합니다.
192.168.1.199에서 UR 로봇에 대한 단계별 지침을 실행합니다. 현재 TCP 포즈를 기록한 다음 TCP를 Z 방향으로 +20mm, Y 방향으로 -50mm, X 방향으로 +30mm 이동하고 이를 5주기 동안 반복합니다.
현재 포즈를 중심으로 기본 평면에 반경 50mm의 원을 그리는 UR 스크립트를 프로그래밍하고 실행합니다.
172.22.109.141에 있는 UR 로봇을 "로봇 A"로, 172.22.98.41에 있는 UR 로봇을 "로봇 B"로 지정하세요. 두 로봇을 연결한 후, 로봇 B를 동기화하여 후속 명령에서 로봇 A의 동작을 반영하도록 하세요.
6. 기술 아키텍처
MCP는 클라이언트-서버 아키텍처를 채택하여 모델과 외부 리소스 간의 표준화된 통신을 가능하게 합니다.
클라이언트-서버 모델
MCP 아키텍처는 다음과 같은 핵심 구성 요소로 구성됩니다.
MCP 호스트 : MCP를 통해 연결을 시작하고 데이터에 액세스하려는 LLM 애플리케이션(예: Claude Desktop 또는 IDE)입니다.
MCP 클라이언트 : 호스트 애플리케이션에 내장된 프로토콜 클라이언트로, 서버와 1:1 연결을 유지합니다.
MCP 서버 : 표준화된 모델 컨텍스트 프로토콜을 통해 특정 기능을 제공하는 가벼운 프로그램입니다.
로컬 데이터 소스 : MCP 서버가 안전하게 액세스할 수 있는 컴퓨터 파일, 데이터베이스 및 서비스입니다.
원격 서비스 : MCP 서버가 연결할 수 있는 인터넷을 통해 접근 가능한 외부 시스템(예: API).
핵심 책임
MCP 아키텍처에서 각 구성 요소는 다음과 같은 책임을 갖습니다.
MCP 호스트:
사용자 인터페이스를 제공합니다
LLM 공급자와의 연결을 관리합니다.
외부 리소스에 액세스하기 위해 MCP 클라이언트를 통합합니다.
MCP 클라이언트:
MCP 서버와의 연결을 설정하고 유지합니다.
요청을 보내고 응답을 받습니다.
MCP 프로토콜 표준을 준수하여 데이터 교환을 처리합니다.
MCP 서버:
클라이언트의 요청을 처리합니다
특정 기능을 실행하거나 리소스에 대한 액세스를 제공합니다.
MCP 프로토콜 표준에 따라 응답 형식을 지정합니다.
통신 프로토콜
MCP는 기본 통신 프로토콜로 JSON-RPC 2.0을 사용하여 다음 메시지 유형을 지원합니다.
요청 : 작업을 시작하기 위해 클라이언트에서 서버로(또는 그 반대로) 보내는 메시지입니다.
응답 : 결과나 오류 정보를 포함한 요청에 대한 답변입니다.
알림 : 응답이 필요하지 않은 단방향 메시지로, 일반적으로 이벤트 알림에 사용됩니다.
MCP는 다음을 포함한 다양한 전송 메커니즘을 지원합니다.
표준 입출력(Stdio) : 로컬 서버에 적합하며 프로세스 간 통신을 가능하게 합니다.
서버 전송 이벤트(SSE) : 원격 서버를 위한 HTTP 기반 전송 메커니즘입니다.
요청 : 클라이언트에서 서버로 또는 그 반대로 작업을 시작하는 메시지입니다.
응답 : 결과나 오류 정보를 포함하는 요청에 대한 답변입니다.
알림 : 응답이 필요 없는 일방적 메시지로, 일반적으로 이벤트 알림에 사용됩니다.
MCP는 다음을 포함한 다양한 전송 메커니즘을 지원합니다.
표준 입출력(Stdio) : 로컬 서버에 적합하며 프로세스 간 통신을 통해 구현됩니다.
서버 전송 이벤트(SSE) : 원격 서버를 위한 HTTP 기반 전송 메커니즘입니다.
MCP의 장점
MCP는 특히 표준화, 보안, 확장성 측면에서 기존 통합 방식에 비해 상당한 이점을 제공합니다.
표준화
MCP는 AI 시스템과 외부 데이터 소스 간의 상호작용을 표준화하여 기존 통합의 단편화를 해결합니다.
플러그 앤 플레이 연결 : 통합 프로토콜을 통해 사용자 정의 코딩 없이 다양한 데이터 소스를 원활하게 통합할 수 있습니다.
플랫폼 간 호환성 : 다양한 AI 모델과 플랫폼을 지원하여 상호 운용성을 향상시킵니다.
개발 간소화 : 복잡성을 줄여 개발자가 기본 통합보다는 비즈니스 로직에 집중할 수 있도록 합니다.
보안
MCP는 전송 및 처리 중에 데이터를 보호하기 위해 내장된 보안 메커니즘을 통합합니다.
민감한 데이터 보호 : 기밀 정보(예: API 키, 사용자 데이터)의 안전한 처리를 보장합니다.
접근 제어 : MCP 서버는 요청 권한을 검증하기 위해 세부적인 권한을 구현합니다.
로컬 처리 : 민감한 데이터를 사내에 보관하여 타사 노출 위험을 제거합니다.
확장성
MCP의 모듈형 디자인은 뛰어난 확장성을 제공합니다.
다중 서비스 연결 : 호환 가능한 클라이언트 간에 표준화된 리소스/도구 공유를 지원합니다.
생태계 성장 : 개발자는 사전 구축된 구성 요소의 확장 라이브러리에 액세스할 수 있습니다.
사용자 정의 : 시스템 기능을 확장하기 위해 특수한 MCP 서버를 생성할 수 있습니다.
7. 문의하기
GitHub : https://github.com/nonead/Nonead-Universal-Robots-MCP
기티 : https://gitee.com/nonead/Nonead-Universal-Robots-MCP
공식 홈페이지 : https://www.nonead.com
8. nUR MCP 서버와 다른 MCP 서버의 차이점
nUR MCP 서버 사용자는 LLM이 실제 로봇을 직접 제어하므로, 고급 안전 의식을 갖추고 UR 로봇 작동 교육을 완료 해야 합니다 . 부적절한 작동은 신체적 부상이나 재산 피해를 초래할 수 있습니다.
9. 인용
이 소프트웨어를 사용하는 경우 다음과 같이 인용하세요.
拓德诠释智造之韵,创新引领世界之变 Nonead는 지능형 제조의 진정한 의미를 보여주고 세상을 변화시키는 선구적인 혁신을 보여줍니다.
10. 라이센스
이 프로젝트는 사용자 세분화된 이중 라이선스 모델을 채택합니다.
기본 원칙
개인 사용자 및 ≤10명 규모의 조직/회사: AGPLv3 라이선스가 자동으로 적용됩니다.
10명 이상인 조직/회사: 상업 라이센스 필요
"≤10명"의 정의: 이는 귀사(회사, 비영리 단체, 정부 기관, 교육 기관 등)에서 nUR_MCP_SERVER에 직간접적으로 접근하거나 사용하거나 혜택을 받는 총 인원이 10명을 초과하지 않는 상황을 의미합니다. 여기에는 개발자, 테스터, 운영자, 최종 사용자, 그리고 통합 시스템을 통한 사용자가 포함되지만 이에 국한되지는 않습니다.
10.1 오픈소스 라이선스(AGPLv3) - 10명 이하 규모의 개인 및 조직용
개인 사용자이거나 조직이 "10명 이하" 정의를 충족하는 경우, AGPLv3 조건에 따라 nUR_MCP_SERVER를 자유롭게 사용, 수정 및 재배포할 수 있습니다. 전체 AGPLv3 라이선스는 https://www.gnu.org/licenses/agpl-3.0.html 에서 확인할 수 있습니다.
주요 의무: AGPLv3의 핵심 요건으로, nUR_MCP_Server의 수정된 버전을 배포하거나 네트워크 서비스로 제공하는 경우 AGPLv3에 따라 수신자에게 완전한 소스 코드를 제공해야 합니다. 귀사가 "10명 이하" 기준을 충족하더라도 소스 코드 공개 요건을 피하려면 상업용 라이선스(아래 참조)를 고려해야 합니다.
사용하기 전에 AGPLv3 약관을 모두 자세히 읽고 이해하세요.
10.2 상업용 라이센스 - 10명 이상의 조직 또는 AGPLv3 의무를 피하고 싶어하는 사용자용
필수 요구 사항: 귀하의 조직이 "≤10명" 정의(즉, 11명 이상이 소프트웨어에 접근하거나 사용하거나 혜택을 얻는 경우)를 충족하지 못하는 경우, nUR_MCP_SERVER를 사용하기 전에 당사와 상용 라이선스 계약을 체결해야 합니다.
선택적 적용: 귀하의 조직이 "≤10명" 기준을 충족하더라도 사용 시나리오가 AGPLv3 조건(특히 소스 코드 공개 요구 사항)을 준수하지 않거나 AGPLv3에서 제공하지 않는 특정 상업적 조항(예: 보증, 면책 또는 Copyleft 제한 없음)이 필요한 경우 상업적 라이선스가 필요합니다.
상업적 라이선스가 필요한 일반적인 사례(일부 제외):
10명 이상의 직원이 있는 조직
(크기에 관계없이) AGPLv3에서 요구하는 대로 소스 코드를 공개하지 않고 nUR_MCP_SERVER의 수정된 버전을 배포합니다.
(크기에 관계없이) 사용자에게 수정된 소스 코드에 대한 액세스를 제공하지 않고 nUR_MCP_SERVER를 네트워크 서비스(SaaS)로 제공합니다.
(규모에 관계없이) 회사 정책, 고객 계약 또는 프로젝트 요구 사항으로 인해 AGPLv3 라이선스 소프트웨어 사용이 금지되거나 폐쇄형 배포/기밀 유지가 필요한 경우
상용 라이센스 취득: service@nonead.com 으로 nUR_MCP_SERVER 개발팀에 문의하세요.
10.3 기여
nUR_MCP_SERVER에 대한 커뮤니티 기여를 환영합니다. 프로젝트에 대한 모든 기여는 AGPLv3 라이선스에 따라 이루어진 것으로 간주됩니다.
기여(예: 풀 리퀘스트)를 제출하면 귀하의 코드가 AGPLv3 약관에 따라 프로젝트와 모든 향후 사용자에게 공개됨에 동의하는 것입니다(AGPLv3 또는 상용 라이선스를 선택했는지 여부와 관계없음).
또한 귀하는 귀하의 기여가 상업용 라이선스에 따라 배포되는 nUR_MCP_SERVER 버전에 포함될 수 있음에 동의합니다.
10.4 기타 조건
구체적인 상업적 라이센스 조건은 공식적인 상업적 라이센스 계약에 명시되어 있습니다.
프로젝트 관리자는 필요에 따라 이 라이선스 정책(사용자 크기 정의 및 임계값 포함)을 업데이트할 권리를 보유합니다. 모든 업데이트는 프로젝트의 공식 채널(코드 저장소, 웹사이트 등)을 통해 공지됩니다.
11. 핵심 개발팀
MCP 서버 개발팀, 수저우 노네드 로보틱스 테크놀로지 유한회사
토니 케 tonyke@nonead.com
마이크로 주 microzhu@nonead.com
Anthony Zhuang anthonyzhuang@nonead.com
퀀틴 왕 quentinwang@nonead.com
Available Tools
39 toolsanalyze_robot_dataC
分析机器人数据
参数:
- robot_id: 机器人ID
- analysis_type: 分析类型,可选值包括"statistical", "trend", "anomaly", "performance"
- start_time: 开始时间戳
- end_time: 结束时间戳
返回:
- 分析结果
| Name | Required | Description | Default |
|---|---|---|---|
| end_time | No | ||
| robot_id | Yes | ||
| start_time | No | ||
| analysis_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits like side effects, permissions, or response structure. It only states the return is '分析结果' (analysis result) with no further detail, which is insufficient for an analytical tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and uses bullet points, which is acceptable, but it is not front-loaded and the structure is minimal. It conveys the essential parameter list but lacks efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is insufficient. It does not explain what the analysis does, how it is performed, or the format of results. For a tool with four parameters, more context is needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds some meaning beyond the schema by listing parameter names and mentioning optional values for analysis_type. However, it does not specify constraints (e.g., time format, allowed values) and schema coverage is 0%, so the description partially compensates but remains incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '分析机器人数据' (Analyze robot data) is vague and does not specify the type of analysis or how it differs from sibling tools like compare_robots_performance. It lacks specificity and fails to distinguish the tool's unique purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as compare_robots_performance. It does not mention prerequisites, context, or exclusions, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_robots_performanceB
比较多个机器人的性能
参数:
- robot_ids: 机器人ID列表
- metric_columns: 比较指标列
- start_time: 开始时间戳
- end_time: 结束时间戳
返回:
- 比较结果
| Name | Required | Description | Default |
|---|---|---|---|
| end_time | No | ||
| robot_ids | Yes | ||
| start_time | No | ||
| metric_columns | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the function and parameters, but does not mention side effects, authorization needs, error handling, or any constraints beyond the bare parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and to the point, with a clear separation of purpose, parameters, and return. It avoids redundancy, though the parameter list could be formatted more clearly (e.g., using bullet points or Markdown).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and only two required parameters with no constraints, the description lacks details on the return format and how the comparison is performed. It leaves ambiguity about the expected input and output, making it insufficient for full contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds basic semantic labels to parameters (e.g., 'robot_ids: 机器人ID列表' implies a list of robot identifiers), which is helpful given the schema has no descriptions (0% coverage). However, it does not clarify the exact format or allowed values for metric_columns or time stamps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it compares the performance of multiple robots, which is a specific verb-resource combination. Among sibling tools like analyze_robot_data or generate_robot_report, this tool is distinct in focusing on multi-robot comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool over alternatives such as analyze_robot_data or generate_robot_report. There is no indication of prerequisites, exclusions, or preferred scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_urC
根据用户提供的IP连接UR IP:机器人地址
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It does not describe what happens upon connection (e.g., authentication, state changes, side effects). The description is insufficient for safe usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, which could be considered concise, but it omits essential information. It sacrifices completeness for brevity, scoring average.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should provide more context about connection outcomes, error handling, or post-connection state. It is incomplete for a tool with one parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for the 'ip' parameter. The description adds minimal semantics ('IP: robot address') but lacks format, validation, or examples. It partially compensates but is inadequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (connect) and the resource (UR robot) and distinguishes it from the sibling tool 'disconnect_ur'. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool, prerequisites, or when it should not be used. The description does not help differentiate usage contexts among siblings beyond basic action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_collaborative_taskB
创建多机器人协同任务
参数:
- task_name: 任务名称
- robot_assignments: 机器人任务分配,格式为{"robot_id": {"operation": "...", "params": {...}}}
- dependencies: 任务依赖关系列表,格式为[{"from": "task1", "to": "task2"}]
返回:
- 任务创建结果
| Name | Required | Description | Default |
|---|---|---|---|
| task_name | Yes | ||
| dependencies | No | ||
| robot_assignments | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only states that the tool creates a task and lists parameters, but does not mention side effects (e.g., whether existing tasks are overwritten), required permissions, or failure behaviors. The return value is vague ('任务创建结果').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and well-structured, listing parameters and return value in a clear format. Every sentence adds value. However, it could be slightly more concise by omitting the parameter list if the schema were documented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of creating a multi-robot task with dependencies and assignments, the description lacks sufficient detail. It does not explain error handling, required fields (though schema shows dependencies as optional, description does not mention), or valid robot IDs. No output schema exists to clarify the return.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates partially by explaining the format for 'robot_assignments' and 'dependencies' parameters. However, it lacks detail on valid values for operations within robot_assignments, and 'task_name' is only described as '任务名称' with no additional semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as '创建多机器人协同任务' (Create multi-robot collaborative task), which is a specific verb+resource pair. This distinguishes it from sibling tools like 'execute_collaborative_task' and 'setup_multi_robot_coordination'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it does not explain that creation should precede execution, or what distinguishes it from 'setup_multi_robot_coordination'. The description only states what it does without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disconnect_urB
根据用户提供的IP,断开与UR机器人的连接 IP:机器人地址
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavior. It only states the basic action (disconnect) without mentioning side effects, permission requirements, or state changes (e.g., does it invalidate sessions?). This is insufficient for safe usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short lines, front-loading the action and parameter meaning. No unnecessary words, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description covers the essential what and what-for. However, it lacks context about preconditions (e.g., must be connected) and postconditions (e.g., disconnection success). Slightly incomplete but adequate for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no description for the 'ip' parameter (0% coverage). The description's line 'IP:机器人地址' adds minimal context that the IP represents the robot's address, but does not specify format or constraints. It adds some value beyond the schema but is not comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it disconnects from a UR robot based on the provided IP, using specific verb '断开' (disconnect) and resource 'UR机器人' (UR robot). This distinguishes it from sibling tools like 'connect_ur'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor any prerequisites like being connected first. The sibling 'connect_ur' suggests a pairing, but there's no explicit when-to-use or when-not-to-use information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_circleC
命令指定IP的机器人,给定圆心位置和半径,在水平或竖直方向画一个圆 center:圆心的TCP位置 r:半径(米) coordinate:圆所在的平面。z:圆形所在的平面与基座所在平面垂直,其它:圆形所在的平面与基座所在平面平行。默认值:z。
| Name | Required | Description | Default |
|---|---|---|---|
| r | Yes | ||
| ip | Yes | ||
| center | Yes | ||
| coordinate | No | z |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It only describes the effect (drawing a circle) without disclosing behavioral traits such as whether the robot moves, error handling, or blocking behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main action, listing parameters in a readable bullet-like format. It efficiently communicates the core functionality without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description covers the essential input parameters and their roles. However, it lacks details on return values or confirmation of completion, leaving some gaps for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds semantic meaning for r (radius in meters) and coordinate (plane orientation with defaults), but does not clarify the format of center (likely an array of x,y,z coordinates) or valid values for coordinate beyond 'z' and 'other'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool draws a circle given center and radius, and specifies the plane orientation via the coordinate parameter. It differentiates from sibling tools like draw_rectangle and draw_square by focusing on circles and plane choice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like draw_rectangle or draw_square. The description implies usage for drawing circles but does not provide context or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_rectangleC
给定起点位置和边长,在水平或竖直方向画一个正方形 origin:画长方形时TCP的起点位置 width:长(米) height:宽(米) coordinate:圆所在的平面。z:圆形所在的平面与基座所在平面垂直,其它:圆形所在的平面与基座所在平面平行。默认值:z。
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| width | Yes | ||
| height | Yes | ||
| origin | Yes | ||
| coordinate | No | z |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as side effects, required permissions, or error conditions. It only repeats parameter descriptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Mixed language and somewhat verbose. Could be more concise and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations; the description fails to explain return values or conditions. Given the complexity and sibling tools, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to parameters: origin as TCP start, width/height in meters, coordinate plane. However, it is inconsistent (calls it a square) and lacks detail on origin array elements. Schema coverage is 0% so the description partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'draw a square' but the tool is named draw_rectangle, which is contradictory. It does mention the action and resource but is confusing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like draw_square or draw_circle. The description lacks differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_squareB
给定起点位置和边长,在水平或竖直方向画一个正方形 origin:画正方形时TCP的起点位置 border:边长(米) coordinate:圆所在的平面。z:圆形所在的平面与基座所在平面垂直,其它:圆形所在的平面与基座所在平面平行。默认值:z。
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| border | Yes | ||
| origin | Yes | ||
| coordinate | No | z |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden but only explains basic parameters. It omits behavioral traits like side effects (robot movement), permissions, or reversibility. For a robot motion tool, more disclosure is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise (two-line paragraph) and front-loads the purpose. It avoids unnecessary words, though could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple drawing tool but missing details on the 'ip' parameter and any return value or post-execution state. Given no output schema and siblings, it's minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
0% schema coverage, but description adds meaning for origin (TCP start position), border (side length in meters), and coordinate (plane orientation). However, required parameter 'ip' is not mentioned, leaving a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'draw' and resource 'square', specifies it requires start position and side length, and indicates orientation (horizontal/vertical). It distinguishes from sibling tools like draw_circle and draw_rectangle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives (e.g., draw_rectangle). The description only states what it does, not when to prefer it over other drawing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_collaborative_taskC
执行多机器人协同任务
参数:
- task_id: 任务ID
返回:
- 执行结果
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It only states 'execute multi-robot collaborative task', without explaining blocking behavior, return values, side effects, or safety implications. This is insufficient for a potentially impactful tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one header line and two parameter lines). It is concise but lacks a narrative flow. For a simple one-parameter tool, it is adequate but could be structured better with a full sentence for purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's likely side effects (executing multi-robot tasks) and the absence of annotations or output schema, the description is incomplete. It does not cover behavior, expected results, or dependencies, leaving critical gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. However, it only repeats the parameter name and type ('任务ID'), adding no further meaning about format, source, or constraints. This adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action (execute) and resource (multi-robot collaborative task), distinguishing it from siblings like 'create_collaborative_task' and 'setup_multi_robot_coordination'. However, it does not elaborate on what 'execute' entails, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description lacks context on when to use this tool versus alternatives, prerequisites (e.g., task must exist), or potential side effects. This omission makes it hard for an agent to decide correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_bezier_pathC
生成贝塞尔曲线路径
参数:
- control_points: 控制点列表,格式为[{"x": 0, "y": 0, "z": 0, "rx": 0, "ry": 0, "rz": 0}, ...]
- num_points: 生成的路径点数量
返回:
- 路径点列表
| Name | Required | Description | Default |
|---|---|---|---|
| num_points | No | ||
| control_points | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as side effects, required permissions, computational complexity, or error handling. It only states the return is a path list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using a bulleted list format that is front-loaded with the purpose. Every word serves a purpose, with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and minimal parameter explanation (e.g., num_points range, control_points constraints), the description leaves significant gaps. The tool's relation to robot motion or drawing is unclear, and return format is not detailed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds value by specifying the internal structure of control_points (x,y,z,rx,ry,rz) and the role of num_points as the number of generated points. This compensates for the schema's lack of detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a Bezier curve path, using a specific verb and resource. However, it does not differentiate from sibling tools like draw_circle or movej, leaving ambiguity about whether this is for motion planning or graphics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or scenarios where it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_robot_reportC
生成机器人运行报告
参数:
- robot_id: 机器人ID
- start_time: 开始时间戳
- end_time: 结束时间戳
- report_path: 报告保存路径
返回:
- 报告生成结果
| Name | Required | Description | Default |
|---|---|---|---|
| end_time | No | ||
| robot_id | Yes | ||
| start_time | No | ||
| report_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as side effects, permissions, or whether it is a read-only or write operation. The lack of detail leaves the agent uninformed about potential impacts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with purpose. It then lists parameters and return in a structured manner. However, it could be more concise by integrating parameter descriptions into the main text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, no output schema), the description is incomplete. It does not explain the report contents, output format, or behavior when optional parameters are omitted. Missing critical context for an agent to use effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists each parameter with a brief explanation (e.g., 'start_time: 开始时间戳'), which adds minimal meaning beyond the schema. However, with 0% schema coverage, this is essential. The descriptions are not detailed enough to fully clarify format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Generate robot operation report', which is a specific verb+resource. It distinguishes itself from sibling tools like analyze_robot_data or compare_robots_performance by focusing on report generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. The description does not mention prerequisites, use cases, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_actual_joint_currentC
获取指定IP机器人各关节的电流(安培) IP:机器人地址
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral disclosure. It only mentions the input IP and that it gets current, but fails to disclose whether it is read-only, requires network connectivity, or any side effects. The behavioral traits are minimally addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that conveys the core purpose efficiently. It is front-loaded with the action and resource. However, it could be slightly more structured with separated lines for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema, no annotations), the description is incomplete. It does not explain the return format (e.g., array of currents), the number of joints, or unit details beyond mentioning amperes. Missing contextual details reduce completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, leaving the parameter 'ip' with only a title 'Ip'. The description adds a brief note 'IP:机器人地址' (IP: robot address), which adds minimal meaning. However, it does not specify format, constraints, or examples, so it only slightly improves upon the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb '获取' (get) and the resource '各关节电流' (current of each joints) with unit '安培' (amperes). It distinguishes from sibling tools like 'get_actual_joint_voltage' and 'get_actual_robot_current' by specifying joints and current.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No mention of prerequisites, conditional use, or exclusion criteria. The description only states the function without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_actual_joint_poseC
获取指定IP机器人的当前关节角度 IP:机器人地址
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden but only states the action. No disclosure of side effects, required connections, or whether it's read-only. The 'get' implies non-destructive, but not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise, two short sentences. Information is front-loaded. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the schema and lack of annotations, the description is insufficient. It doesn't specify output format (e.g., array of angles, units), prerequisites (e.g., robot must be connected), or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'ip' has no schema description (0% coverage). The description adds 'IP: robot address', which clarifies the parameter's meaning but is minimal. More detail on format or constraints would improve.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves current joint angles for a robot specified by IP. The verb '获取' (get) and resource '关节角度' (joint angle) are specific, and it distinguishes from siblings like get_actual_tcp_pose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description lacks context for prerequisites or when not to use, leaving the agent to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_actual_joint_voltageA
获取指定IP机器人的各关节电压(伏特) IP:机器人地址
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the action and parameter, omitting details like side effects (none expected), required connection state, or that it is a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with no wasted words. It front-loads the action and parameter meaning, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one parameter, the description is adequate but could be improved by noting the return format (e.g., array of voltages) or joint order. It does not explain what the agent can expect from the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the description clarifies that 'ip' is the robot address. While it could add format constraints, it adds crucial context beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets joint voltages from a robot specified by IP. It distinguishes from siblings like get_actual_joint_current and get_actual_robot_voltage by specifying the quantity (voltage) and target (joints).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives like get_actual_joint_current or get_actual_robot_voltage. There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_actual_robot_currentB
获取指定IP机器人的电流(安培) IP:机器人地址
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as safety (read-only), required permissions, or potential errors (e.g., if IP is unreachable). It simply describes the function without additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise; two lines convey the essential purpose and parameter meaning without superfluous words. Structure is front-loaded with the core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one parameter and no output schema, the description is minimally adequate. It covers the purpose and parameter but lacks usage context and expected return format. Given low complexity, it marginally meets completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning by stating 'IP: robot address', clarifying the parameter's purpose. However, it could provide more detail (e.g., format like IPv4, or that IP must match a connected robot).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool gets the current (in amperes) of a robot specified by IP. It uses a specific verb and resource, and distinguishes from sibling tools like get_actual_joint_current (joint-level) and get_actual_robot_voltage (voltage).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., get_actual_joint_current for joint currents) or any prerequisites (e.g., robot must be connected). The description only states what it does, not the context of use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_actual_robot_voltageC
获取指定IP机器人的电压(伏特) IP:机器人地址
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, permissions, rate limits, or side effects. For a getter that likely reads a value, minimal behavioral info is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of a single line in Chinese. It is front-loaded with the action and resource, but lacks structure or additional details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description is mostly adequate. However, it fails to specify which voltage is measured (e.g., main power or bus voltage) and does not clarify the return format. The unit is implied by the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'ip' has no description in the schema (0% coverage). The description adds a brief translation that IP is the robot address, but this does not enrich beyond the obvious. No format or validation hints are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the voltage of a robot specified by IP, which aligns with the name. However, it does not differentiate from the sibling 'get_actual_joint_voltage', which retrieves individual joint voltages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_actual_joint_voltage' or other getters. There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_actual_tcp_poseB
获取指定IP机器人的当前TCP位置 IP:机器人地址
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must convey behavioral traits. It does not state that the operation is read-only, non-destructive, or describe any side effects. Missing details on error handling or performance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two short phrases, no wasted words. However, it could be better structured with a clearer breakdown of what and how.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should explain what the tool returns (e.g., pose coordinates). It does not, leaving the agent uncertain about the result format. Also lacks error behavior or connection requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% coverage, so the description must compensate. It explains that 'ip' is the robot address, adding basic meaning, but fails to specify format, validation, or how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the current TCP position for a robot specified by IP. It uses a specific verb and resource, distinguishing it from sibling tools like get_actual_joint_current or get_robot_mode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_joint_temperaturesB
获取指定IP机器人各关节的温度(摄氏度)。 IP:机器人地址
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only describes what the tool does (get temperatures) but does not mention that it is a read operation, whether it requires authentication, or any potential side effects. The description does not add value beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two short sentences, covering the essential: what the tool does, the unit, and the required parameter. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one required parameter and no output schema. The description does not explain the return format (e.g., an array of joint names and temperatures) or any prerequisites like the robot being connected. Given the complexity of a joint temperature reading, more context is needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description only restates 'IP: robot address' which adds no meaningful detail beyond the schema's property name. It does not provide format, examples, or constraints for the IP parameter, leaving the agent with insufficient guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get', the resource 'joint temperatures', and specifies the unit (Celsius) and the required IP parameter. It is distinct from sibling tools like get_actual_joint_current or get_actual_joint_pose, which involve different measurements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_actual_joint_current or get_actual_robot_current. There is no mention of prerequisites (e.g., the robot must be connected) or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_output_bit_registerC
获取指定IP机器人Bool寄存器的值, IP:机器人地址 index:寄存器下标,范围是[0,23]
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden for behavioral disclosure. It only describes the action as 'get', implying read-only, but does not mention safety, idempotency, or error conditions (e.g., behavior with out-of-range index or unreachable IP). Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short with no redundant words. The purpose is front-loaded in the first line. However, it lacks structural elements like separate sections or bullet points, but it is efficient for the information provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and 0% schema coverage, the description is incomplete. It does not describe the return value (boolean), error handling, or any side effects. Only the basic operation and parameter range are covered, leaving gaps for an AI agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must add meaning. It explains IP as robot address and index as register subscript with range [0,23]. This adds basic semantics beyond the schema, but does not detail data types or constraints beyond range. Sufficient but not rich.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets the value of a Bool register for a specified IP robot, with parameters IP and index. It is specific about the resource (Bool register) and verb (get). However, it does not explicitly differentiate from sibling tools like get_output_double_register or get_output_int_register, relying on the name for distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., get_output_int_register) or any prerequisites. It lacks explicit context for when it is appropriate or not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_output_double_registerA
获取指定IP机器人Double寄存器的值, IP:机器人地址 index:寄存器下标,范围是[0,23]
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description implies a read-only operation (获取值). No side effects or requirements disclosed. For a simple getter, this is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the purpose and parameter details. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and simple parameters, the description provides enough information. Could mention return format or error conditions, but not strictly necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description explains both parameters: ip as robot address, index with range [0,23], adding meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets the value of a double register for a specified IP robot, with parameters ip and index. It distinguishes from siblings like get_output_bit_register and get_output_int_register by the register type (double), though not explicitly mentioned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not specify when not to use or provide context for selection among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_output_int_registerB
获取指定IP机器人Int寄存器的值, IP:机器人地址 index:寄存器下标,范围是[0,23]
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits beyond the implied read operation. It does not mention side effects, permissions, or error handling, relying solely on the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, using one sentence and a simple parameter list without unnecessary elaboration. It could be more structured (e.g., bullet points) but remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and the description does not specify what the tool returns (e.g., value type, format) or any potential error conditions. This leaves the agent guessing about the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context to both parameters: 'IP: robot address' and 'index: register subscript, range [0,23]'. This compensates for the complete lack of schema descriptions, making parameter usage clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and the resource 'Int register of the specified IP robot', making the purpose unambiguous. However, it does not differentiate from siblings like 'get_output_bit_register' beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'get_output_bit_register' or 'get_output_double_register'. The description only explains parameters without context on conditional usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_programsC
获取指定IP机器人的所有程序。 IP:机器人地址 username:ssh账号 password:ssh密码
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| password | No | easybot | |
| username | No | root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It mentions SSH credentials but fails to describe authentication failures, network requirements, or the fact that the tool establishes a connection. The side effects or potential errors are not covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with only two sentences, efficiently conveying the tool's purpose and parameter meanings. No redundant information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks essential information such as output format, error handling, security considerations, and prerequisites (e.g., network access). For a tool that requires SSH credentials, this is insufficient for an agent to use it correctly and safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates by explaining each parameter ('IP: robot address', 'username: SSH account', 'password: SSH password'). This adds basic context but lacks detail on default usage or constraints. It is adequate but not exceptional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves all programs from a specified IP robot. The verb 'get' and resource 'programs' are explicit, and it distinguishes from the sibling tool 'get_program_state' which focuses on state rather than listing programs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_program_state'. The description does not include context on prerequisites, dependencies, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_program_stateC
获取指定IP机器人的程序执行状态 IP:机器人地址
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It does not disclose whether the operation is safe/read-only, what happens if the IP is invalid, or any permissions required. It's a minimal statement without behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and to the point, with no extraneous words. It wastes no space, though it could benefit from structured formatting. It earns its two lines.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is insufficient for a complete understanding. It does not describe the return format, possible statuses, or error handling. For a tool with one parameter, more detail is expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It adds that 'ip' is the robot address, which provides some meaning beyond the raw schema. However, it does not specify format, validation rules, or examples, leaving ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to get the program execution status of a robot specified by IP. It uses a specific verb and resource, and while it doesn't explicitly differentiate from siblings, the name itself helps distinguish it from tools like get_robot_mode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. Sibling tools like get_robot_mode or get_safety_mode exist, but no comparison or selection criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_robot_modeB
获取指定IP机器人的运行状态 IP:机器人地址
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only operation by using 'get', but does not explicitly state that it has no side effects, requires no special permissions, or what happens on error (e.g., unreachable robot). This is adequate for a simple status retrieval but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two brief lines with no wasted words. It front-loads the purpose and then clarifies the parameter. It could be more concisely combined into one sentence, but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, common operation), the description covers the essential purpose. However, it does not explain what the returned status looks like or provide any usage context, which could be beneficial for an agent unfamiliar with the domain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds 'IP: robot address' to explain the single parameter, which gives domain context beyond the schema's bare type 'string'. However, it does not specify format (e.g., IPv4 vs IPv6) or constraints (e.g., must be reachable). With 0% schema description coverage, the description partially compensates but could be more explicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'get the running status of a specified IP robot', which specifies the verb 'get' and the resource 'running status'. It distinguishes from sibling tools like get_safety_mode or get_actual_robot_current by focusing on a general mode. However, 'running status' is somewhat vague and does not explicitly define what the output represents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention when not to use it, nor does it reference sibling tools. The agent receives no context for choosing between this and related status tools like get_program_state or get_safety_mode.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_robot_modelB
获取指定IP的机器人型号 IP:机器人地址
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose behavioral traits such as read-only nature, side effects, network requirements, or error conditions. A simple 'Reads the robot model' would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two lines), which is concise, but it sacrifices completeness. It could be expanded slightly without losing conciseness to cover key aspects like return value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool simplicity (one param, no output schema), the description is barely adequate. It does not explain what the return value represents (e.g., model string), nor does it mention error cases or potential delays.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter 'ip' with no description (coverage 0%). The description adds 'IP:机器人地址' (IP: robot address), which provides minimal context but lacks details on format (IPv4/IPv6), validation, or error handling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('获取指定IP的机器人型号' = get robot model for specified IP) and the resource (robot model). It distinguishes from sibling tools which retrieve other types of data (e.g., joint positions, currents).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. However, the purpose is self-explanatory for a simple getter; some implied usage context exists given the sibling tool list, but no exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_safety_modeC
获取指定IP机器人的安全模式 IP:机器人地址
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It does not disclose any behavioral traits such as whether the operation is safe, requires permissions, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences conveying the core purpose and parameter explanation. However, the second sentence could be integrated more cleanly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter and no output schema, the description is minimally adequate but could be improved by explaining what safety mode values exist or how the result is formatted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'ip' has no description in the schema (0% coverage). The description adds 'IP: robot address', which clarifies its purpose but still lacks format constraints or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the safety mode of a specified robot identified by IP. This is a specific verb-resource combination that distinguishes it from sibling tools like get_robot_mode, which retrieves a different mode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_robot_mode or other data retrieval tools. There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_serial_numberC
获取指定IP机器人的序列号 IP:机器人地址
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description discloses no behavioral traits beyond the basic action. It does not mention whether the operation is read-only (assumed), potential errors, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, consisting of two concise lines. It is front-loaded with the purpose and contains no unnecessary words. However, it could benefit from slightly more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description provides the essential information. It could mention the return type or any prerequisites, but it is adequate for a basic retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only restates the parameter 'IP' without adding format, constraints, or examples. This adds minimal value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves the serial number of a robot given its IP address. The verb 'get' and resource 'serial number' are specific. Among sibling getter tools, this is distinct as the only one retrieving serial numbers, but the description does not explicitly differentiate it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It simply states the function without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_timeA
根据用户提供的IP,获取指定机器人的开机时长(秒) IP:机器人地址
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavior. It implies a read operation by saying 'get', but does not elaborate on side effects, permissions, or connection requirements. It is minimally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences covering the main purpose and the input parameter. Every word earns its place, front-loading the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter, the description covers what it does and the input. It lacks output specification (e.g., return type or unit), but the tool is straightforward enough that this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds that 'IP' is the robot address, providing context beyond the naked schema, but no format or validation details. With 0% schema coverage, it partially compensates but is not comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the power-on duration of a robot given an IP address. It uses a specific verb ('get') and resource ('power-on duration'), distinguishing it from sibling tools that retrieve other robot parameters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, such as when to check power-on duration vs other robot status parameters. No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ur_software_versionC
根据用户提供的IP,获取指定机器人的软件版本 IP:机器人地址
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It does not mention whether the tool requires network connectivity, what happens if the IP is unreachable, or if the operation is read-only. The description is minimal and lacks behavioral context beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two short sentences and no extraneous information. It front-loads the action and parameter explanation. While not formally structured, it efficiently conveys the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is adequate but incomplete. It tells what it does and what the parameter means, but omits details like return format, error handling, or usage examples. Given the lack of output schema, some description of the result would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for the 'ip' parameter. The description adds the note 'IP:机器人地址' (IP: robot address), which clarifies the parameter's purpose. However, it does not specify IP format (e.g., IPv4) or validation rules. The description adds some value but is basic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the software version of a robot given an IP address. It specifies the verb 'get' and the resource 'software version', making the purpose clear. However, it does not differentiate from sibling tools like get_robot_model or get_serial_number, which also retrieve robot information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, context, or exclude other tools. For example, it does not note that other getter tools might be more appropriate for different robot attributes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
movejB
发送新的关节姿态到指定IP的机器人,使每个关节都旋转至指定弧度。 IP:机器人地址, q:各关节角度, a:加速度(米每平方秒), v:速度(米每秒), t:移动时长(秒), r:交融半径(米)。
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | ||
| q | Yes | ||
| r | No | ||
| t | No | ||
| v | No | ||
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It fails to disclose critical behaviors such as whether the movement is blocking or non-blocking, safety requirements, error handling, or side effects like joint limits. The brief parameter list does not cover operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise but lacks structure. It lists parameters in a plain text line-by-line format without proper formatting or grouping. While front-loaded with the purpose, the parameter list is verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and 6 parameters, the description is incomplete. It does not explain return values, error conditions, or prerequisites like robot connectivity or power state. The tool requires more extensive documentation for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema coverage, the description adds meaningful parameter explanations with units (e.g., 'a:加速度(米每平方秒)'). This compensates for the bare schema, though it could be more precise about defaults and constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it sends joint angles to a robot, specifying the action as '发送新的关节姿态' (send new joint pose) and the resource as '机器人' (robot). It distinguishes from siblings like 'movel' (linear move) by focusing on joints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'movel' or other move functions. The description does not mention prerequisites, constraints, or typical use cases, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
movelA
发送新的TCP位置到指定IP的机器人,使TCP移动到指定位置,移动期间TCP作直线移动。 IP:机器人地址 pose:TCP位置 a:加速度(米每平方秒) v:速度(米每秒) t:移动时长(秒) r:交融半径(米)
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | ||
| r | No | ||
| t | No | ||
| v | No | ||
| ip | Yes | ||
| pose | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explains the tool sends a command and mentions linear movement, but lacks details on error behavior, prerequisites (e.g., robot connection), or what happens if the target is unreachable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that efficiently lists parameters with definitions. It is clear and not overly long, though a more structured format (e.g., bullet points) could improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's basic functionality and parameters, but lacks information about return values, error handling, and the need for a prior robot connection. Given no output schema and no annotations, more context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds significant value by explaining each parameter: IP as robot address, pose as TCP position, a as acceleration, v as velocity, t as duration, r as blend radius. Units are included for a and v, but pose structure is not detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends a new TCP position to a robot at a given IP, specifying that the TCP moves linearly. It lists all parameters with their meanings, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly guide when to use this tool versus alternatives like movej or movel_x/y/z. The context of linear movement is implied, but no direct comparison or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
movel_xC
命令指定IP机器人的TCP沿X轴方向移动 IP:机器人地址 distance:移动距离(米)
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| distance | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions the move direction and distance units, but discloses no behavioral traits such as blocking behavior, acceleration profiles, error handling, or whether negative distances reverse the direction. This is insufficient for a robot control tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with parameter explanations, making it concise and front-loaded. It wastes no words, though it could be more structured with separate sections for behavior and parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a robot movement tool, the description is incomplete. It does not explain return values (no output schema), synchronization behavior, prerequisites (e.g., robot must be connected), or potential side effects. Annotations are absent, leaving many gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to the two parameters: IP is the robot address, distance is in meters. This is helpful since the schema has no parameter descriptions. However, it does not specify expected formats (e.g., IP address format) or range constraints for distance, which would improve usability.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool moves a robot's TCP along the X-axis, with IP and distance parameters. It distinguishes from siblings like movel_y and movel_z by specifying the axis. However, it does not explicitly state that this is a linear move (as 'movel' implies), which could be deduced from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like movel (general linear move) or movel_y/movel_z. The description lacks context for selection based on desired axis of movement or other criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
movel_yB
命令指定IP机器人的TCP沿Y轴方向移动 IP:机器人地址 distance:移动距离(米)
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| distance | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only says it moves the TCP along Y; it does not disclose any behavioral traits like blocking nature, error handling, timeouts, or required robot state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two lines) and gets to the point. It could be improved by front-loading the action, but it is concise without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and simple parameters, the description lacks information on return values, error handling, or prerequisites. It is incomplete for a command that likely requires a connected robot.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds meaning by explaining ip as robot address and distance as movement distance in meters. However, it lacks details like allowed ranges or format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool moves the robot's TCP along the Y-axis, specifying the parameters IP and distance in meters. It distinguishes from sibling tools like movel_x and movel_z.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool vs alternatives such as movel, movel_x, or movel_z. There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
movel_zD
命令指定IP机器人的TCP沿Y轴方向移动 IP:机器人地址 distance:移动距离(米)
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| distance | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description fails to disclose behavioral traits such as relative vs absolute movement, error handling, safety implications, or the return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but poorly structured, containing a single sentence with an error (wrong axis). Conciseness is undermined by inaccuracy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given many sibling tools for different axes, the description fails to specify the correct axis. No output schema means return values are undocumented, leaving the agent uninformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds meaning by explaining 'ip' as '机器人地址' (robot address) and 'distance' as '移动距离(米)' (movement distance in meters), which is not present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states '沿Y轴方向移动' (move along Y-axis), but the tool name is 'movel_z', indicating Z-axis. This mismatch creates confusion about the tool's actual function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like movel, movel_x, movel_y. The description does not mention alternative tools or provide usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
optimize_trajectoryB
优化轨迹(时间、能耗或平滑度)
参数:
- ip: 机器人IP地址
- waypoints: 路径点列表
- optimization_type: 优化类型,可选值包括"time", "energy", "smoothness"
返回:
- 优化后的路径
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| waypoints | Yes | ||
| optimization_type | No | time |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states it returns an optimized path, but does not disclose safety implications, required permissions, or side effects on robot state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short description with bullet points for parameters and return. Front-loaded purpose. Could be more structured but adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks explanation of return format, failure cases, prerequisites, or integration with robot state. Given no output schema and no annotations, the description is insufficient for an optimization tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. It briefly explains each parameter (ip, waypoints, optimization_type) and lists possible values for optimization_type. However, waypoints format is undefined, and ip is trivial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool optimizes a trajectory based on time, energy, or smoothness. It uses a specific verb and resource, and distinguishes from sibling tools (no other optimization tool).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when or when not to use this tool. No mention of prerequisites, alternatives, or context for using different optimization types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_program_scriptC
发送脚本到指定IP的机器人。 IP:机器人地址 script:脚本内容
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| script | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose whether the script is executed, any side effects, required permissions, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, but it is not well-structured or informative. It achieves brevity but at the cost of necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and many sibling tools, the description is insufficient. It omits what happens after sending, error handling, and return values, making it incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description only rephrases parameter names ('IP: robot address, script: script content') without adding format, constraints, or examples. It adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'send script to robot at specified IP', with specific verb and resource. It distinguishes from sibling tools which are about connecting, moving, or analyzing data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, prerequisites, or context. The description only states its function without any usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_multi_robot_coordinationB
设置多机器人协同工作环境
参数:
- robot_ids: 参与协同的机器人ID列表
- collaboration_mode: 协作模式,可选值包括"sequential", "parallel", "synchronous", "hierarchical"
返回:
- 成功或失败的消息
| Name | Required | Description | Default |
|---|---|---|---|
| robot_ids | Yes | ||
| collaboration_mode | No | parallel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks behavioral context: it does not disclose side effects, required conditions (e.g., robot connectivity), or what 'coordination environment' entails. With no annotations, the description fails to inform the agent about important behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a brief summary followed by parameter explanations. It is well-organized and efficient, though could be slightly more structured with a clear separation sections.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multi-robot coordination) and lack of output schema, the description is incomplete. It does not explain return format, error conditions, or prerequisites, leaving gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the schema: it explains robot_ids as 'list of robot IDs participating in coordination' and collaboration_mode with possible values, compensating for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (setup) and resource (multi-robot coordination environment). However, it does not differentiate from sibling tools like create_collaborative_task or execute_collaborative_task, which have overlapping purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or context for its invocation. The description only lists parameters and return value without usage hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_data_recordingA
开始记录机器人数据
参数:
- robot_id: 机器人ID
- record_types: 记录类型列表,可选值包括"robot_state", "joint_data", "tcp_data", "error_data"
- duration: 记录持续时间(秒),0表示持续记录直到停止
返回:
- 记录会话ID
| Name | Required | Description | Default |
|---|---|---|---|
| duration | No | ||
| robot_id | Yes | ||
| record_types | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides key behavioral traits: recording starts, duration 0 means continuous until stopped, and returns a session ID. It lacks details on concurrency limits or prerequisites but is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with purpose, followed by a clear parameter list and return value. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description mentions the return value (session ID). It covers the main aspects but could mention prerequisites like robot connectivity. Overall sufficient for a simple recording start tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description fully explains all three parameters: robot_id, record_types with listed optional values, and duration with default 0 meaning continuous recording. This adds significant value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '开始记录机器人数据' (start recording robot data), which is a specific verb+resource. It is easily distinguished from sibling tools like 'stop_data_recording' and other analysis tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for starting data recording but does not explicitly say when to use it versus alternatives or when not to use it. No exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_data_recordingC
停止数据记录
参数:
- session_id: 记录会话ID
返回:
- 停止状态
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says '停止数据记录' but does not explain side effects (e.g., whether in-flight data is saved, if stopping is instant, or if it requires a running session).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, but it lacks substance for a tool with one parameter. Every sentence should add value; here the parameter description is trivial.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 required param, no output schema), the description is minimally complete for stopping a recording. However, it does not address preconditions (e.g., an active recording) or postconditions (e.g., data availability).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description should compensate. It lists 'session_id: 记录会话ID', which adds minimal meaning (it is a session ID) but does not explain format, constraints, or relationship to the recording session.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '停止数据记录' clearly states the verb (stop) and resource (data recording), distinguishing it from sibling tools like start_data_recording. It is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as start_data_recording or other control tools. The context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
16 tool updates
v1.0.0- Added
analyze_robot_data - Added
compare_robots_performance - Added
create_collaborative_task - Changed
draw_circle3 fields changed- removed
Input schema / properties / center / additionalPropertiesRemoved value: -true - added
Input schema / properties / center / itemsAdded value: +{} - changed
Input schema / properties / center / typePrevious value: -"object"New value: +"array"
- Changed
draw_rectangle3 fields changed- removed
Input schema / properties / origin / additionalPropertiesRemoved value: -true - added
Input schema / properties / origin / itemsAdded value: +{} - changed
Input schema / properties / origin / typePrevious value: -"object"New value: +"array"
- Changed
draw_square3 fields changed- removed
Input schema / properties / origin / additionalPropertiesRemoved value: -true - added
Input schema / properties / origin / itemsAdded value: +{} - changed
Input schema / properties / origin / typePrevious value: -"object"New value: +"array"
- Added
execute_collaborative_task - Added
generate_bezier_path - Added
generate_robot_report - Changed
get_time1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "result": { - "title": "Result", - "type": "string" - } - }, - "required": [ - "result" - ], - "title": "get_timeOutput", - "type": "object" -}New value: +null
- Changed
movej3 fields changed- removed
Input schema / properties / q / additionalPropertiesRemoved value: -true - added
Input schema / properties / q / itemsAdded value: +{} - changed
Input schema / properties / q / typePrevious value: -"object"New value: +"array"
- Changed
movel3 fields changed- removed
Input schema / properties / pose / additionalPropertiesRemoved value: -true - added
Input schema / properties / pose / itemsAdded value: +{} - changed
Input schema / properties / pose / typePrevious value: -"object"New value: +"array"
- Added
optimize_trajectory - Added
setup_multi_robot_coordination - Added
start_data_recording - Added
stop_data_recording
29 tool updates
- First observed
connect_ur - First observed
disconnect_ur - First observed
draw_circle - First observed
draw_rectangle - First observed
draw_square - First observed
get_actual_joint_current - First observed
get_actual_joint_pose - First observed
get_actual_joint_voltage - First observed
get_actual_robot_current - First observed
get_actual_robot_voltage - First observed
get_actual_tcp_pose - First observed
get_joint_temperatures - First observed
get_output_bit_register - First observed
get_output_double_register - First observed
get_output_int_register - First observed
get_program_state - First observed
get_programs - First observed
get_robot_mode - First observed
get_robot_model - First observed
get_safety_mode - First observed
get_serial_number - First observed
get_time - First observed
get_ur_software_version - First observed
movej - First observed
movel - First observed
movel_x - First observed
movel_y - First observed
movel_z - First observed
send_program_script
TDQS
Scored across 39 tools
Most tools have distinct purposes, but movel_z has a description that incorrectly says '沿Y轴方向移动' (Y axis) while the name suggests Z axis, causing confusion. Additionally, draw_square and draw_rectangle are very similar but still distinguishable.
Naming is a mix of verb_noun (e.g., draw_circle), concatenated abbreviations (movej, movel), and underscores (movel_x). The 'get_' tools are consistent, but the movement commands break the pattern. Overall, the convention is not uniform.
With 39 tools, the server has a high count that exceeds the typical well-scoped range of 3-15. While the domain may justify many tools, there are redundancies (e.g., multiple movel_axis commands) that could be parameterized, making the surface feel bloated.
The tool set covers connection, movement, drawing, data recording, analysis, multi-robot coordination, and robot information. Minor gaps include the lack of an explicit stop or emergency stop command, but overall it is comprehensive for UR robot control.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
- mcpOAuthcom.gibsonai
GibsonAI MCP server: manage your databases with natural language
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceA Python-based server that enables AI assistants to control robots by integrating the Model Context Protocol (MCP) with ROS 2, allowing for natural language commands that translate into robot movement via the /cmd\_vel topic.83-
- AlicenseDqualityFmaintenanceA server built on the Model Context Protocol that enables controlling the Unitree Go2 robot using natural language commands, which are translated into ROS2 instructions for the robot to perform corresponding actions.1287Apache 2.0
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that connects LLMs with Autodesk Fusion, enabling CAD operations through natural language dialogue.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to control Universal Robots through real-time connection management, status monitoring, and precise joint/linear motion control. Provides safe robot operation with built-in collision detection and simulation mode for development without physical hardware.6GPL 3.0