Цей каталог містить приклади конфігурацій та інструкції для підключення SecondLayer MCP до різних типів клієнтів.
| Файл | Призначення |
|---|---|
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 клієнтів |
| Файл | Призначення |
|---|---|
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-client-demo.html |
Інтерактивний HTML демо для тестування web API |
test-web-api.sh |
Bash скрипт для автоматичного тестування API |
SETUP_WEB.md |
Покрокова інструкція для web клієнтів |
Підключення до MCP сервера через HTTPS без локального розгортання інфраструктури.
Переваги:
- ✅ Не потрібно встановлювати PostgreSQL, Qdrant, Redis
- ✅ Працює з будь-якого місця через Інтернет
- ✅ Централізована база даних
- ✅ Автоматичні оновлення
- Отримати JWT токен:
# Згенерувати токен (для адміністраторів)
npx tsx scripts/generate-jwt-token.ts my-app 90d
# Або запросити у адміністратора legal.org.ua- Налаштувати клієнт:
Claude Desktop:
cp config-examples/remote-claude-desktop-config.json \
~/Library/Application\ Support/Claude/claude_desktop_config.json
# Відредагувати файл та замінити YOUR-JWT-TOKEN-HERECursor IDE:
mkdir -p .cursor
cp config-examples/remote-cursor-config.json .cursor/mcp.json
# Відредагувати файл та замінити YOUR-JWT-TOKEN-HEREVSCode:
mkdir -p .vscode
cp config-examples/remote-vscode-config.json .vscode/mcp.json
# Відредагувати файл та замінити YOUR-JWT-TOKEN-HERE- Тестувати підключення:
curl https://mcp.legal.org.ua/health📖 Читайте: REMOTE_MCP_SETUP.md 🔑 Генерація токенів: GENERATE_TOKEN.md
- Зібрати проект:
cd <project-root>/mcp_backend
npm run build- Скопіювати конфігурацію:
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.jsonCursor IDE:
# Створіть .cursor/ в корені вашого проекту
mkdir -p .cursor
cp config-examples/cursor-mcp-config.json .cursor/mcp.jsonVSCode:
# Створіть .vscode/ в корені workspace
mkdir -p .vscode
cp config-examples/vscode-mcp-config.json .vscode/mcp.jsonContinue.dev:
# Створіть .continue/mcpServers/ в корені workspace
mkdir -p .continue/mcpServers
cp config-examples/continue-mcp-config.yaml .continue/mcpServers/secondlayer.yaml- Запустити інфраструктуру:
docker-compose up -d- Перезапустити клієнт (Claude Desktop, Cursor, VSCode)
Читайте: SETUP_DESKTOP.md
- Запустити HTTP сервер:
cd <project-root>/mcp_backend
npm run dev:http- Перевірити що працює:
curl http://localhost:3000/health- Запустити тести:
./config-examples/test-web-api.sh- Відкрити демо:
open config-examples/web-client-demo.htmlЧитайте: SETUP_WEB.md
Всі web endpoints (крім /health) потребують API ключ:
Authorization: Bearer test-key-123Налаштування ключів:
У файлі .env:
SECONDARY_LAYER_KEYS=test-key-123,dev-key-456,prod-key-789Автоматичний тест всіх 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!
Health check:
curl http://localhost:3000/healthList 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 | Web |
|---|---|---|
| Протокол | stdio | HTTP/SSE |
| Складність | Проста | Середня |
| Аутентифікація | Не потрібна | API ключі |
| Streaming | Не підтримується | SSE |
| Використання | IDE інтеграції | Веб-застосунки |
| Масштабованість | 1:1 | N:1 |
Проблема: Server not found
# Перевірити шлях
ls -la <project-root>/mcp_backend/dist/index.js
# Зібрати якщо потрібно
npm run buildПроблема: Connection timeout
# Перевірити сервіси
docker-compose ps
# Запустити якщо потрібно
docker-compose up -dПроблема: 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']
}));Після підключення доступні такі інструменти:
- search_legal_precedents - Семантичний пошук судових рішень
- analyze_case_pattern - Аналіз паттернів у судовій практиці
- get_similar_reasoning - Знайти схоже обґрунтування
- extract_document_sections - Витягти секції з документа
- count_cases_by_party - Підрахунок справ за стороною
- find_relevant_law_articles - Релевантні статті закону
- check_precedent_status - Статус прецеденту
- load_full_texts - Завантажити повні тексти
- get_citation_graph - Граф цитувань
- get_legal_advice - Комплексна юридична порада
Детальна документація:
curl -H "Authorization: Bearer test-key-123" \
http://localhost:3000/api/tools | jq .Після підключення просто пишіть в Claude:
Знайди судові рішення про незаконну мобілізацію за 2023 рік
Проаналізуй практику у справах про ухилення від військової служби
Які статті закону найчастіше застосовуються у справах про мобілізацію?
// Простий запит
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();
}
};- Збудувати з
npm run build - Розповсюдити
dist/папку користувачам - Користувачі налаштовують локально
# Docker compose production
docker-compose -f docker-compose.prod.yml up -d
# Або ручний запуск
npm run build
NODE_ENV=production npm run start:httpNginx 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;
}
}Якщо виникли проблеми:
- Перевірити логи:
# Desktop (Claude Desktop)
tail -f ~/Library/Logs/Claude/mcp*.log
# Web (HTTP Server)
tail -f logs/combined.log- Перевірити сервіси:
docker-compose ps
docker-compose logs -f- Перевірити збірку:
ls -la dist/index.js
ls -la dist/http-server.js- Створити issue: https://github.com/your-repo/issues
Успішної інтеграції! 🎉