Skip to content

Latest commit

 

History

History
475 lines (351 loc) · 12.2 KB

File metadata and controls

475 lines (351 loc) · 12.2 KB

SecondLayer MCP - Configuration Examples

Цей каталог містить приклади конфігурацій та інструкції для підключення SecondLayer MCP до різних типів клієнтів.

📁 Файли в цьому каталозі

Локальне підключення (stdio)

Файл Призначення
claude-desktop-config.json Готова конфігурація для Claude Desktop
cursor-mcp-config.json Конфігурація для Cursor IDE (.cursor/mcp.json)
vscode-mcp-config.json Конфігурація для VSCode (.vscode/mcp.json)
continue-mcp-config.yaml Конфігурація для Continue.dev extension
SETUP_DESKTOP.md Покрокова інструкція для desktop клієнтів

Віддалене підключення (HTTPS/SSE) 🌐

Файл Призначення
remote-claude-desktop-config.json Віддалене підключення для Claude Desktop
remote-cursor-config.json Віддалене підключення для Cursor IDE
remote-vscode-config.json Віддалене підключення для VSCode
REMOTE_MCP_SETUP.md Повний гайд віддаленого підключення
GENERATE_TOKEN.md Інструкції генерації JWT токенів

Web API

Файл Призначення
web-client-demo.html Інтерактивний HTML демо для тестування web API
test-web-api.sh Bash скрипт для автоматичного тестування API
SETUP_WEB.md Покрокова інструкція для web клієнтів

🌐 Віддалене підключення (Рекомендовано для більшості користувачів)

Що це?

Підключення до MCP сервера через HTTPS без локального розгортання інфраструктури.

Переваги:

  • ✅ Не потрібно встановлювати PostgreSQL, Qdrant, Redis
  • ✅ Працює з будь-якого місця через Інтернет
  • ✅ Централізована база даних
  • ✅ Автоматичні оновлення

Швидкий старт

  1. Отримати JWT токен:
# Згенерувати токен (для адміністраторів)
npx tsx scripts/generate-jwt-token.ts my-app 90d

# Або запросити у адміністратора legal.org.ua
  1. Налаштувати клієнт:

Claude Desktop:

cp config-examples/remote-claude-desktop-config.json \
   ~/Library/Application\ Support/Claude/claude_desktop_config.json

# Відредагувати файл та замінити YOUR-JWT-TOKEN-HERE

Cursor IDE:

mkdir -p .cursor
cp config-examples/remote-cursor-config.json .cursor/mcp.json

# Відредагувати файл та замінити YOUR-JWT-TOKEN-HERE

VSCode:

mkdir -p .vscode
cp config-examples/remote-vscode-config.json .vscode/mcp.json

# Відредагувати файл та замінити YOUR-JWT-TOKEN-HERE
  1. Тестувати підключення:
curl https://mcp.legal.org.ua/health

Детальна інструкція

📖 Читайте: REMOTE_MCP_SETUP.md 🔑 Генерація токенів: GENERATE_TOKEN.md


🖥️ Локальне підключення (Desktop Client)

Швидкий старт

  1. Зібрати проект:
cd <project-root>/mcp_backend
npm run build
  1. Скопіювати конфігурацію:

Claude Desktop:

# macOS
cp config-examples/claude-desktop-config.json ~/Library/Application\ Support/Claude/claude_desktop_config.json

# Linux
cp config-examples/claude-desktop-config.json ~/.config/Claude/claude_desktop_config.json

# Windows (PowerShell)
Copy-Item config-examples\claude-desktop-config.json $env:APPDATA\Claude\claude_desktop_config.json

Cursor IDE:

# Створіть .cursor/ в корені вашого проекту
mkdir -p .cursor
cp config-examples/cursor-mcp-config.json .cursor/mcp.json

VSCode:

# Створіть .vscode/ в корені workspace
mkdir -p .vscode
cp config-examples/vscode-mcp-config.json .vscode/mcp.json

Continue.dev:

# Створіть .continue/mcpServers/ в корені workspace
mkdir -p .continue/mcpServers
cp config-examples/continue-mcp-config.yaml .continue/mcpServers/secondlayer.yaml
  1. Запустити інфраструктуру:
docker-compose up -d
  1. Перезапустити клієнт (Claude Desktop, Cursor, VSCode)

Детальна інструкція

Читайте: SETUP_DESKTOP.md


🌐 Web Client (Browser, React, Mobile Apps)

Швидкий старт

  1. Запустити HTTP сервер:
cd <project-root>/mcp_backend
npm run dev:http
  1. Перевірити що працює:
curl http://localhost:3000/health
  1. Запустити тести:
./config-examples/test-web-api.sh
  1. Відкрити демо:
open config-examples/web-client-demo.html

Детальна інструкція

Читайте: SETUP_WEB.md


🔑 API Authentication

Всі web endpoints (крім /health) потребують API ключ:

Authorization: Bearer test-key-123

Налаштування ключів:

