Profitability & Market Ratios
Deterministic profitability and market-value analysis tools for AI agents — margins, ROA, ROE, ROCE, ROIC, EPS, P/E, P/B, dividend yield and payout ratio via…
Что умеет
- Calculate Gross Margin: Calculate gross margin: gross profit divided by net sales — the share of revenue retained after the direct cost of goods sold. Formula: Gross Margin = Gross Profit / Net Sales.
- Calculate Operating Margin: Calculate operating margin: operating income divided by net sales — profitability from core operations before financing and tax. Formula: Operating Margin = Operating Incom
- Calculate Net Margin: Calculate net margin: net income divided by net sales — the share of every revenue pound/dollar that reaches the bottom line. Formula: Net Margin = Net Income / Net Sales. WHEN T
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
Deterministic profitability and market-value analysis tools for AI agents — margins, ROA, ROE, ROCE, ROIC, EPS, P/E, P/B, dividend yield and payout ratio via Model Context Protocol. Useful for corporate finance, equity analysis, financial analysis, quantitative analysis, financial formulas and financial modeling.
Как подключить
Как подключить Profitability & Market Ratios к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://profitability-market--johnbehar1500.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить Profitability & Market Ratios к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://profitability-market--johnbehar1500.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить Profitability & Market Ratios к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://profitability-market--johnbehar1500.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (12)
Технические названия из tools/list. Нужны только разработчикам.
| calculate_gross_margin | Calculate gross margin: gross profit divided by net sales — the share of revenue retained after the direct cost of goods sold. Formula: Gross Margin = Gross Profit / Net Sales. WHEN TO USE: Use to assess product-level economics and pricing power before operating expenses are considered. WHEN NOT TO USE: Do NOT use gross margin to compare companies with different cost classification practices (COGS boundary varies). BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero or non-finite inputs returns an explicit error instead of a number. RETURNS: JSON object { gross_margin: decimal (e.g. 0.40 = 40%), gross_margin_pct: number (e.g. 40.0), inputs }. PARAMETERS: gross_profit (required): Gross profit = net sales - COGS, e.g. 400000. Must be >= 0. net_sales (required): Net sales / revenue, e.g. 1000000. Must be > 0. |
| calculate_operating_margin | Calculate operating margin: operating income divided by net sales — profitability from core operations before financing and tax. Formula: Operating Margin = Operating Income / Net Sales. WHEN TO USE: Use to compare core business profitability across peers and over time, independent of capital structure. WHEN NOT TO USE: Do NOT use when one-off items distort operating income — consider normalised EBIT instead. BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero or non-finite inputs returns an explicit error instead of a number. RETURNS: JSON object { operating_margin: decimal (e.g. 0.18 = 18%), operating_margin_pct: number (e.g. 18.0), inputs }. PARAMETERS: operating_income (required): Operating income / EBIT, e.g. 180000. May be negative. net_sales (required): Net sales / revenue, e.g. 1000000. Must be > 0. |
| calculate_net_margin | Calculate net margin: net income divided by net sales — the share of every revenue pound/dollar that reaches the bottom line. Formula: Net Margin = Net Income / Net Sales. WHEN TO USE: Use for the all-in profitability picture after operating costs, interest, tax and other items. WHEN NOT TO USE: Do NOT use alone — net margin is affected by capital structure and tax; compare alongside gross and operating margins. BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero or non-finite inputs returns an explicit error instead of a number. RETURNS: JSON object { net_margin: decimal (e.g. 0.12 = 12%), net_margin_pct: number (e.g. 12.0), inputs }. PARAMETERS: net_income (required): Net income after tax, e.g. 120000. May be negative. net_sales (required): Net sales / revenue, e.g. 1000000. Must be > 0. |
| calculate_return_on_assets | Calculate return on assets (ROA): net income divided by average total assets — how efficiently a company converts its asset base into profit. Formula: ROA = Net Income / Average Total Assets. WHEN TO USE: Use to measure management’s efficiency in deploying all assets, independent of how they are financed. WHEN NOT TO USE: Do NOT compare ROA across industries with different asset intensity; use ROIC for a cleaner operating view. BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero or non-finite inputs returns an explicit error instead of a number. RETURNS: JSON object { return_on_assets: decimal (e.g. 0.08 = 8%), return_on_assets_pct: number (e.g. 8.0), inputs }. PARAMETERS: net_income (required): Net income after tax, e.g. 84000. May be negative. begin_total_assets (required): Total assets at period start, e.g. 1000000. Must be > 0. end_total_assets (required): Total assets at period end, e.g. 1100000. Must be > 0. |
| calculate_return_on_equity | Calculate return on equity (ROE): net income divided by average shareholders’ equity — the return earned on the owners’ invested capital. Formula: ROE = Net Income / Average Shareholders’ Equity. WHEN TO USE: Use to assess how well management generates returns for shareholders; decompose via DuPont (margin x turnover x leverage) for drivers. WHEN NOT TO USE: Do NOT use when equity is small or negative (distress / heavy buybacks) — ROE explodes or inverts and misleads. BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero or non-finite inputs returns an explicit error instead of a number. RETURNS: JSON object { return_on_equity: decimal (e.g. 0.15 = 15%), return_on_equity_pct: number (e.g. 15.0), inputs }. PARAMETERS: net_income (required): Net income after tax, e.g. 150000. May be negative. begin_equity (required): Shareholders’ equity at period start, e.g. 950000. Must be > 0. end_equity (required): Shareholders’ equity at period end, e.g. 1050000. Must be > 0. |
| calculate_return_on_capital_employed | Calculate return on capital employed (ROCE): EBIT divided by capital employed (total assets minus current liabilities) — return generated by the capital actually deployed in the business. Formula: ROCE = EBIT / (Total Assets - Current Liabilities). WHEN TO USE: Use to compare profitability across companies with different capital structures — EBIT (pre-financing) over all capital employed. WHEN NOT TO USE: Do NOT use when capital employed is near zero or negative; prefer ROIC for after-tax operating returns. BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero or non-finite inputs returns an explicit error instead of a number. RETURNS: JSON object { return_on_capital_employed: decimal (e.g. 0.22 = 22%), return_on_capital_employed_pct: number (e.g. 22.0), inputs }. PARAMETERS: ebit (required): Earnings before interest and taxes, e.g. 220000. May be negative. total_assets (required): Total assets, e.g. 1200000. Must be > 0. current_liabilities (required): Total current liabilities, e.g. 200000. Must be >= 0. |
| calculate_return_on_invested_capital | Calculate return on invested capital (ROIC): NOPAT divided by invested capital — the after-tax operating return on capital invested in the business. Formula: ROIC = NOPAT / Invested Capital. WHEN TO USE: Use to assess value creation: ROIC above the cost of capital creates value; below it destroys value. Core metric for investors. WHEN NOT TO USE: Do NOT use if you lack a clean NOPAT or invested capital figure — inconsistent definitions make ROIC incomparable. BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero or non-finite inputs returns an explicit error instead of a number. RETURNS: JSON object { return_on_invested_capital: decimal (e.g. 0.18 = 18%), return_on_invested_capital_pct: number (e.g. 18.0), inputs }. PARAMETERS: nopat (required): Net operating profit after tax = EBIT x (1 - tax rate), e.g. 180000. May be negative. invested_capital (required): Invested capital (equity + debt - cash, or operating assets - operating liabilities), e.g. 1000000. Must be > 0. |
| calculate_eps | Calculate earnings per share (EPS): net income divided by weighted average shares outstanding — profit attributable to each share. Formula: EPS = Net Income / Weighted Average Shares Outstanding. WHEN TO USE: Use as the denominator for P/E and payout ratios and to track per-share profitability over time. WHEN NOT TO USE: Do NOT use basic share count when convertible securities exist — use diluted shares for a conservative EPS. BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero or non-finite inputs returns an explicit error instead of a number. RETURNS: JSON object { eps: number (currency per share, e.g. 1.25), inputs }. PARAMETERS: net_income (required): Net income attributable to common shareholders, e.g. 1250000. May be negative. weighted_avg_shares_outstanding (required): Weighted average shares outstanding during the period, e.g. 1000000. Must be > 0. |
| calculate_pe_ratio | Calculate the price-to-earnings (P/E) ratio: share price divided by earnings per share — how much investors pay per unit of earnings. Formula: P/E = Share Price / EPS. WHEN TO USE: Use for relative valuation against peers, sector averages, or a company’s own history. Higher P/E = market expects higher growth. WHEN NOT TO USE: Do NOT use when EPS is negative or near zero (ratio becomes meaningless), and prefer forward P/E for growth companies. BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero or non-finite inputs returns an explicit error instead of a number. RETURNS: JSON object { pe_ratio: number (e.g. 18.5 = 18.5x), inputs }. PARAMETERS: share_price (required): Current share price in currency units, e.g. 45.00. Must be > 0. earnings_per_share (required): Earnings per share (trailing or forward), e.g. 2.43. Must be > 0 for a meaningful ratio. |
| calculate_pb_ratio | Calculate the price-to-book (P/B) ratio: share price divided by book value per share — how much investors pay relative to accounting net asset value. Formula: P/B = Share Price / Book Value Per Share. WHEN TO USE: Use for valuing asset-heavy or financial companies where book value is a meaningful anchor; P/B < 1 can indicate undervaluation or low returns on assets. WHEN NOT TO USE: Do NOT use for asset-light businesses (intangibles make book value meaningless) or where book value is negative. BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero or non-finite inputs returns an explicit error instead of a number. RETURNS: JSON object { pb_ratio: number (e.g. 1.4 = 1.4x), inputs }. PARAMETERS: share_price (required): Current share price, e.g. 45.00. Must be > 0. book_value_per_share (required): Book value per share (shareholders’ equity / shares), e.g. 32.00. Must be > 0 for a meaningful ratio. |
| calculate_dividend_yield | Calculate dividend yield: annual dividends per share divided by share price — the cash return a shareholder receives from dividends. Formula: Dividend Yield = Annual Dividends Per Share / Share Price. WHEN TO USE: Use to compare income return against bond yields or peer dividend policies; a yield far above peers can signal a depressed price or unsustainable payout. WHEN NOT TO USE: Do NOT annualise a one-off special dividend as if it were regular income. BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero or non-finite inputs returns an explicit error instead of a number. RETURNS: JSON object { dividend_yield: decimal (e.g. 0.035 = 3.5%), dividend_yield_pct: number (e.g. 3.5), inputs }. PARAMETERS: annual_dividends_per_share (required): Annual dividends per share, e.g. 1.58. Must be >= 0. share_price (required): Current share price, e.g. 45.00. Must be > 0. |
| calculate_payout_ratio | Calculate the payout ratio: dividends per share divided by earnings per share — the share of profits distributed as dividends. Formula: Payout Ratio = Dividends Per Share / EPS. WHEN TO USE: Use to judge dividend sustainability: payout above 100% means dividends exceed earnings (funded by debt or reserves). WHEN NOT TO USE: Do NOT use when EPS is negative (ratio is meaningless), and note young growth companies legitimately pay little or nothing. BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero or non-finite inputs returns an explicit error instead of a number. RETURNS: JSON object { payout_ratio: decimal (e.g. 0.55 = 55%), payout_ratio_pct: number (e.g. 55.0), inputs }. PARAMETERS: dividends_per_share (required): Dividends per share in the period, e.g. 1.34. Must be >= 0. earnings_per_share (required): Earnings per share, e.g. 2.43. Must be > 0 for a meaningful ratio. |