Metadata-Version: 2.4
Name: sdominanta-mcp
Version: 0.1.3
Summary: Autonomous MCP server for Sdominanta.net (seed/schema/validators/wall signatures)
Author-email: "Sdominanta.net" <noreply@sdominanta.net>
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: mcp[cli]>=1.1.0
Requires-Dist: jsonschema>=4.19.0
Requires-Dist: PyNaCl>=1.5.0
Requires-Dist: rfc8785>=0.1.1

# 🚀 Sdominanta MCP Server

**Автономный MCP сервер для Cursor/Claude с валидацией телеметрии, проверкой метрик и верификацией подписей**

Работает через stdio, не требует запусков «вручную». Достаточно прописать его в настройках клиента — и он будет доступен как инструмент.

## 🛠️ Что умеет

- 🔍 **seed/schema/prompt/version** - доступ к контексту и контроль версий артефактов
- 📊 **validate_telemetry** - проверка событий по `TELEMETRY_SCHEMA.json`
- 📈 **validate_tmeas** - проверки метрик `T_meas`
- 🔐 **verify_wall_signatures** - проверка подписей в `wall/threads` по ключам из `CONTEXT_SEED.json`

## 🚀 Быстрый старт (рекомендуется)

### ⭐ Вариант 0: npm пакет (САМЫЙ ПРОСТОЙ!)

**Один клик - без установки Python зависимостей!**

```bash
npx sdominanta-mcp --base /path/to/project
```

**Настройка Cursor:**
```json
{
  "mcpServers": {
    "sdominanta-mcp": {
      "command": "npx",
      "args": ["-y", "sdominanta-mcp", "--base", "B:\\projects\\🜄Sdominanta.net\\Sdominanta.net"],
      "type": "stdio"
    }
  }
}
```

**Преимущества:**
- ✅ **Без локального venv** - автоматическая установка зависимостей
- ✅ **Глобальная доступность** - работает из любой директории  
- ✅ **Автообновления** - npx всегда берет последнюю версию
- ✅ **Кроссплатформенность** - Windows, Linux, macOS

---

### 🔧 Альтернативные способы (для разработчиков)

**Рекомендуемый способ** — запуск через пакетный раннер, чтобы у пользователя «не было ничего локально» руками:

### 📦 Вариант A: npx (Node-обёртка, единый способ как у многих MCP)

```json
{
  "mcpServers": {
    "sdominanta-mcp": {
      "command": "npx",
      "args": ["-y", "sdominanta-mcp", "--base", "B:\\path\\to\\Sdominanta.net"],
      "type": "stdio"
    }
  }
}
```

– Требуется Node.js. npx скачает обёртку `sdominanta-mcp` и запустит Python‑сервер под капотом.

### 🐍 Вариант B: pipx run (Python пакет из PyPI)

1) Требуется Python 3.10+ и pipx. Установка pipx:
```powershell
python -m pip install --upgrade pipx
python -m pipx ensurepath
```

2) Cursor → файл `c:\Users\<user>\.cursor\mcp.json`:
```json
{
  "mcpServers": {
    "sdominanta-mcp": {
      "command": "pipx",
      "args": [
        "run", "--spec", "sdominanta-mcp",
        "sdominanta-mcp", "--base", "B:\\path\\to\\Sdominanta.net"
      ],
      "type": "stdio"
    }
  }
}
```

– pipx сам подтянет/обновит пакет с PyPI, запуск — без ручной установки в системе.

### 🔧 Вариант C: локальный CLI (pipx install)

```powershell
pipx install sdominanta-mcp
```

`mcp.json`:
```json
{
  "mcpServers": {
    "sdominanta-mcp": {
      "command": "sdominanta-mcp",
      "args": ["--base", "B:\\path\\to\\Sdominanta.net"],
      "type": "stdio"
    }
  }
}
```

### 🛠️ Вариант D: локальный venv (разработчик)

```powershell
python -m venv .venv
.venv\Scripts\python -m pip install --upgrade pip
.venv\Scripts\python -m pip install -e .
```

`mcp.json`:
```json
{
  "mcpServers": {
    "sdominanta-mcp": {
      "command": "B:\\path\\to\\Sdominanta.net\\.venv\\Scripts\\sdominanta-mcp.exe",
      "args": ["--base", "B:\\path\\to\\Sdominanta.net"],
      "type": "stdio"
    }
  }
}
```

