tooluniverse.remote_tool module

Remote Tool Implementation

This module provides a RemoteTool class that represents external MCP/SMCP tools that are available for listing but cannot be executed locally. These tools are stored as configuration records only.

class tooluniverse.remote_tool.BaseTool(tool_config)[source][source]

Bases: object

__init__(tool_config)[source][source]
classmethod get_default_config_file()[source][source]

Get the path to the default configuration file for this tool type.

This method uses a robust path resolution strategy that works across different installation scenarios:

  1. Installed packages: Uses importlib.resources for proper package resource access

  2. Development mode: Falls back to file-based path resolution

  3. Legacy Python: Handles importlib.resources and importlib_resources

Override this method in subclasses to specify a custom defaults file.

Returns:

Path or resource object pointing to the defaults file

classmethod load_defaults_from_file()[source][source]

Load defaults from the configuration file

run(arguments=None)[source][source]

Execute the tool.

The default BaseTool implementation accepts an optional arguments mapping to align with most concrete tool implementations which expect a dictionary of inputs.

check_function_call(function_call_json)[source][source]
get_required_parameters()[source][source]

Retrieve required parameters from the endpoint definition. Returns: list: List of required parameters for the given endpoint.

tooluniverse.remote_tool.register_tool(tool_type_name=None, config=None)[source][source]

Decorator to automatically register tool classes and their configs.

Usage:

@register_tool(‘CustomToolName’, config={…}) class MyTool:

pass

class tooluniverse.remote_tool.RemoteTool(tool_config=None)[source][source]

Bases: BaseTool

A placeholder tool class for external MCP/SMCP tools.

RemoteTool represents tools that are hosted on external MCP/SMCP servers and are only available for discovery and listing purposes. These tools cannot be executed locally through ToolUniverse but their configurations are preserved for reference.

tool_config[source]

The tool configuration dictionary

Type:

dict

remote_info[source]

Information about the remote server and tool

Type:

dict

__init__(tool_config=None)[source][source]

Initialize the RemoteTool.

Parameters:

tool_config (dict, optional) – Tool configuration dictionary

run(arguments=None)[source][source]

Placeholder run method for remote tools.

Remote tools cannot be executed locally. This method always returns an error message indicating that the tool is not available for local execution.

Parameters:

arguments (dict, optional) – Tool arguments (ignored)

Returns:

Error message indicating the tool is not available locally

Return type:

dict

get_remote_info()[source][source]

Get information about the remote server hosting this tool.

Returns:

Remote server information including server type, URL, and original tool type

Return type:

dict

is_available_locally()[source][source]

Check if this tool is available for local execution.

Returns:

Always False for RemoteTool instances

Return type:

bool

get_server_info()[source][source]

Get server connection information for this remote tool.

Returns:

Server connection details

Return type:

dict