Skip to main content
Glama
PurdueRCAC

Globus MCP Server

by PurdueRCAC

Globus MCP Server

⚠️ Beta Software — This project is under active development and has not reached a stable v1.0.0 release. APIs, tool signatures, and behavior may change without notice. Use with caution in production workflows.

Globus MCP Server gives AI agents federated data transfer and remote code execution across research storage systems at institutions worldwide.

It wraps the Globus CLI for data transfer and the Globus Compute SDK for remote Python execution on HPC endpoints.

Prerequisites

  1. Globus Connect Personal (optional): For transfers to/from your local machine

Related MCP server: MCP SSH Server

Quick Start

For MCP-enabled applications like Claude Desktop, Cursor, or Warp, add this server to your MCP configuration:

{
  "mcpServers": {
    "globus": {
      "command": "uvx",
      "args": ["git+https://github.com/purduercac/globus-mcp"]
    }
  }
}

The uvx invocation handles installation automatically. On first use, the server's globus_login() and compute_login() tools will walk users through authentication via the browser.

Common Workflows

Find and Browse Endpoints

endpoint_search("purdue")  # Returns list with UUIDs
ls("endpoint-uuid", "/path/to/dir")

Transfer Data

task_id = transfer(
    source_endpoint="src-uuid",
    source_path="/data/file.tar",
    dest_endpoint="dst-uuid",
    dest_path="/scratch/file.tar"
)
task_wait(task_id)

Some Globus Connect Server v5 collections require endpoint-specific consent. If an operation fails with ConsentRequired, the server returns a structured error with the required scopes. Agents call session_consent(scopes) to open the browser, then retry the original operation.

Remote Code Execution (Globus Compute)

# Submit a Python function to run on a remote HPC endpoint
compute_submit(
    endpoint_id="compute-endpoint-uuid",
    function_source="def analyze(n):\n    import numpy as np\n    return np.random.rand(n).mean()",
    function_name="analyze",
    requirements="numpy",
    args=[10000],
)

# Check results later
compute_result("task-uuid", timeout=300)

When requirements is provided, the server automatically provisions a cached virtual environment on the remote endpoint using uv.

Available Tools

Identity & Auth

  • whoami() — Show logged-in identity

  • globus_login() — Initiate Globus CLI OAuth login

  • session_consent(scopes) — Grant endpoint-specific data access consent

Endpoints

  • endpoint_search(query) — Find Transfer endpoints by name

  • endpoint_show(endpoint_id) — Get endpoint details

  • endpoint_local_id() — Get local GCP endpoint UUID

Filesystem

  • ls(endpoint_id, path) — List directory contents

  • stat(endpoint_id, path) — Get file/directory metadata

  • mkdir(endpoint_id, path) — Create directory

  • rename(endpoint_id, source_path, dest_path) — Rename or move

  • rm(endpoint_id, path) — Delete (synchronous)

  • delete(endpoint_id, path) — Delete (async task)

Transfers

  • transfer(...) — Submit async transfer task

  • transfer_batch(...) — Batch transfer (multiple file pairs)

  • task_list() — List recent tasks

  • task_show(task_id) — Get task details

  • task_wait(task_id) — Wait for task completion

  • task_cancel(task_id) — Cancel a running task

  • task_event_list(task_id) — Get task events

Compute (Remote Code Execution)

  • compute_login() — Authenticate with Globus Compute

  • compute_endpoint_list() — List accessible Compute endpoints

  • compute_endpoint_status(endpoint_id) — Check endpoint availability

  • compute_submit(...) — Submit a Python function for remote execution

  • compute_batch_submit(...) — Submit multiple functions as a batch

  • compute_status(task_ids) — Check task status (non-blocking)

  • compute_result(task_id) — Get task result (optionally wait)

Development

uv sync
uv run globus-mcp --help
uv run pytest -q

Contributors — human or agent — should start with AGENTS.md, the repository's operating manual: architecture, the load-bearing invariants, and the process rules.

Non-trivial work flows through the spec-driven software factory under .agents//globus-feature/globus-plan/globus-build/globus-review/globus-publish, each cycle on its own branch with its design record retained under spec/{slug}/. See .agents/factory/methodology.md for the why, and ROADMAP.md for what is queued.

One rule is worth repeating outside that documentation, because it is easy to violate by reflex: no test, verify command, or review drive may call a tool that mutates remote statetransfer, rm, delete, compute_submit and friends act on production research infrastructure. Drive the server hermetically instead:

uv run python .agents/factory/bin/mcp_probe.py          # in-memory MCP round-trip, no network
.agents/factory/bin/temp_home.sh uv run pytest -q        # …with Globus credentials unreachable

Known defects reproduced on main are listed in AGENTS.md § Known defects, each with a seed under issues/.

License

MIT

Available Tools

26 tools
compute_batch_submitA

Submit multiple Python functions as a batch to a Compute endpoint.

Each task in the list provides its own function source code and arguments. All tasks share the same endpoint and requirements/worker_init config.

Args: endpoint_id: UUID of the target Compute endpoint. tasks: List of task dicts, each containing: - 'function_source': Python source code (required) - 'function_name': Name of the function (required) - 'args': Positional arguments (optional, default []) - 'kwargs': Keyword arguments (optional, default {}) requirements: Shared pip requirements for all tasks. python_version: Python version for the remote venv. user_endpoint_config: Additional endpoint configuration.

Returns: Dict with 'task_ids' (list) and 'function_ids' (dict mapping function_name to function UUID).

Examples: compute_batch_submit( endpoint_id="abcd-1234-...", tasks=[ {"function_source": "def f1():\n return 1", "function_name": "f1"}, {"function_source": "def f2(x):\n return x*2", "function_name": "f2", "args": [21]}, ], )

ParametersJSON Schema
NameRequiredDescriptionDefault
endpoint_idYes
tasksYes
requirementsNo
python_versionNo
user_endpoint_configNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It explains submission process, shared config, and return IDs, but omits execution model (async vs sync), error handling, auth needs, or side effects (e.g., resource creation).

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?

Well-structured with Args, Returns, Examples sections and front-loaded purpose. Slightly verbose in describing shared config, but overall efficient.

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

Completeness4/5

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

Comprehensive for a batch submit tool: covers inputs, output (task_ids and function_ids), and shared config. Missing error scenarios, limits, and permission requirements, but sufficient given output schema existence.

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

