Skip to main content
Glama
aniketmehetre

Local Workspace Orchestrator

Локальный оркестратор рабочего пространства

Система клиент-сервер MCP (Model Context Protocol), которая подключает Anthropic Claude к вашей локальной файловой системе через набор инструментов рабочего пространства. Оркестратор позволяет Claude читать файлы, анализировать CSV, выполнять скрипты, создавать графики и многое другое — всё из интерактивного чат-интерфейса.

Архитектура

┌───────────────────────────┐        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

Быстрый старт

1. Клонирование и установка

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

# Using uv (recommended)
uv sync

# Or using pip
pip install -r requirements.txt

2. Настройка вашего API-ключа

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

3. Запуск оркестратора

# Using uv
uv run orchestrator_client.py

# Or directly
python orchestrator_client.py

Вы увидите интерактивное приглашение:

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

Orchestrator >

4. Попробуйте несколько запросов

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

Конфигурация сервера

Оркестратор читает server_config.json, чтобы узнать, какие MCP-серверы запускать. Формат использует стандартную структуру MCP mcpServers:

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

Добавление дополнительных серверов

Вы можете подключить несколько серверов — каждый из них будет автоматически обнаруживать и регистрировать свои инструменты:

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

Команды чата

Команда

Описание

/tools

Список всех зарегистрированных инструментов по серверам

/save [filename]

Сохранить историю разговора в JSON-файл

/load [filename]

Загрузить сохранённый разговор

/reconnect <server>

Переподключиться к отключённому серверу

/history

Показать количество сообщений в разговоре

/clear

Очистить историю разговора

/help

Показать все доступные команды

quit

Выйти из оркестратора

Доступные инструменты

Инструменты только для чтения

Инструмент

Описание

list_workspace_files

Список файлов и подкаталогов в пути рабочего пространства

summarize_csv_dataset

Возвращает форму, столбцы, типы данных и сводную статистику для CSV

run_shell_command

Выполняет разрешённую команду оболочки (ls, cat, grep и т.д.)

Деструктивные инструменты

Инструмент

Описание

write_file

Создать или перезаписать файл в рабочем пространстве

execute_python_script

Выполнить Python-скрипт и вернуть stdout/stderr

plot_column_distribution

Сгенерировать PNG-гистограмму для столбца CSV

Ресурсы

URI

Описание

workspace://files

Список всех файлов в корне рабочего пространства

workspace://schema/{file_name}

Имена столбцов + типы данных для CSV-файла

Безопасность

  • Защита от обхода пути: Все инструменты, принимающие файлы, проверяют пути с помощью os.path.realpath() + pathlib.Path.resolve(), чтобы предотвратить атаки обхода каталогов.

  • Список разрешённых команд оболочки: run_shell_command разрешает только выбранный набор команд только для чтения (ls, cat, grep, head, tail и т.д.).

  • Песочница для скриптов: execute_python_script выполняет скрипты в подпроцессе с тайм-аутом 30 секунд, ограниченным каталогом рабочего пространства через cwd. Примечание: это не настоящая песочница — подпроцесс имеет те же права ОС, что и процесс сервера.

  • Аннотации инструментов: Каждый инструмент несёт аннотации readOnlyHint / destructiveHint, чтобы MCP-клиенты могли оценивать безопасность.

Параметры командной строки

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

Переменные окружения

Переменная

Описание

По умолчанию

ANTHROPIC_API_KEY

Ваш ключ API Anthropic (обязательно)

—

LOG_LEVEL

Уровень детализации логирования

INFO

Структура проекта

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

Лицензия

MIT

Related MCP Connectors

Related MCP Servers