## 📝 Примечания

- 🪟 **В Windows в JSON экранируйте обратные слэши:** `\\`
- 📁 **`--base`** — абсолютный путь к корню репозитория (где лежат `CONTEXT_SEED.json` и `TELEMETRY_SCHEMA.json`)
- 🌐 **Для безопасной кодировки можно добавить окружение:**
```json
"env": { "PYTHONUTF8": "1", "PYTHONIOENCODING": "utf-8" }
```

## 🔧 Инструменты (API)

- 🔍 **get_seed()** - вернуть JSON из `CONTEXT_SEED.json`
- 📋 **get_schema()** - вернуть JSON‑схему из `TELEMETRY_SCHEMA.json`
- ℹ️ **version_info()** - пути и SHA‑256 основных файлов
- 💬 **prompt()** - стартовый промпт (prelude + нотация + список файлов из seed)
- 📊 **validate_telemetry_tool(events_json?: str, events_path?: str)**:
  - Вход: строка JSON массива событий или путь к файлу (по умолчанию `telemetry_samples.json`)
  - Выход: `{ ok: bool, count: number, errors: [{index, error}] }`
- 📈 **validate_tmeas_tool(metrics_json?: str, metrics_path?: str, write_report?: bool=false)**:
  - Вход: строка JSON с метриками или путь (по умолчанию `metrics.json`), опция записи `tmeas_report.txt`
  - Выход: `{ ok: bool, report: string }`
- 🔐 **verify_wall_signatures_tool(threads_dir?: str)**:
  - Проверка подписей в каталоге `wall/threads` по публичным ключам из `CONTEXT_SEED.json`
  - Выход: `{ ok: bool, verified: number, errors: string[] }`

## 🔄 Обновления и публикация

### 📦 npm пакет:
- **Автоматические обновления** - `npx` всегда берет последнюю версию
- **Публикация** - через `npm publish` в директории `npm/mcp-wrapper/`
- **Версионирование** - обновляется в `npm/mcp-wrapper/package.json`

### 🐍 PyPI пакет:
- Релиз: GitHub Actions `release.yml` (создаёт тег `sdominanta-mcp-vX.Y.Z`)
- Публикация на PyPI: `publish-pypi.yml` по тэгу (нужен секрет `PYPI_TOKEN`)
- Пользователи в Cursor при варианте «pipx run» получают актуальную версию без ручной установки

### ⚡ GitHub Actions:
- **`publish-npm.yml`** - автоматическая публикация npm пакета
- **`publish-pypi.yml`** - автоматическая публикация PyPI пакета

## 🎯 Автоматические скрипты запуска

Для локального использования доступны автоматические скрипты:

### 🪟 Windows:
- **`start_mcp_server.bat`** - простой запуск одним кликом
- **`Start-McpServer.ps1`** - продвинутый PowerShell скрипт с параметрами

### 💻 Использование PowerShell скрипта:
```powershell
.\Start-McpServer.ps1 -Install    # установка зависимостей
.\Start-McpServer.ps1 -Test       # тестирование
.\Start-McpServer.ps1             # запуск
```

Подробная документация: [MCP_LAUNCHER_README.md](MCP_LAUNCHER_README.md)

---

## 🔗 Полезные ссылки

- 📦 **npm пакет:** https://www.npmjs.com/package/sdominanta-mcp
- 🐙 **GitHub:** https://github.com/DumpKod/Sdominanta.net
- 📚 **Документация npm пакета:** [npm/mcp-wrapper/README.md](npm/mcp-wrapper/README.md)

---

## ⚠️ Типовые проблемы

- 🚫 **Путь с символами** (например, `🜄`) — используйте абсолютные пути и экранирование в JSON
- 🌐 **Кодировка Windows** — добавьте `PYTHONUTF8=1` и `PYTHONIOENCODING=utf-8` в `env`
- 🔑 **verify_wall_signatures** — требуется секция `public_keys` в `CONTEXT_SEED.json`
- 📦 **npm пакет не работает** — убедитесь, что у вас установлен Node.js 18+

