Skip to main content
Glama
nonead

Nonead Universal-Robots MCP Server

by nonead

get_joint_temperatures

Retrieves the temperature (in Celsius) of each joint from a Universal Robot at a specified IP address.

Instructions

获取指定IP机器人各关节的温度(摄氏度)。 IP:机器人地址

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ipYes

Implementation Reference

  • The main handler function that implements the 'get_joint_temperatures' tool using @mcp.tool() decorator. It checks connection via link_check, then calls robotModle_list[ip].JointTemperatures() to retrieve joint temperatures from the robot model.
    @mcp.tool()
    def get_joint_temperatures(ip: str):
        """获取指定IP机器人各关节的温度(摄氏度)。
        IP:机器人地址"""
        try:
            if '连接失败' in link_check(ip):
                return return_msg(f"与机器人的连接已断开。")
            logger.info(f"{robotModle_list[ip].JointTemperatures()}(摄氏度)")
            return return_msg(f"{robotModle_list[ip].JointTemperatures()}(摄氏度)")
        except Exception as e:
            logger.error(f"机器人各关节的温度获取失败: {str(e)}")
            return return_msg(f"机器人各关节的温度获取失败: {str(e)}")
  • Getter method on the RobotModel class that returns the joint_temperatures value from the data dictionary.
    def JointTemperatures(self):
        return self.dataDir['joint_temperatures']
  • Data field initialization in RobotModel.__init__ where 'joint_temperatures' is defined in the dataDir dictionary.
    'joint_temperatures': None,
  • Helper function used to format return messages as JSON strings.
    def return_msg(txt: str):
        return json.dumps(txt, indent=2, ensure_ascii=False)
  • The @mcp.tool() decorator registers this function as an MCP tool named 'get_joint_temperatures'.
    @mcp.tool()
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It does not disclose whether the operation is read-only, requires authentication, has rate limits, or what the response structure looks like. The word 'Get' implies a read operation, but this is not stated explicitly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (one sentence and a fragment), front-loaded with the core purpose. Every word is necessary, but the brevity sacrifices completeness. Could be expanded slightly without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has low complexity (one param, no output schema). The description covers purpose and parameter meaning but omits output details (e.g., data structure, number of joints). For an AI agent, this is minimally adequate but leaves room for misinterpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for the 'ip' parameter. The description clarifies that 'IP' is the robot address, adding meaning beyond the schema. However, no format or validation constraints are mentioned, and with only one parameter, more detail (e.g., IPv4 format) would help.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (获取/Get) and the resource (joint temperatures of a robot specified by IP), and distinguishes from sibling tools like get_actual_joint_current by focusing on temperature. The unit (摄氏度/Celsius) is provided, leaving no ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool over alternatives (e.g., get_actual_joint_current) or prerequisites (e.g., robot connectivity). The agent must infer usage context from the tool name and description, which is insufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nonead/Nonead-Universal-Robots-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server