Globus MCP Server

Globus MCP Server

Enables AI agents to perform federated data transfers and remote code execution on HPC endpoints via Globus, wrapping the Globus CLI and Globus Compute SDK.

Category
Visit Server

README

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

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)

Consent Recovery

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
globus-mcp

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured