Skip to main content
Glama
Local Workspace Orchestrator

Local Workspace Orchestrator

Local Workspace Orchestrator

Un sistema cliente-servidor MCP (Model Context Protocol) que conecta Anthropic Claude a tu sistema de archivos local mediante un conjunto de herramientas de espacio de trabajo. El orquestador permite a Claude leer archivos, analizar archivos CSV, ejecutar scripts, generar gráficos y más, todo desde una interfaz de chat interactiva.

Arquitectura

┌───────────────────────────┐        stdio         ┌──────────────────────────┐
│  orchestrator_client.py   │ ◄──────────────────► │  workspace_server.py     │
│  (MCP Client + Anthropic) │     MCP protocol     │  (FastMCP Server)        │
│                           │                      │                          │
│  • Connects to 1+ servers │                      │  Tools:                  │
│  • Streams Claude output  │                      │   • list_workspace_files │
│  • Retries failed calls   │                      │   • summarize_csv_dataset│
│  • Saves chat history     │                      │   • execute_python_script│
│                           │                      │   • write_file           │
│                           │                      │   • run_shell_command    │
│                           │                      │   • plot_column_distrib. │
│                           │                      │                          │
│                           │                      │  Resources:              │
│                           │                      │   • workspace://files    │
│                           │                      │   • workspace://schema/* │
└───────────────────────────┘                      └──────────────────────────┘

Related MCP server: ai-distiller-mcp

Inicio rápido

1. Clonar e instalar

git clone <your-repo-url>
cd local-workspace-orchestrator

# Using uv (recommended)
uv sync

# Or using pip
pip install -r requirements.txt

2. Configura tu clave de API

cp .env.example .env
# Edit .env and paste your Anthropic API key

3. Ejecuta el orquestador

# Using uv
uv run orchestrator_client.py

# Or directly
python orchestrator_client.py

Verás el prompt interactivo:

======================================================
   Local Workspace Orchestrator Active
   Type queries, or /help for commands, 'quit' to exit.
======================================================

Orchestrator >

4. Prueba algunas consultas

Orchestrator > list all files in this workspace
Orchestrator > summarize the sample_consumer.csv dataset
Orchestrator > plot the distribution of SpendingScore in sample_consumer.csv
Orchestrator > run the run_analysis.py script

Configuración del servidor

El orquestador lee server_config.json para saber qué servidores MCP debe lanzar. El formato usa la estructura estándar mcpServers de MCP:

{
  "mcpServers": {
    "workspace_orchestrator": {
      "command": "uv",
      "args": ["run", "workspace_server.py"]
    }
  }
}

Añadir más servidores

Puedes conectar varios servidores: las herramientas de cada uno se descubrirán y registrarán automáticamente.

{
  "mcpServers": {
    "workspace_orchestrator": {
      "command": "uv",
      "args": ["run", "workspace_server.py"]
    },
    "my_other_server": {
      "command": "python",
      "args": ["other_server.py"]
    }
  }
}

Comandos del chat

Command

Descripción

/tools

Lista todas las herramientas registradas por servidor

/save [filename]

Cómo el historial de conversación a un archivo JSON

/load [filename]

Carga una conversación guardada

/reconnect <server>

Reconecta a un servidor caído

/history

Muestra el número de mensajes de la conversación

/clear

Limpia el historial de conversación

/help

Muestra todos los comandos disponibles

quit

Sale del orquestador

Herramientas disponibles

Herramientas de solo lectura

Tool

Descripción

list_workspace_files

Lista archivos y subdirectorios en una ruta del espacio de trabajo

summarize_csv_dataset

Devuelve forma, columnas, dtypes y estadísticas resumidas de un CSV

run_shell_command

Ejecuta un comando de shell de la lista permitida (ls, cat, grep, etc.)

Herramientas destructivas

Tool

Descripción

write_file

Crea o sobrescribe un archivo en el directorio de trabajo

execute_python_script

Ejecuta un script de Python y devuelve stdout/stderr

plot_column_distribution

Genera un PNG de histograma para una columna de un CSV

Recursos

URI

Descripción

workspace://files

Lista todos los archivos en la raíz del directorio de trabajo

workspace://schema/{file_name}

Nombres de columnas y dtypes de un archivo CSV

Seguridad

  • Protección contra path traversal: Todas las herramientas que aceptan archivos validan las rutas con os.path.realpath() + pathlib.Path.resolve() para evitar ataques de traversal de directorios.

  • Lista permitida de comandos de shell: run_shell_command solo permite una lista seleccionada de comandos de solo lectura (ls, cat, grep, head, tail, etc.).

  • Aislamiento de scripts: execute_python_script ejecuta los scripts en un subproceso con un tiempo límite de 30 segundos, restringido al espacio de trabajo mediante cwd. Nota: esto no es un sandbox real; el subproceso tiene los mismos permisos del sistema operativo que el proceso del servidor.

  • Anotaciones de herramientas: cada herramienta lleva anotaciones readOnlyHint / destructiveHint para que los clientes MCP puedan evaluar la seguridad.

Opciones de CLI

python orchestrator_client.py --help

options:
  --log-level {DEBUG,INFO,WARNING,ERROR}   Set logging verbosity (default: INFO)
  --system-prompt TEXT                     Custom system prompt for Claude
  --config PATH                            Path to server_config.json

Variables de entorno

Variable

Descripción

Valor por defecto

ANTHROPIC_API_KEY

Tu clave de API de Anthropic (requerida)

—

LOG_LEVEL

Nivel de detalle de registro

INFO

Estructura del proyecto

local-workspace-orchestrator/
├── orchestrator_client.py    # MCP client + Anthropic integration
├── workspace_server.py       # FastMCP server with workspace tools
├── server_config.json        # MCP server connection configuration
├── main.py                   # Stub entry point
├── run_analysis.py           # Example analysis script
├── sample_consumer.csv       # Sample dataset
├── pyproject.toml            # Project metadata + dependencies
├── requirements.txt          # Pinned pip dependencies
├── .env.example              # API key template
├── .gitignore                # Git ignore rules
└── README.md                 # This file

Licencia

MIT

Related MCP Connectors

Related MCP Servers