Parameters5/5

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

With 0% schema coverage, description fully compensates by detailing every parameter, including nested task fields (function_source, function_name, args, kwargs) and optional configs, plus a concrete example.

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?

Clear verb 'submit' with specific resource 'multiple Python functions as a batch', directly distinguishing from sibling compute_submit (single function). The term 'batch' and mention of shared config reinforce unique scope.

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

Usage Guidelines4/5

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

Description implies batch submission for multiple tasks with shared endpoint and config, contrasting with single-task submit. However, it lacks explicit when-not-to-use or alternative references beyond the name.

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

compute_endpoint_listA

List Globus Compute endpoints accessible to the current user.

Use this to find the UUID of a Compute endpoint when the user refers to one by name (e.g. "run this at Argonne"). Match the user's request against the display names in the returned list. If no match is found, ask the user to provide the endpoint UUID directly.

Note: Compute endpoints are NOT searchable by keyword like Transfer endpoints. This tool only returns endpoints the user has access to.

Args: role: Filter by user's relationship to the endpoint. 'any' (default) returns all accessible endpoints. 'owner' returns only endpoints the user owns.

Returns: List of endpoint dicts with 'uuid', 'name', 'status', and other metadata.

Examples: compute_endpoint_list() compute_endpoint_list(role="owner")

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoany

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

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

Thoroughly describes that only accessible endpoints are returned and includes role filtering. While read-only nature is implied, no annotations exist, and the description does not explicitly state it is side-effect-free, but the level of detail is high.

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

Conciseness5/5

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

The description is concise yet comprehensive, with clear sections (purpose, note, args, returns, examples). Each sentence adds value, and the structure allows quick scanning.

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

Completeness5/5

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

Given the presence of an output schema, the description adequately summarizes the return format. It covers the core functionality, parameter, and provides examples, leaving no 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.

Parameters5/5

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

The description provides complete semantic detail for the 'role' parameter beyond the bare schema: it defines the filter, lists acceptable values ('any', 'owner'), and specifies the default, fully compensating for 0% schema description coverage.

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 'List Globus Compute endpoints accessible to the current user' and explains its use for finding a UUID by name, distinguishing it from siblings like compute_endpoint_status and endpoint_search.

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

Usage Guidelines5/5

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