У файлі .env:

SECONDARY_LAYER_KEYS=test-key-123,dev-key-456,prod-key-789

🧪 Тестування

Web API Tests

Автоматичний тест всіх endpoints:

chmod +x test-web-api.sh
./test-web-api.sh

Очікуваний вивід:

=========================================
SecondLayer MCP - Web API Tests
=========================================
1. Health Check
Testing: Health endpoint... ✓ OK (HTTP 200)

2. MCP Tools
Testing: List tools... ✓ OK (HTTP 200)

...
All tests completed!

Manual Tests

Health check:

curl http://localhost:3000/health

List tools:

curl -H "Authorization: Bearer test-key-123" \
  http://localhost:3000/api/tools | jq '.tools[] | .name'

Search precedents:

curl -X POST http://localhost:3000/api/tools/search_legal_precedents \
  -H "Authorization: Bearer test-key-123" \
  -H "Content-Type: application/json" \
  -d '{"query": "мобілізація 2023", "limit": 3}' | jq .

📊 Порівняння Desktop vs Web

Характеристика Desktop Web
Протокол stdio HTTP/SSE
Складність Проста Середня
Аутентифікація Не потрібна API ключі
Streaming Не підтримується SSE
Використання IDE інтеграції Веб-застосунки
Масштабованість 1:1 N:1

🛠️ Troubleshooting

Desktop

Проблема: Server not found

# Перевірити шлях
ls -la <project-root>/mcp_backend/dist/index.js

# Зібрати якщо потрібно
npm run build

Проблема: Connection timeout

# Перевірити сервіси
docker-compose ps

# Запустити якщо потрібно
docker-compose up -d

Web

Проблема: Connection refused

# Запустити HTTP сервер
npm run dev:http

Проблема: 401 Unauthorized

# Перевірити API ключ
grep SECONDARY_LAYER_KEYS ../.env

# Використовувати правильний ключ
curl -H "Authorization: Bearer test-key-123" ...

Проблема: CORS errors

// src/http-server.ts - додати ваш домен
app.use(cors({
  origin: ['http://localhost:8080', 'your-domain.com']
}));

📚 Доступні MCP Tools

Після підключення доступні такі інструменти:

  1. search_legal_precedents - Семантичний пошук судових рішень
  2. analyze_case_pattern - Аналіз паттернів у судовій практиці
  3. get_similar_reasoning - Знайти схоже обґрунтування
  4. extract_document_sections - Витягти секції з документа
  5. count_cases_by_party - Підрахунок справ за стороною
  6. find_relevant_law_articles - Релевантні статті закону
  7. check_precedent_status - Статус прецеденту
  8. load_full_texts - Завантажити повні тексти
  9. get_citation_graph - Граф цитувань
  10. get_legal_advice - Комплексна юридична порада

Детальна документація:

curl -H "Authorization: Bearer test-key-123" \
  http://localhost:3000/api/tools | jq .

🎯 Приклади використання

Desktop (через Claude Desktop)

Після підключення просто пишіть в Claude:

Знайди судові рішення про незаконну мобілізацію за 2023 рік
Проаналізуй практику у справах про ухилення від військової служби
Які статті закону найчастіше застосовуються у справах про мобілізацію?

Web (JavaScript)

// Простий запит
const response = await fetch('http://localhost:3000/api/tools/search_legal_precedents', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer test-key-123',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    query: 'мобілізація 2023',
    limit: 10
  })
});

const data = await response.json();
console.log(data.result);
// SSE Streaming
const eventSource = new EventSource(
  'http://localhost:3000/api/tools/search_legal_precedents/stream?' +
  new URLSearchParams({
    authorization: 'Bearer test-key-123',
    query: 'мобілізація',
    limit: '5'
  })
);

eventSource.onmessage = (event) => {
  const data = JSON.parse(event.data);
  console.log(data);

  if (data.type === 'complete') {
    eventSource.close();
  }
};

🚀 Production Deployment

Для Desktop

  • Збудувати з npm run build
  • Розповсюдити dist/ папку користувачам
  • Користувачі налаштовують локально

Для Web

# Docker compose production
docker-compose -f docker-compose.prod.yml up -d

# Або ручний запуск
npm run build
NODE_ENV=production npm run start:http

Nginx reverse proxy:

server {
    listen 443 ssl;
    server_name api.yourdomain.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_buffering off;  # Для SSE
        proxy_cache off;
    }
}

📖 Додаткова документація


🆘 Підтримка

Якщо виникли проблеми:

  1. Перевірити логи:
# Desktop (Claude Desktop)
tail -f ~/Library/Logs/Claude/mcp*.log

# Web (HTTP Server)
tail -f logs/combined.log
  1. Перевірити сервіси:
docker-compose ps
docker-compose logs -f
  1. Перевірити збірку:
ls -la dist/index.js
ls -la dist/http-server.js
  1. Створити issue: https://github.com/your-repo/issues

Успішної інтеграції! 🎉