> ## Documentation Index
> Fetch the complete documentation index at: https://shinydapps-bd9fa40b.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP Server

> Добавьте l402-kit как инструмент MCP, чтобы Claude Desktop, Cursor и любой MCP-совместимый ИИ автоматически оплачивал Lightning API.

## Что такое MCP?

[Model Context Protocol](https://modelcontextprotocol.io) — открытый стандарт Anthropic для предоставления LLM доступа к внешним инструментам. l402-kit поставляется с готовым MCP-сервером с двумя категориями инструментов:

### Универсальные инструменты L402

| Инструмент             | Описание                                                     |
| ---------------------- | ------------------------------------------------------------ |
| `l402_fetch`           | Получить любой URL — оплачивает автоматически при ответе 402 |
| `l402_balance`         | Проверить оставшийся Lightning-бюджет                        |
| `l402_spending_report` | Полная разбивка платежей за текущую сессию                   |

### Инструменты VERITY — платные сервисы с автоматической оплатой

| Инструмент            |        Цена | Описание                                                 |
| --------------------- | ----------: | -------------------------------------------------------- |
| `verity_btc_price`    |     10 sats | Текущая цена BTC в USD, EUR, BRL                         |
| `verity_worldstate`   |     80 sats | Время UTC + геолокация + местная погода                  |
| `verity_search`       |    100 sats | Поиск в интернете, топ-10 органических результатов       |
| `verity_summarize`    |     50 sats | ИИ-суммаризация до 50 000 символов                       |
| `verity_sentiment`    |     30 sats | Оценка тональности + ключевые слова                      |
| `verity_scrape`       |    200 sats | Веб-скрапинг с преобразованием в чистый markdown         |
| `verity_domain_intel` |    500 sats | WHOIS + DNS + SSL-сертификаты                            |
| `verity_translate`    |     50 sats | ИИ-перевод на 11 языков с поддержкой MDX                 |
| `verity_integration`  | 10 000 sats | Полная интеграция l402-kit для любого GitHub-репозитория |

Инструменты VERITY оплачиваются автономно — ручная обработка счетов не требуется.

***

## Настройка в Claude Desktop

### 1. Установите Node.js ≥ 18

### 2. Настройте кошелёк

<Tabs>
  <Tab title="Blink">
    Отредактируйте `claude_desktop_config.json`:

    ```json theme={null}
    {
      "mcpServers": {
        "l402": {
          "command": "npx",
          "args": ["l402-kit-mcp"],
          "env": {
            "BLINK_API_KEY": "your-blink-api-key",
            "BLINK_WALLET_ID": "your-wallet-id",
            "BUDGET_SATS": "2000"
          }
        }
      }
    }
    ```
  </Tab>

  <Tab title="Alby">
    ```json theme={null}
    {
      "mcpServers": {
        "l402": {
          "command": "npx",
          "args": ["l402-kit-mcp"],
          "env": {
            "ALBY_TOKEN": "your-alby-access-token",
            "BUDGET_SATS": "2000"
          }
        }
      }
    }
    ```

    Для самостоятельно размещённого Alby Hub добавьте:

    ```json theme={null}
    "ALBY_HUB_URL": "https://your-hub.example.com"
    ```
  </Tab>
</Tabs>

**Расположение файла конфигурации:**

* macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
* Windows: `%APPDATA%\Claude\claude_desktop_config.json`

### 3. Перезапустите Claude Desktop

Инструменты `l402_fetch`, `l402_balance` и `l402_spending_report` появятся в списке инструментов Claude.

***

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

| Переменная        |  Обязательна | Описание                                            |
| ----------------- | :----------: | --------------------------------------------------- |
| `BLINK_API_KEY`   | только Blink | Ваш API-ключ Blink                                  |
| `BLINK_WALLET_ID` | только Blink | Идентификатор вашего кошелька Blink                 |
| `ALBY_TOKEN`      |  только Alby | Токен доступа Alby                                  |
| `ALBY_HUB_URL`    |  опционально | Базовый URL пользовательского Alby Hub              |
| `BUDGET_SATS`     |  опционально | Максимальная трата за сессию (по умолчанию: `2000`) |

***

## Использование инструментов

После запуска сервера Claude может автономно вызывать VERITY и любой L402-защищённый API:

```
You: What's the BTC price right now?

Claude: [calls verity_btc_price]
        [Paid 10 sats] {"bitcoin":{"usd":97500,"eur":89800,"brl":548000}}

        Bitcoin is currently $97,500 USD (Cost: 10 sats)
```

```
You: Summarize this article: <pastes 5,000 words>

Claude: [calls verity_summarize with text="..."]
        [Paid 50 sats] {"summary":"..."}
```

```
You: Search for "lightning network adoption 2026"

Claude: [calls verity_search with q="lightning network adoption 2026"]
        [Paid 100 sats] {"results":[...]}
```

```
You: How much have I spent so far?

Claude: [calls l402_spending_report]
        === L402 Spending Report ===
        Total spent:  160 sats
        Remaining:    1840 sats

        By domain:
          l402kit.com: 160 sats
```

***

## HTTP MCP-эндпоинт

Помимо пакета stdio, VERITY предоставляет живой **HTTP MCP-сервер** — установка не требуется:

```
POST https://l402kit.com/api/mcp
Content-Type: application/json
```

Любой MCP-клиент с поддержкой потокового HTTP-транспорта может подключиться напрямую. Передайте учётные данные Blink в заголовках:

```
X-BLINK-API-KEY: your-blink-api-key
X-BLINK-WALLET-ID: your-wallet-id
```

**Инициализация:**

```json theme={null}
{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"my-agent","version":"1.0"}},"id":1}
```

**Список инструментов:**

```json theme={null}
{"jsonrpc":"2.0","method":"tools/list","params":{},"id":2}
```

**Вызов инструмента:**

```json theme={null}
{"jsonrpc":"2.0","method":"tools/call","params":{"name":"verity_btc_price","arguments":{}},"id":3}
```

Эндпоинт автоматически оплачивает Lightning-счета с использованием учётных данных вашего кошелька и возвращает результат VERITY напрямую.

***

## Реестры MCP

l402-kit включён во все крупные реестры MCP:

| Реестр                               | Ссылка                                                                                         |
| ------------------------------------ | ---------------------------------------------------------------------------------------------- |
| Anthropic MCP Registry (официальный) | `io.github.ThiagoDataEngineer/l402-kit`                                                        |
| Glama                                | [glama.ai/mcp/servers/@ShinyDapps/l402-kit](https://glama.ai/mcp/servers/@ShinyDapps/l402-kit) |
| Smithery                             | [smithery.ai/servers/shinydapps/l402-kit](https://smithery.ai/servers/shinydapps/l402-kit)     |
| mcp.so                               | поиск по запросу `l402-kit`                                                                    |

Машиночитаемый манифест: `GET https://l402kit.com/.well-known/mcp.json`

***

## Настройка в Cursor

Добавьте тот же блок конфигурации в настройки MCP Cursor в разделе **Settings → MCP Servers**.

***

## Настройка с любым MCP-клиентом

Сервер читает из `stdin` и пишет в `stdout` (stdio-транспорт):

```bash theme={null}
BLINK_API_KEY=xxx BLINK_WALLET_ID=yyy BUDGET_SATS=500 npx l402-kit-mcp
```

Любой MCP-совместимый клиент может подключиться с использованием stdio-транспорта.

***

## Создание собственного MCP-сервера

Вы также можете встроить `L402Client` непосредственно в свой MCP-сервер:

```typescript theme={null}
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { L402Client, BlinkWallet } from "l402-kit";
import { z } from "zod";

const client = new L402Client({
  wallet: new BlinkWallet(process.env.BLINK_API_KEY!, process.env.BLINK_WALLET_ID!),
  budgetSats: 1000,
});

const server = new McpServer({ name: "my-agent", version: "1.0.0" });

server.tool(
  "fetch_weather",
  "Get current weather for a city — pays automatically",
  { city: z.string() },
  async ({ city }) => {
    const res = await client.fetch(`https://api.weather.com/current?city=${city}`);
    const text = await res.text();
    return { content: [{ type: "text", text }] };
  },
);

const transport = new StdioServerTransport();
await server.connect(transport);
```

***

## Замечания по безопасности

* Ограничение бюджета (`BUDGET_SATS`) — ваша основная защита; устанавливайте его консервативно
* Каждый процесс `npx l402-kit-mcp` имеет собственный бюджет в памяти; он сбрасывается при перезапуске
* Для продакшн-агентов сохраняйте журнал расходов через колбэк `onSpend` во внешнее хранилище