Explicitly advises when to use (to match user's request against display names) and when not to (keyword search not available as for Transfer endpoints), with a clear fallback instruction to ask for UUID.

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

compute_endpoint_statusA

Check whether a Globus Compute endpoint is online.

Call this before submitting tasks to verify the endpoint is available.

Args: endpoint_id: UUID of the Compute endpoint.

Returns: Dict with endpoint status information including whether it is online and ready to accept tasks.

Examples: compute_endpoint_status("abcd-1234-...")

ParametersJSON Schema
NameRequiredDescriptionDefault
endpoint_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Without annotations, the description discloses that the tool is a read-only check with no side effects, and specifies the return includes online status and readiness. No hidden behaviors are indicated.

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

Conciseness5/5

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

The description is concise with a clear structure: purpose, usage guidance, args, returns, and an example. Every sentence provides value without redundancy.

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

Completeness5/5

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

Given one simple parameter, the description fully covers purpose, usage, parameter meaning, and return type. The example aids clarity, making it complete for this tool.

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

Parameters4/5

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

With 0% schema description coverage, the description adds meaning by stating endpoint_id is a UUID of the Compute endpoint, beyond the schema's bare string type.

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 tool checks endpoint online status, with specific verb 'Check' and resource 'whether a Globus Compute endpoint is online'. It distinguishes from siblings like compute_submit by noting its role as a prerequisite check.

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

Usage Guidelines4/5

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

The description explicitly advises using this tool before submitting tasks to verify availability, providing clear context. However, it does not list explicit alternatives 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.

compute_loginA

Initiate Globus Compute OAuth login flow.

Opens the default web browser to authenticate with Globus Compute. This is separate from the Globus CLI login used for transfers. You must authenticate with Compute before submitting tasks.

Returns: Status message indicating login result.

Note: This opens a browser window. The user must complete login there.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

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

Discloses that it opens a browser window and requires user interaction to complete login. No annotations are provided, so the description carries the full burden. It could mention that this is a non-blocking call, but the behavior is well explained.

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

Conciseness5/5

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

Concise, structured with sections for behavior, note, and returns. Every sentence adds value, no fluff. Front-loaded with key action and differentiation.

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

Completeness5/5

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

Given no parameters and existence of output schema, the description fully covers the tool's purpose, behavioral side effects, and return value. Complete for a simple login tool.

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

Parameters5/5

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

Input schema has zero parameters, so description adds essential context about the login flow being browser-based and separate from CLI login. Schema coverage is 100%, and description enhances understanding.

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?

Clearly states the tool initiates Globus Compute OAuth login flow, distinguishing it from the Globus CLI login used for transfers. The verb 'initiate' and resource 'Globus Compute OAuth login flow' are specific, and the sibling tool 'globus_login' is explicitly differentiated.

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

Usage Guidelines5/5

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

Explicitly states when to use (before submitting compute tasks) and when not to (for transfers, use Globus CLI login). Directly mentions the alternative 'globus_login' for transfers, providing clear guidance.

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

compute_resultA

Get the result of a Compute task.

Without a timeout, this does a single non-blocking check. With a timeout, it polls with exponential backoff until the task completes or the timeout is reached.

Args: task_id: UUID of the task. timeout: Maximum seconds to wait. If None, checks once without blocking.

Returns: Dict with 'status' ('success', 'failed', or 'pending') and either 'result' (the function's return value) or 'exception'.

Examples: compute_result("task-uuid") compute_result("task-uuid", timeout=300)

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
timeoutNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

No annotations provided, so description carries full burden. It transparently describes non-blocking vs. polling behavior, exponential backoff, and the exact return structure (status, result, exception).

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

Conciseness5/5

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

Description is well-structured with sections for purpose, behavior, args, returns, and examples. Every sentence adds value without redundancy.

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

Completeness5/5

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

Given the tool's simplicity and presence of an output schema, the description covers all necessary aspects: input parameters, behavior variants, return format, and usage examples.

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

Parameters5/5

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

With 0% schema coverage, description compensates fully. It explains 'task_id' as UUID of the task and 'timeout' with semantics of blocking vs. non-blocking, including default, and provides concrete examples.

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 'Get the result of a Compute task' with specific verb and resource. It distinguishes from sibling tools like compute_submit and task_wait by focusing on result retrieval.

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

Usage Guidelines4/5

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

The description explains when to use the tool: to retrieve task results. It details non-blocking behavior without timeout and polling with timeout, but does not explicitly mention when not to use it or direct alternatives among siblings.

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

compute_statusA

Check the status of one or more Compute tasks (non-blocking).

Args: task_ids: List of task UUID strings returned by compute_submit() or compute_batch_submit().

Returns: Dict mapping each task_id to its status info: - 'pending': True if the task is still running - 'status': 'success', 'failed', or a waiting state - 'result': The return value (only if complete and successful) - 'exception': Error info (only if failed)

Examples: compute_status(["task-uuid-1", "task-uuid-2"])

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden. It explains that the tool is non-blocking and details the return values including pending, status, result, and exception. This gives a clear picture of behavior.

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

Conciseness5/5

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

The description is concise at 6 lines, structured with Args, Returns, Examples. Every part is informative with no unnecessary text.

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

Completeness5/5

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

Given the simple single-parameter tool and the presence of an output schema, the description is complete. It covers the parameter, return values, and usage pattern, leaving no gaps for an AI agent.

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

Parameters5/5

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

With 0% schema description coverage, the description compensates fully. It explains that task_ids are list of UUID strings from specific submission tools and provides an example usage, adding meaning beyond the schema.

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 tool checks the status of Compute tasks, non-blocking. It uses a specific verb 'check' and resource 'status of Compute tasks', distinguishing it from siblings like compute_submit which submit tasks.

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

Usage Guidelines4/5

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

The description specifies that task_ids should come from compute_submit or compute_batch_submit, implying context. However, it does not explicitly state when not to use this tool vs alternatives like task_wait, which would be a blocking equivalent.

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

compute_submitA

Submit a Python function for remote execution on a Globus Compute endpoint.

The function is provided as Python source code. All imports MUST be inside the function body. The function is registered, then submitted asynchronously — this tool returns immediately with a task ID.

IMPORTANT: If your function uses any third-party packages, you MUST provide a 'requirements' string listing them (one per line, like a requirements.txt). This is used to provision a virtual environment on the remote endpoint automatically.

Args: endpoint_id: UUID of the target Compute endpoint. Use compute_endpoint_list() to find available endpoints. function_source: Python source code containing the function. Example: "def analyze(data_path):\n import pandas as pd\n ..." function_name: Name of the function defined in function_source. requirements: Newline-separated pip requirements for the function's dependencies (e.g. "numpy\npandas>=2.0\nscipy"). Omit if the function only uses the standard library. args: Positional arguments to pass to the function. kwargs: Keyword arguments to pass to the function. python_version: Python version for the remote venv (e.g. "3.12"). Defaults to the version running in this server. user_endpoint_config: Additional endpoint configuration. If this contains a 'worker_init' key, it overrides the auto-generated worker_init from requirements.

Returns: Dict with 'task_ids' (list of task UUID strings) and 'function_id'.

Examples: compute_submit( endpoint_id="abcd-1234-...", function_source="def hello():\n return 'Hello from HPC!'", function_name="hello", )

compute_submit(
    endpoint_id="abcd-1234-...",
    function_source="def analyze(n):\n    import numpy as np\n    return np.random.rand(n).mean()",
    function_name="analyze",
    requirements="numpy",
    args=[1000],
)
ParametersJSON Schema
NameRequiredDescriptionDefault
endpoint_idYes
function_sourceYes
function_nameYes
requirementsNo
argsNo
kwargsNo
python_versionNo
user_endpoint_configNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Discloses asynchronous behavior, registration step, return format (task_ids and function_id), and auto-generation of worker_init. Does not mention error handling or timeouts, but covers key behaviors.

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

Conciseness5/5

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

Well-structured with overview, important note, Args section, Returns, and Examples. Each sentence adds value, no redundancy. Front-loaded with purpose. Efficient use of space given the complexity.

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

Completeness4/5

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

Given the complexity (8 parameters, no annotations, output schema exists), the description is thorough. Covers workflow, parameter details, constraints, and examples. Could mention that function_source must be a valid function definition, but this is implied.

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

Parameters5/5

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

Schema coverage is 0%, and description compensates fully. Each parameter is explained with purpose, format, and defaults. Examples demonstrate usage for multiple scenarios, including optional parameters like requirements and args. Adds significant value beyond the schema.

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 tool submits a Python function for remote execution on a Globus Compute endpoint. It uses a specific verb ('submit') and identifies the resource ('Python function for remote execution'). It distinguishes from sibling tools like compute_batch_submit and compute_result by focusing on single function submission.

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

Usage Guidelines4/5

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

Provides context on asynchronous submission, immediate return, and requirements for third-party packages. References sibling tool compute_endpoint_list() for finding endpoints. Does not explicitly state when not to use this tool or compare to alternatives, but the constraints are clear.

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

deleteA

Submit an async delete task.

Unlike rm, this returns immediately with a task_id. Use task_show or task_wait to monitor progress.

Args: endpoint_id: The UUID of the endpoint. path: Path to the file or directory to delete. recursive: If True, recursively delete directories. ignore_missing: If True, don't error if path doesn't exist. label: Optional label for the task.

Returns: Dict with 'task_id' for the submitted delete task.

Examples: result = delete("endpoint-uuid", "/scratch/large_dir", recursive=True) task_wait(result['task_id'])

ParametersJSON Schema
NameRequiredDescriptionDefault
endpoint_idYes
pathYes
recursiveNo
ignore_missingNo
labelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior4/5

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

Discloses async behavior, return value (task_id), and parameters like recursive and ignore_missing. Could mention irreversibility or permissions but sufficient for context.

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

Conciseness5/5

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

Well-structured with separate sections for description, args, returns, and examples. Every sentence adds value without redundancy.

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

Completeness5/5

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

Covers all aspects: async operation, parameter details, monitoring method, and example. Output schema exists for task_id, which is described in 'Returns'.

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

Parameters5/5

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

All five parameters are explained in the Args section with clear meanings (endpoint_id, path, recursive, ignore_missing, label), compensating for 0% schema description coverage.

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?

Clearly states it submits an async delete task, distinguishes from synchronous 'rm' sibling by noting it returns immediately with a task_id.

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

Usage Guidelines5/5

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

Explicitly contrasts with 'rm' and directs to use task_show/task_wait for monitoring. Provides example usage and parameter descriptions.

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

endpoint_local_idA

Get the UUID of the locally installed Globus Connect Personal endpoint.

Returns the endpoint ID for your local machine, which can be used as a source or destination for transfers.

Returns: The UUID string of the local GCP endpoint.

Raises: GlobusError: If Globus Connect Personal is not installed or running.

Examples: local_ep = endpoint_local_id() transfer(local_ep, "/path/to/file", remote_ep, "/dest/path")

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses that the tool returns a UUID string and raises GlobusError if GCP is not installed or running. No annotations are present, but the description adequately covers behavioral traits for a simple 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.

Conciseness4/5

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

The description is concise with a clear first sentence, followed by return info, error conditions, and an example. Slightly verbose with separate lines for Returns/Raises but still efficient.

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

Completeness4/5

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

Given zero parameters and an existing output schema, the description is complete: it explains the return value, error case, and provides a usage example. No gaps are apparent.

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

Parameters4/5

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

The tool has zero parameters and schema coverage is 100%. A baseline of 4 is appropriate as the description adds no unnecessary details about parameters.

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 tool's purpose: 'Get the UUID of the locally installed Globus Connect Personal endpoint.' It specifies the verb (Get) and resource (UUID of local GCP endpoint), and distinguishes from siblings like endpoint_search by being local-specific.

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

Usage Guidelines4/5

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

It explains the returned ID can be used as a source or destination for transfers, providing an example with transfer(). While it doesn't explicitly list when not to use, the context is clear and sufficient for selecting this tool.

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

endpoint_showA

Get detailed information about a specific endpoint.

Args: endpoint_id: The UUID of the endpoint.

Returns: Dict with full endpoint details including display_name, owner, entity_type, description, contact info, and capabilities.

Examples: endpoint_show("ddb59aef-6d04-11e5-ba46-22000b92c6ec")

ParametersJSON Schema
NameRequiredDescriptionDefault
endpoint_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so the description bears full burden. It states it returns a dict with details, implying a read operation. However, it does not explicitly confirm read-only, mention authentication needs, or discuss side effects. Adequate for a simple lookup tool.

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

Conciseness5/5

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

The description is brief, well-structured with a summary line, args section, returns section, and an example. Every part is relevant and no redundancy.

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

Completeness5/5

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

For a tool with one parameter and an output schema, the description covers purpose, parameter meaning, return fields, and provides an example. It is complete for its simplicity.

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

Parameters5/5

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

The input schema has 0% description coverage, but the description explains the param as 'The UUID of the endpoint' and provides an example call. This adds meaningful context beyond the schema's bare type definition.

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 'Get detailed information about a specific endpoint', specifying the verb 'Get' and the resource 'endpoint'. The example further clarifies usage with a UUID. This distinguishes it from siblings like 'endpoint_search' (search) and 'compute_endpoint_list' (list).

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

Usage Guidelines3/5

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

The description implies when to use (have an endpoint UUID) but does not explicitly compare to alternatives like endpoint_search or compute_endpoint_list. No guidance on when not to use or prerequisites. Minimal but not absent.

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

globus_loginA

Initiate Globus OAuth login flow.

Opens the default web browser to complete authentication. After authenticating, the user's credentials are stored locally and subsequent API calls will be authenticated.

Returns: Status message indicating login was initiated.

Note: This opens a browser window for OAuth authentication. The user must complete the login in their browser.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

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

No annotations are provided, but the description fully discloses that it opens a browser, stores credentials locally, requires user completion in browser, and returns a status message. This is thorough for a login tool.

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

Conciseness5/5

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

The description is concise with clear sections, each sentence adds value. It is appropriately sized and front-loaded with the core action.

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

Completeness5/5

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

Given no parameters and an output schema (implied by return value description), the description covers the login flow, browser interaction, credential storage, and return status. It is complete for this tool.

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

Parameters4/5

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

There are no parameters, so the schema provides complete coverage. The description adds behavioral context (browser opening, authentication flow) beyond the schema, which is helpful but not parameter-specific.

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 it initiates the Globus OAuth login flow, specifying the verb 'Initiate' and the resource. It distinguishes itself from sibling tools like compute_login by mentioning 'Globus OAuth' and the browser-based flow.

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

Usage Guidelines3/5

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

The description implies when to use (first step for authentication) but does not explicitly state when not to use or mention alternative tools. It provides clear context but lacks explicit exclusions.

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

lsA

List the contents of a directory on a Globus endpoint.

Args: endpoint_id: The UUID of the endpoint. path: Directory path to list. If None, lists the default directory. all: If True, show hidden files (those starting with '.'). long: If True, include detailed metadata (size, permissions, dates). recursive: If True, recursively list subdirectories (up to depth 3).

Returns: List of file/directory entries. Each entry includes 'name', 'type' ('file' or 'dir'), and optionally 'size', 'last_modified', etc.

Examples: ls("endpoint-uuid", "/home/user") ls("endpoint-uuid", "/data", all=True, long=True) ls("endpoint-uuid", "/project", recursive=True)

ParametersJSON Schema
NameRequiredDescriptionDefault
endpoint_idYes
pathNo
allNo
longNo
recursiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description must disclose behavior. It explains the recursive depth limit (up to 3), hidden file handling (all flag), and detailed metadata (long flag). However, it does not mention error handling or permission requirements.

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?

Well-structured with Args, Returns, and Examples sections. The description is not overly verbose but could be slightly more concise (e.g., avoid repeating 'if None'). Every sentence adds value.

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

Completeness4/5

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

Given an output schema exists (as per context), the description covers the main behavior and return structure. It lacks details on error cases or default directory behavior, but is sufficient for basic usage.

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

Parameters5/5

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

Schema description coverage is 0%, so the description fully explains all 5 parameters with purpose and effects. Examples demonstrate combined usage. Each parameter (endpoint_id, path, all, long, recursive) is clearly described.

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 it 'list the contents of a directory' on a Globus endpoint, using a specific verb and resource. It distinguishes itself from sibling tools like mkdir, rm, and transfer by focusing on listing operations.

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 explicit guidance on when to use this tool versus alternatives (e.g., stat for single file metadata, transfer for file movement). The description includes default behavior hints (e.g., path=None) but lacks comparisons or when-not-to-use conditions.

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

mkdirA

Create a directory on a Globus endpoint.

Args: endpoint_id: The UUID of the endpoint. path: Path where the directory should be created.

Returns: Dict with 'message' confirming creation and 'code'.

Examples: mkdir("endpoint-uuid", "/scratch/user/new_project") mkdir("endpoint-uuid", "/data/output")

ParametersJSON Schema
NameRequiredDescriptionDefault
endpoint_idYes
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

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

Annotations are absent, so the description carries the burden. It mentions return type (dict with 'message' and 'code') but fails to disclose critical behavior such as error handling (e.g., if directory already exists), required permissions, or whether parent directories are created.

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

Conciseness5/5

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

The description is concise (80 words) and well-structured with Args, Returns, and Examples. Every sentence is informative, with no waste.

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

Completeness4/5

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

Given the tool's simplicity (2 required parameters) and presence of an output schema (though not shown), the description adequately covers purpose, parameters, return value, and examples. Minor lack of behavior on existing directories prevents a perfect score.

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

Parameters5/5

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

Schema coverage is 0%, so the description must fully explain parameters. It does so clearly: endpoint_id is 'The UUID of the endpoint' and path is 'Path where the directory should be created', adding substantial meaning beyond the property names.

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 'Create a directory' on a specific resource 'Globus endpoint', with a specific verb and resource. It distinguishes from sibling tools like ls, rm, transfer, which have different purposes.

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 versus alternatives. It does not mention prerequisites or scenarios where mkdir is appropriate compared to other tools like transfer or rename.

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

renameA

Rename or move a file or directory on a Globus endpoint.

The source path must exist. The destination path must not exist. Most endpoints require the destination to be on the same filesystem.

Args: endpoint_id: The UUID of the endpoint. source_path: Current path of the file or directory. dest_path: New path for the file or directory.

Returns: Dict with 'message' confirming the rename and 'code'.

Examples: rename("endpoint-uuid", "/data/old_name.txt", "/data/new_name.txt") rename("endpoint-uuid", "/scratch/temp", "/scratch/results")

ParametersJSON Schema
NameRequiredDescriptionDefault
endpoint_idYes
source_pathYes
dest_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses preconditions and return format, but lacks details on permissions, error behavior, or idempotency. Minimal but adequate for basic understanding.

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

Conciseness5/5

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

The description is well-structured: purpose first, then preconditions, parameter list, return value, and examples. Every sentence adds value, with no redundancy or unnecessary detail.

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

Completeness4/5

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

Covers purpose, parameters, preconditions, return value, and gives practical examples. Missing error handling or permission requirements, but for a simple rename operation this is largely sufficient.

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

Parameters4/5

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

Schema description coverage is 0%, but the description includes an 'Args' section with concise descriptions for all three parameters (endpoint_id as UUID, source_path as current path, dest_path as new path), effectively compensating for the schema gap.

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 'Rename or move a file or directory on a Globus endpoint,' specifying the action and resource. It distinguishes from siblings like 'transfer' which handles cross-endpoint moves, 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.

Usage Guidelines4/5

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

Provides clear preconditions: source must exist, destination must not exist, and most endpoints require same filesystem. Does not explicitly compare to alternatives, but context signals (sibling list) allow inference, so usage guidance is adequate.

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

rmA

Delete a file or directory and wait for completion.

Submits a delete task and blocks until it completes. Use this when you need to ensure deletion is finished before proceeding.

Args: endpoint_id: The UUID of the endpoint. path: Path to the file or directory to delete. recursive: If True, recursively delete directories. ignore_missing: If True, don't error if path doesn't exist. timeout: Maximum seconds to wait. If None, waits indefinitely.

Returns: Dict with task status after completion, including 'status' field.

Examples: rm("endpoint-uuid", "/scratch/temp_file.txt") rm("endpoint-uuid", "/scratch/old_dir", recursive=True) rm("endpoint-uuid", "/data/maybe_exists.txt", ignore_missing=True)

ParametersJSON Schema
NameRequiredDescriptionDefault
endpoint_idYes
pathYes
recursiveNo
ignore_missingNo
timeoutNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that the tool submits a delete task and blocks until complete, explains parameters like recursive, ignore_missing, timeout, and mentions return value. Good transparency, but could mention error behavior.

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

Conciseness5/5

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

Well-structured with summary, explanation, Args, Returns, and Examples. Every sentence adds value; no wasted words. Appropriate length for the tool complexity.

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

Completeness5/5

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

Covers purpose, usage guidance, parameter details, behavioral notes, return info, and examples. Given an output schema exists, the description is complete enough for an agent to select and invoke correctly.

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

Parameters5/5

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

Schema has 0% description coverage; the description compensates fully by documenting all 5 parameters in Args section with clear explanations and examples, adding substantial meaning beyond the schema.

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 'Delete a file or directory and wait for completion' with a specific verb and resource. It distinguishes the blocking nature from potential asynchronous siblings like 'delete' or task-based tools.

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

Usage Guidelines4/5

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

Explicitly says 'Use this when you need to ensure deletion is finished before proceeding.' Provides clear context for when to use, though does not explicitly list alternatives or when not to use.

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

statA

Get the status/metadata of a file or directory on an endpoint.

Args: endpoint_id: The UUID of the endpoint. path: Path to the file or directory.

Returns: Dict with metadata including 'name', 'type', 'size', 'last_modified', 'permissions', 'user', 'group'.

Examples: stat("endpoint-uuid", "/data/results.tar.gz") stat("endpoint-uuid", "/project/src")

ParametersJSON Schema
NameRequiredDescriptionDefault
endpoint_idYes
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden of behavioral transparency. It indicates a read-only operation ('status/metadata') and details the return fields. It does not mention side effects (none expected) or error handling, but the basic behavior is well-covered.

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

Conciseness5/5

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

The description is structured as a docstring with clear sections (Args, Returns, Examples). It is concise, with no unnecessary words, and front-loads the purpose. Every sentence adds value.

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

Completeness5/5

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

The tool is simple with two parameters and a well-documented return format. The description covers all necessary information for an agent to use it correctly, even without an output schema. It is complete for the given complexity.

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

Parameters5/5

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

The description explicitly defines both parameters with types and purposes: 'endpoint_id: The UUID of the endpoint' and 'path: Path to the file or directory'. Since schema coverage is 0%, this fully compensates by adding meaning beyond the raw schema.

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 verb 'Get' and resource 'status/metadata of a file or directory on an endpoint'. It distinguishes from sibling tools like 'ls' (which lists directory contents) by focusing on metadata retrieval.

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

Usage Guidelines3/5

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

The description provides examples that illustrate typical usage but does not explicitly state when to use this tool versus alternatives, such as when to prefer 'ls' for listing or 'stat' for metadata. No exclusion criteria or prerequisites are mentioned.

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

task_cancelA

Cancel a running or queued task.

Cancels a specific task by ID, or all your in-progress tasks with --all. You must provide either a task_id or set all=True.

Args: task_id: The UUID of the task to cancel. Optional if all=True. all: If True, cancel all your in-progress tasks.

Returns: Dict with cancellation confirmation.

Raises: ValueError: If neither task_id nor all=True is provided.

Examples: task_cancel("abc123-def456-...") task_cancel(all=True) # Cancel all your tasks

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idNo
allNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

No annotations are provided, so the description fully carries the burden. It states the tool cancels tasks, implies destructive action, and scopes it to the user's in-progress tasks. It mentions a confirmation dict in return but does not detail irreversibility or side effects, which is acceptable for a cancellation action.

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 well-structured with a summary line, bullet points, and examples. It is front-loaded with the main action. Some minor redundancy (e.g., 'Dict with cancellation confirmation') could be trimmed, but overall efficient.

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

Completeness5/5

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

Given that an output schema exists (not shown but indicated in context), the description need not explain return values. It covers input, exceptions, and examples thoroughly. No gaps remain for a cancellation tool.

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

Parameters5/5

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 thoroughly explains both parameters: task_id (UUID string, optional if all=True) and all (boolean). It adds the context that at least one must be provided, with examples showing exact usage patterns.

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 that the tool cancels running or queued tasks, distinguishing between canceling by ID or all tasks. It uses the specific verb 'cancel' on the 'task' resource and differentiates from sibling tools like task_list, task_show, task_wait, and task_event_list.

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

Usage Guidelines5/5

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

Explicitly provides when to use each parameter: either provide task_id or set all=True. Includes a ValueError condition if neither is provided, and gives two clear examples demonstrating both use cases.

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

task_event_listA

Get recent events for a task.

Shows events including faults (non-fatal errors like permission denied) that occurred during task execution. Useful for debugging transfer issues.

Note: Tasks older than one month may no longer have event history.

Args: task_id: The UUID of the task. limit: Maximum number of events to return (default 10). filter_errors: If True, only show error events. filter_non_errors: If True, only show non-error events.

Returns: List of event dicts with 'time', 'code', 'description', 'details'.

Examples: task_event_list("abc123-...") task_event_list("abc123-...", filter_errors=True) # Only errors

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
limitNo
filter_errorsNo
filter_non_errorsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It reveals that events include faults, tasks older than a month may lack history, and the return format. Missing explicit mention of read-only nature or potential side effects, but the behavior is adequately conveyed.

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

Conciseness5/5

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

The description is well-structured with a brief intro, a note, and separate sections for Args, Returns, and Examples. Every sentence adds value, and the key information is front-loaded.

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

Completeness4/5

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

Given 4 parameters and an existing output schema, the description covers purpose, parameters, return structure, and a usage caveat. It lacks details on permissions, error handling, or pagination behavior for large limits, but remains fairly complete.

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

Parameters4/5

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

Schema coverage is 0%, yet the description provides clear parameter docs: task_id as UUID, limit default 10, filter_errors and filter_non_errors booleans with descriptions. It explains their purpose but lacks detail on behavior when both filters are set simultaneously.

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 'Get recent events for a task,' specifying a concrete verb and resource. It distinguishes from sibling tools like task_list (which lists tasks, not events) by focusing on events and including debugging context.

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

Usage Guidelines4/5

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

The description notes that events include faults and are useful for debugging transfer issues, and adds a constraint about task age. However, it does not explicitly list when not to use this tool or suggest alternatives, so some guidance is implicit.

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

task_listA

List recent transfer and delete tasks.

Args: limit: Maximum number of tasks to return (default 10). filter_status: Filter by status. One of: - 'ACTIVE': Currently running tasks - 'INACTIVE': Paused tasks - 'FAILED': Failed tasks - 'SUCCEEDED': Completed successfully

Returns: List of task summaries with 'task_id', 'type', 'status', 'label', 'source_endpoint_display_name', 'destination_endpoint_display_name'.

Examples: task_list() task_list(limit=5, filter_status="ACTIVE") task_list(filter_status="FAILED")

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
filter_statusNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only mentions 'list', implying read-only, but doesn't explicitly state that it is safe, non-destructive, or discuss rate limits or authentication needs. Missing 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.

Conciseness5/5

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

Description is concise (9 lines including examples), well-structured with Args, Returns, Examples. Every sentence adds value; front-loaded with purpose.

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

Completeness5/5

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

Given no annotations and low complexity (2 optional params, simple list return), the description is complete: covers purpose, parameters, return fields, and provides examples. No output schema exists, but return fields are listed.

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

Parameters4/5

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

Schema coverage is 0%, but description adds meaning: explains 'limit' default and 'filter_status' possible values with examples. Provides context beyond schema, though case sensitivity or exact formatting is not specified.

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 'List recent transfer and delete tasks', providing a specific verb and resource. It distinguishes from sibling tools like task_show (detailed view) and task_event_list (events).

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

Usage Guidelines3/5

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

Examples imply usage (e.g., filtering by status), but no explicit guidance on when to use this tool versus alternatives like task_show or task_event_list.

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

task_showA

Get detailed information about a specific task.

Args: task_id: The UUID of the task.

Returns: Dict with full task details including: - 'status': ACTIVE, INACTIVE, FAILED, SUCCEEDED - 'type': TRANSFER or DELETE - 'source_endpoint_display_name' - 'destination_endpoint_display_name' - 'files': Number of files - 'files_transferred': Files completed - 'bytes_transferred': Bytes completed - 'request_time': When submitted - 'completion_time': When finished (if complete) - 'nice_status': Human-readable status

Examples: task_show("abc123-def456-...")

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It lists return fields but does not disclose read-only behavior, authorization needs, error conditions, or rate limits. The 'Returns' section is helpful but lacks safety/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.

Conciseness5/5

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

Every sentence serves a purpose: summary, arg description, return fields, and example. Front-loaded and no filler. Well-organized into sections (Args, Returns, Examples).

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

Completeness4/5

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

Given the single parameter, the description fully documents what is returned. The output schema exists (context signal), but the description still provides rich detail on fields. It does not explicitly differentiate from sibling tools, but the purpose is clear enough. Slightly incomplete for a fully standalone description, but more than adequate.

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

Parameters5/5

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

The schema specifies task_id as a string with no description (0% coverage). The description clarifies it is 'The UUID of the task' and provides an example, adding essential meaning beyond the schema.

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 'Get detailed information about a specific task', with a specific verb ('get') and resource ('task'). It distinguishes from sibling tools like task_list (list all tasks) and task_cancel (cancel), making its purpose unambiguous.

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

Usage Guidelines3/5

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

Usage context is implied (e.g., when you need details of a specific task), but there is no explicit guidance on when to use this tool versus alternatives like task_list or task_event_list. No when-not-to-use or prerequisites mentioned.

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

task_waitA

Wait for a task to complete.

Blocks until the task finishes (succeeds or fails) or timeout is reached. Use this when you need data in place before proceeding with subsequent operations (e.g., submitting a job that uses the transferred data).

Args: task_id: The UUID of the task to wait for. timeout: Maximum seconds to wait. If None, waits indefinitely. polling_interval: Seconds between status checks (default 1).

Returns: Dict with final task status. Check 'status' field: - 'SUCCEEDED': Transfer completed successfully - 'FAILED': Transfer failed (check 'nice_status' for reason)

Raises: GlobusError: If timeout is reached before task completes.

Examples: # Wait indefinitely result = task_wait("abc123-...") if result['status'] == 'SUCCEEDED': print("Transfer complete!")

# Wait with timeout
result = task_wait("abc123-...", timeout=3600)  # 1 hour max
ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
timeoutNo
polling_intervalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

In the absence of annotations, the description fully discloses behavioral traits: it blocks until completion or timeout, specifies timeout behavior (None waits indefinitely), polling interval, return values ('SUCCEEDED', 'FAILED' with reason), and exceptions ('GlobusError').

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

Conciseness5/5

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

The description is well-structured with clear sections (Args, Returns, Raises, Examples) and uses concise sentences. Every line adds value, avoiding redundancy.

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

Completeness5/5

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

Given the tool's purpose (blocking wait with timeout), the description covers all necessary aspects: behavior, input parameters, output structure, error handling, and usage examples. It is complete for an agent to use correctly.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by explaining each parameter: task_id as UUID, timeout as maximum seconds (default None), polling_interval as seconds between checks (default 1). Examples illustrate usage.

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 'Wait for a task to complete' with a specific verb and resource. It distinguishes itself from sibling tools like 'task_cancel' and 'task_show' by focusing on the wait/blocking behavior.

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

Usage Guidelines4/5

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

It advises using this tool when 'you need data in place before proceeding with subsequent operations', providing clear context. However, it does not explicitly exclude alternatives or mention 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.

transferA

Submit an asynchronous transfer task between Globus endpoints.

This submits a transfer task and returns immediately. The transfer runs server-side and can be monitored with task_show() or waited on with task_wait().

Args: source_endpoint: UUID of the source endpoint. source_path: Path to the file or directory on the source. dest_endpoint: UUID of the destination endpoint. dest_path: Path where data should be placed on destination. recursive: If True, transfer directories recursively. sync_level: Sync strategy for existing files: - None: Overwrite all files - 'exists': Skip if destination exists - 'size': Skip if same size - 'mtime': Skip if same size and modification time - 'checksum': Skip if same checksum label: Optional label for the transfer task. verify_checksum: If True, verify checksums after transfer. preserve_timestamp: If True, preserve modification times. encrypt_data: If True, encrypt data in transit.

Returns: Dict with 'task_id', 'submission_id', 'message', and other details. Use the 'task_id' with task_show() or task_wait().

Examples: # Transfer a single file result = transfer( source_endpoint="uuid1", source_path="/data/file.tar.gz", dest_endpoint="uuid2", dest_path="/scratch/file.tar.gz" ) task_id = result['task_id']

# Transfer a directory
transfer(
    source_endpoint="uuid1",
    source_path="/project/results/",
    dest_endpoint="uuid2",
    dest_path="/archive/results/",
    recursive=True,
    label="Archive project results"
)

# Sync with checksum verification
transfer(
    source_endpoint="uuid1",
    source_path="/data/",
    dest_endpoint="uuid2",
    dest_path="/backup/",
    recursive=True,
    sync_level="checksum",
    verify_checksum=True
)
ParametersJSON Schema
NameRequiredDescriptionDefault
source_endpointYes
source_pathYes
dest_endpointYes
dest_pathYes
recursiveNo
sync_levelNo
labelNo
verify_checksumNo
preserve_timestampNo
encrypt_dataNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses the async behavior and monitoring needed but lacks details on permissions, rate limits, or potential overwrite behavior (though sync_level implies it). Could be more transparent about prerequisites and what happens to destination files.

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 well-structured with sections for summary, args, returns, and examples. However, it is somewhat lengthy; the examples could be condensed or moved to reduce verbosity without losing clarity.

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

Completeness4/5

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

Given the tool's complexity (10 parameters, required fields, async behavior), the description is fairly complete. It covers behavior, parameter details, return value, and usage examples. Minor gaps in behavioral transparency (permissions, error handling) prevent a perfect score.

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

Parameters5/5

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

Schema coverage is 0%, but the description provides thorough explanations for all 10 parameters, including sync_level options with valid values. Examples further clarify parameter usage, adding significant value beyond the schema.

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 it submits an asynchronous transfer task between Globus endpoints, specifying the verb and resource. It distinguishes from siblings like transfer_batch and compute_* tools.

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

Usage Guidelines4/5

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

The description explains the asynchronous nature and suggests using task_show() or task_wait() for monitoring. It provides examples but does not explicitly state when not to use this tool versus alternatives like transfer_batch.

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

transfer_batchA

Submit a batch transfer with multiple file pairs.

Transfers multiple source/destination pairs in a single task. More efficient than multiple individual transfers.

Args: source_endpoint: UUID of the source endpoint. dest_endpoint: UUID of the destination endpoint. items: List of transfer items. Each item is a dict with: - 'source_path': Path on source endpoint (required) - 'dest_path': Path on destination endpoint (required) - 'recursive': If True, transfer directory recursively (optional) sync_level: Sync strategy for existing files (see transfer()). label: Optional label for the transfer task. verify_checksum: If True, verify checksums after transfer. preserve_timestamp: If True, preserve modification times. encrypt_data: If True, encrypt data in transit.

Returns: Dict with 'task_id' and other task details.

Examples: # Transfer multiple files transfer_batch( source_endpoint="uuid1", dest_endpoint="uuid2", items=[ {'source_path': '/data/file1.txt', 'dest_path': '/backup/file1.txt'}, {'source_path': '/data/file2.txt', 'dest_path': '/backup/file2.txt'}, {'source_path': '/data/subdir', 'dest_path': '/backup/subdir', 'recursive': True}, ], label="Batch backup" )

ParametersJSON Schema
NameRequiredDescriptionDefault
source_endpointYes
dest_endpointYes
itemsYes
sync_levelNo
labelNo
verify_checksumNo
preserve_timestampNo
encrypt_dataNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It describes the return value as a dict with 'task_id' and details, and explains parameter behavior. It does not discuss side effects, permissions, or error conditions, but given the nature of a batch transfer, the description is fairly transparent.

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 well-structured with sections for summary, args, returns, and examples. It is slightly verbose but front-loads the purpose and remains readable.

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

Completeness4/5

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

With 8 parameters, no annotations, and an output schema (not shown), the description covers inputs, output, and provides an example. It could include error handling or status details, but overall it is sufficient for an agent to use the tool.

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

Parameters5/5

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

Schema description coverage is 0%, but the description provides detailed explanations for each parameter, including structure for 'items', optionality for 'sync_level', and boolean flags. This adds significant meaning beyond the raw schema.

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 'Submit a batch transfer with multiple file pairs' and includes 'More efficient than multiple individual transfers', which distinguishes it from sibling tools like 'transfer'.

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

Usage Guidelines4/5

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

The description explicitly says 'More efficient than multiple individual transfers', indicating when to use it. It provides an example but lacks explicit when-not-to-use or alternative conditions. However, the context is clear.

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

whoamiA

Show the currently logged-in Globus identity.

Returns information about the authenticated user including their email address and identity provider.

Returns: Dict with 'username' (email), 'id', 'name', and login status.

Examples: whoami() # Returns {'username': 'user@example.edu', ...}

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Without annotations, the description must convey behavioral traits. It states the tool returns identity information but does not explicitly confirm it is read-only or disclose side effects. The return format and example add some context, but lacks details on error cases (e.g., when no user is logged in).

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 concise, with three clear sections: purpose, return format, and example. The example is useful but the 'Returns:' line slightly repeats the first sentence. Overall efficient with minimal waste.

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

Completeness4/5

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

For a simple tool with no parameters and an output schema, the description covers the main functionality and typical return value. However, it omits prerequisites (e.g., user must be logged in) and error handling. Acceptable but not exhaustive.

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

Parameters4/5

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

The schema has no parameters, so schema coverage is 100%. The description adds no parameter semantics, but the example with empty parentheses implicitly confirms no arguments are needed. A baseline of 4 is appropriate for zero-parameter tools where the schema already covers everything.

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 tool shows the currently logged-in Globus identity, distinguishing it from sibling tools like globus_login (which handles authentication) and compute_login (which manages compute sessions). The verb 'show' combined with the specific resource 'current Globus identity' provides precise purpose.

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

Usage Guidelines3/5

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

The description implies usage for checking the current identity but does not provide explicit guidance on when to use this tool versus alternatives (e.g., globus_login for initiating login). No exclusion criteria or when-not-to-use guidance is given.

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. Dates show when Glama detected each change.

  1. 26 tool updatesv0.1.0
    • First observedcompute_batch_submit
    • First observedcompute_endpoint_list
    • First observedcompute_endpoint_status
    • First observedcompute_login
    • First observedcompute_result
    • First observedcompute_status
    • First observedcompute_submit
    • First observeddelete
    • First observedendpoint_local_id
    • First observedendpoint_search
    • First observedendpoint_show
    • First observedglobus_login
    • First observedls
    • First observedmkdir
    • First observedrename
    • First observedrm
    • First observedsession_consent
    • First observedstat
    • First observedtask_cancel
    • First observedtask_event_list
    • First observedtask_list
    • First observedtask_show
    • First observedtask_wait
    • First observedtransfer
    • First observedtransfer_batch
    • First observedwhoami

TDQS

A4.1/5.0
Disambiguation4/5

Most tools have distinct purposes, but there is potential confusion between synchronous 'rm' and asynchronous 'delete' for file deletion, as well as between 'globus_login' and 'compute_login' for different authentication flows. These overlaps could cause misselection.

Naming Consistency3/5

Tools generally follow a verb_noun pattern (e.g., 'compute_batch_submit', 'transfer_batch'), but are mixed with short Unix-like commands such as 'ls', 'rm', 'mkdir', and 'whoami'. This inconsistency in naming style reduces predictability.

Tool Count4/5

26 tools cover two major domains (Compute and Transfer) with authentication and file operations. While slightly high, the count is reasonable given the breadth of functionality and the need for fine-grained control.

Completeness5/5

The tool set provides comprehensive coverage for both Globus Compute (submit, batch, status, result, endpoint management) and Globus Transfer (file operations, transfers, task management). No obvious gaps in core workflows.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    B
    maintenance
    Provides a secure, sandboxed interface for LLM agents to interact with HPC clusters via bubblewrap isolation, managing workspaces and executing commands locally or through Slurm.
    10
    2
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to securely execute commands, transfer files, and manage port forwarding on remote servers via SSH.
    168
    36
    Apache 2.0

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/PurdueRCAC/globus-mcp'

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