Skip to main content
Glama
kimagure-dd

@kimagure-dd/xirr-mcp

by kimagure-dd

@kimagure-dd/xirr-mcp

npm version License: MIT

MCP-сервер для расчета XIRR (расширенной внутренней нормы доходности) со встроенной поддержкой CSV-файлов транзакций Rakuten Securities (楽天証券).

Подключите его к Claude Desktop или Claude Code, передайте CSV-файл, выгруженный из вашего брокерского счета, и спросите:

「この CSV と現在の評価額 ¥1,500,000 で、実績年利を計算して」

Claude рассчитает XIRR для вас — с учетом нерегулярных взносов и снятий средств — и объяснит результат.

Возможности

  • 🧮 calculate_xirr — расчет XIRR на основе произвольного ряда денежных потоков и текущей оценки стоимости

  • 📄 parse_rakuten_csv — разбор CSV-файла транзакций Rakuten Securities (取引履歴) в нормализованные денежные потоки

  • 🔌 Чистый stdio MCP-сервер, доступ к сети не требуется

  • 📦 Нулевая конфигурация во время выполнения, одна команда npx

Установка и настройка

Claude Desktop

Отредактируйте ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "xirr": {
      "command": "npx",
      "args": ["-y", "@kimagure-dd/xirr-mcp"]
    }
  }
}

Перезапустите Claude Desktop. Инструменты calculate_xirr и parse_rakuten_csv должны появиться.

Claude Code

claude mcp add xirr -- npx -y @kimagure-dd/xirr-mcp

Примеры использования

Прямой расчет

Спросите Claude:

「以下のキャッシュフローで XIRR を計算して。2020-01-01 に 100万円投資、2022-01-01 に 50万円追加、現在(2025-01-01)の評価額 200万円」

Claude вызовет calculate_xirr со структурированными входными данными и вернет:

{
  "annualRate": 12.34,
  "annualRateFormatted": "12.34%",
  "totalInvestment": 1500000,
  "totalGain": 500000,
  "gainRateFormatted": "33.33%",
  "converged": true
}

На основе CSV-файла Rakuten Securities

  1. Войдите в Rakuten Securities → История транзакций (取引履歴) → Скачать CSV

  2. (Так как файл скачивается в кодировке Shift_JIS, преобразуйте его в UTF-8)

  3. Передайте содержимое файла в Claude с запросом: «Рассчитай на основе этого фактическую годовую доходность. Текущая оценка стоимости — ¥X»

Claude автоматически пропустит CSV через parse_rakuten_csvcalculate_xirr.

Справочник инструментов

calculate_xirr

Рассчитывает XIRR на основе списка датированных денежных потоков и текущей оценки стоимости.

Входные данные:

Поле

Тип

Описание

cashFlows

array

Список { date, amount }. Положительное значение = инвестиции, отрицательное = снятие средств.

currentValue

number

Текущая оценка стоимости портфеля.

valuationDate

string

YYYY-MM-DD. Дата для currentValue.

Выходные данные:

Поле

Тип

Описание

annualRate

number

Годовая доходность в процентах.

monthlyRate

number

Месячная ставка (приведенная к годовой).

totalInvestment

number

Сумма всех денежных потоков.

totalGain

number

currentValue - totalInvestment.

gainRate

number

Общая прибыль в процентах от инвестиций.

converged

boolean

True, если итеративный решатель сошелся.

parse_rakuten_csv

Разбирает CSV-файл транзакций Rakuten Securities.

Входные данные:

Поле

Тип

Описание

csvContent

string

Необработанный текст CSV (декодированный в UTF-8).

Обязательные заголовки CSV:

約定日, 取引, ファンド名, 受渡金額/(ポイント利用)[円]

Поведение:

  • Строки 買付 (покупка) → положительная сумма (инвестиции)

  • Другие типы транзакций (например, 売却 (продажа)) → отрицательная сумма (снятие средств)

  • Некорректные строки пропускаются с предупреждениями

Метод расчета

  • Итерация Ньютона-Рафсона в качестве основного решателя

  • Метод бисекции в качестве резервного, если метод Ньютона не сходится

  • Единица времени: месяцы (используется 365.25 / 12 дней в месяце)

  • Порог сходимости: 1e-7

Та же логика используется в браузерном калькуляторе XIRR на kimagure-dd.dev, поэтому результаты идентичны.

Отказ от ответственности

Этот инструмент вычисляет эффективность инвестиций только в информационных целях. Налоги, комиссии за транзакции и конвертация валют не учитываются. Результаты не являются инвестиционной рекомендацией.

Разработка

npm install
npm run build
npm test

Для тестирования сервера локально перед публикацией:

npm pack
# Then point Claude Desktop to the .tgz path

Лицензия

MIT © kimagure-dd

См. также

A
license - permissive license
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kimagure-dd/xirr-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server