MeritValue

Intrinsic stock value from SEC filings: DCF, EPV, Graham, moat signals. Deterministic, not guessed.

사용해야 할까요

품질 및 안전성

A
설명 품질
96%
스키마 완전성
99%
이름 품질
97%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (1)

  • LOWTool 'get_intrinsic_value' description lacks action verbget_intrinsic_value에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,536토큰 (도구 정의)
~3.5 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.98%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "meritvalue": {
      "url": "https://mcp.meritvalue.com/mcp"
    }
  }
}

원격 엔드포인트

https://mcp.meritvalue.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (7)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢get_thesis(ticker)

The thesis for a company, computed from its SEC filings: business quality and fair value in one breath. Deterministic — the same filings always produce the same sentences — and byte-identical to what meritvalue.com shows. Returns null when the filings support neither a moat read nor a fair value, rather than inventing one. Use this first when asked whether a company is worth owning.

입력 스키마

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "Ticker symbol, e.g. AAPL. Case-insensitive."
    }
  },
  "required": [
    "ticker"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "engine_version": {
      "type": "string",
      "description": "Engine build that produced these figures."
    },
    "ticker": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "thesis": {
      "type": [
        "object",
        "null"
      ],
      "description": "Null when the filings support neither a moat read nor a fair value. Quote verbatim.",
      "properties": {
        "business": {
          "type": [
            "string",
            "null"
          ],
          "description": "Business-quality sentence."
        },
        "value": {
          "type": "string",
          "description": "Valuation sentence."
        }
      }
    },
    "basis": {
      "type": "object",
      "description": "The figures the sentences were derived from.",
      "properties": {
        "return_metric": {
          "type": [
            "string",
            "null"
          ],
          "description": "'roic' or 'roe' — which one the filings supported."
        },
        "return_avg": {
          "type": [
            "number",
            "null"
          ],
          "description": "Average return on capital over the window."
        },
        "wacc": {
          "type": [
            "number",
            "null"
          ],
          "description": "Weighted average cost of capital."
        },
        "share_count_change": {
          "type": [
            "number",
            "null"
          ],
          "description": "Fractional change in shares; negative means buybacks."
        },
        "fair_value_range": {
          "type": "object",
          "description": "Low/high across the models that applied, and how many did.",
          "properties": {
            "low": {
              "type": [
                "number",
                "null"
              ],
              "description": "Lowest fair value."
            },
            "high": {
              "type": [
                "number",
                "null"
              ],
              "description": "Highest fair value."
            },
            "models": {
              "type": "integer"
            }
          }
        },
        "currency": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "disclaimer": {
      "type": "string"
    }
  },
  "required": [
    "engine_version",
    "ticker",
    "thesis"
  ]
}
🟢get_business_quality(ticker)

Is this a good business? Return on invested capital (or equity) against its cost of capital, and what management has done with the share count. Returns the year-by-year series as well as the averages, so the reading can be disputed without losing the evidence. These are signals, not verdicts — present them that way.

입력 스키마

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "Ticker symbol, e.g. AAPL. Case-insensitive."
    }
  },
  "required": [
    "ticker"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "engine_version": {
      "type": "string",
      "description": "Engine build that produced these figures."
    },
    "ticker": {
      "type": "string"
    },
    "years_covered": {
      "type": "integer",
      "description": "How many fiscal years the signals were computed over."
    },
    "moat": {
      "type": "object",
      "properties": {
        "return_metric": {
          "type": [
            "string",
            "null"
          ],
          "description": "ROIC where the filings support it, else ROE."
        },
        "return_avg": {
          "type": [
            "number",
            "null"
          ],
          "description": "Average of the series."
        },
        "return_series": {
          "type": "array",
          "description": "Year-by-year, so the average can be disputed."
        },
        "wacc": {
          "type": [
            "number",
            "null"
          ],
          "description": "Cost of capital the return is judged against."
        },
        "return_vs_wacc": {
          "type": [
            "number",
            "null"
          ],
          "description": "Ratio; above 1 is the moat signal."
        },
        "roe_avg": {
          "type": [
            "number",
            "null"
          ],
          "description": "Return on equity."
        },
        "roic_avg": {
          "type": [
            "number",
            "null"
          ],
          "description": "Return on invested capital."
        },
        "net_margin_avg": {
          "type": [
            "number",
            "null"
          ],
          "description": "Net margin."
        }
      }
    },
    "management": {
      "type": "object",
      "properties": {
        "share_count_start": {
          "type": [
            "number",
            "null"
          ],
          "description": "Shares at the start of the window."
        },
        "share_count_end": {
          "type": [
            "number",
            "null"
          ],
          "description": "Shares at the end."
        },
        "share_count_change": {
          "type": [
            "number",
            "null"
          ],
          "description": "Fractional change; negative means buybacks."
        },
        "debt_change": {
          "type": [
            "number",
            "null"
          ],
          "description": "Fractional change in debt."
        }
      }
    },
    "notes": {
      "type": "array",
      "description": "Caveats about what the filings did and didn't support."
    }
  },
  "required": [
    "engine_version",
    "ticker",
    "moat",
    "management"
  ]
}
🟢get_intrinsic_value(ticker)

Every valuation model's verdict plus the fair-value range: DCF (5Y/10Y), earnings-power value, Graham number, P/E reversion. Refusals are included and are meaningful — a DCF declining to value a bank is a result, not a gap. Never present a refused model as missing data, and never substitute another model's number for it.

입력 스키마

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "Ticker symbol, e.g. AAPL. Case-insensitive."
    }
  },
  "required": [
    "ticker"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "engine_version": {
      "type": "string",
      "description": "Engine build that produced these figures."
    },
    "ticker": {
      "type": "string"
    },
    "currency": {
      "type": [
        "string",
        "null"
      ],
      "description": "Reporting currency; foreign filers are not USD."
    },
    "fair_value_range": {
      "type": "object",
      "description": "Low/high across the models that applied, and how many did.",
      "properties": {
        "low": {
          "type": [
            "number",
            "null"
          ],
          "description": "Lowest fair value."
        },
        "high": {
          "type": [
            "number",
            "null"
          ],
          "description": "Highest fair value."
        },
        "models": {
          "type": "integer"
        }
      }
    },
    "wacc": {
      "type": [
        "number",
        "null"
      ],
      "description": "Discount rate used by the DCF models."
    },
    "models": {
      "type": "array",
      "description": "One entry per model, including the ones that refused.",
      "items": {
        "type": "object",
        "properties": {
          "model": {
            "type": "string"
          },
          "value_per_share": {
            "type": [
              "number",
              "null"
            ],
            "description": "Null when the model refused this company."
          },
          "applies": {
            "type": "boolean",
            "description": "False is a refusal, not missing data."
          },
          "currency": {
            "type": [
              "string",
              "null"
            ]
          },
          "computed_at": {
            "type": "string"
          },
          "engine_version": {
            "type": "string"
          },
          "outputs": {
            "type": [
              "object",
              "null"
            ],
            "description": "Model internals — the workings behind the value."
          },
          "assumptions": {
            "type": "array",
            "description": "Every input the model was run with, each naming where its default came from.",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "number"
                },
                "unit": {
                  "type": "string",
                  "enum": [
                    "ratio",
                    "years",
                    "usd"
                  ]
                },
                "source": {
                  "type": "string",
                  "description": "Where the default came from — never silent."
                },
                "overridable": {
                  "type": "boolean"
                }
              }
            }
          },
          "notes": {
            "type": "array",
            "description": "Why it refused, where it refused."
          }
        },
        "required": [
          "model",
          "value_per_share",
          "applies"
        ]
      }
    }
  },
  "required": [
    "engine_version",
    "ticker",
    "models"
  ]
}
🟢get_expected_return(ticker, price)

At a price you supply, the annual return the base case implies. MeritValue holds no market-data licence, so it never returns a live quote — the caller must provide the price. Ask the user for it, or have them check a broker; do not guess one, and do not present a guessed price as a real one.

입력 스키마

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "Ticker symbol, e.g. AAPL. Case-insensitive."
    },
    "price": {
      "type": "number",
      "description": "Share price to test, in the company's reporting currency."
    }
  },
  "required": [
    "ticker",
    "price"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "engine_version": {
      "type": "string",
      "description": "Engine build that produced these figures."
    },
    "ticker": {
      "type": "string"
    },
    "price": {
      "type": "number",
      "description": "Echoed back — the price you supplied, never a quote."
    },
    "expected_return": {
      "type": [
        "number",
        "null"
      ],
      "description": "Annual return the base case implies, as a fraction. Null when it can't be solved."
    },
    "refused": {
      "type": "string",
      "description": "Present when the flagship DCF doesn't apply. A refusal is a result — report it, don't retry."
    },
    "currency": {
      "type": [
        "string",
        "null"
      ]
    },
    "assumptions": {
      "type": "object",
      "properties": {
        "fcf_base": {
          "type": [
            "number",
            "null"
          ],
          "description": "Base free cash flow."
        },
        "fcf_growth": {
          "type": [
            "number",
            "null"
          ],
          "description": "Assumed growth rate."
        },
        "terminal_growth": {
          "type": [
            "number",
            "null"
          ],
          "description": "Terminal growth rate."
        },
        "years": {
          "type": "integer"
        },
        "net_debt": {
          "type": [
            "number",
            "null"
          ],
          "description": "Net debt."
        },
        "shares_outstanding": {
          "type": [
            "number",
            "null"
          ],
          "description": "Share count."
        }
      }
    },
    "disclaimer": {
      "type": "string"
    }
  },
  "required": [
    "engine_version",
    "ticker",
    "price",
    "expected_return"
  ]
}
🟢get_fundamentals(ticker)

Normalized fundamentals per fiscal year — revenue, earnings, cash flow, capex, debt, shares — each carrying the CIK, accession number and XBRL tag it came from. Use when the user wants the underlying numbers or asks where a figure came from. Foreign filers report in their home currency; read the currency field.

입력 스키마

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "Ticker symbol, e.g. AAPL. Case-insensitive."
    }
  },
  "required": [
    "ticker"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "engine_version": {
      "type": "string",
      "description": "Engine build that produced these figures."
    },
    "ticker": {
      "type": "string"
    },
    "cik": {
      "type": [
        "string",
        "number"
      ],
      "description": "SEC Central Index Key."
    },
    "name": {
      "type": "string"
    },
    "completeness": {
      "type": [
        "number",
        "null"
      ],
      "description": "Fraction of expected figures the filings actually supplied."
    },
    "fiscal_years": {
      "type": "integer",
      "description": "How many years are covered."
    },
    "warnings": {
      "type": "array"
    },
    "years": {
      "type": "array",
      "description": "One entry per fiscal year. Each figure carries the CIK, accession number and XBRL tag it came from.",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "engine_version",
    "ticker",
    "years"
  ]
}
🟢search_companies(query, limit)

Resolve a company name or partial ticker to covered companies — 'coca cola' finds KO. Use this before the other tools when you have a name rather than a symbol. Coverage is US filers with SEC filings.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Company name or ticker fragment."
    },
    "limit": {
      "type": "integer",
      "description": "Max results (1–50, default 10)."
    }
  },
  "required": [
    "query"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "engine_version": {
      "type": "string",
      "description": "Engine build that produced these figures."
    },
    "query": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "engine_version",
    "query",
    "results"
  ]
}
🟢screen_undervalued(model, limit)

Rank covered companies by a chosen model's value. Requires a key with screening enabled — a 403 means the key lacks it, which is a plan limit and not an error to retry.

입력 스키마

{
  "type": "object",
  "properties": {
    "model": {
      "type": "string",
      "enum": [
        "dcf-growth-exit-5y",
        "dcf-growth-exit-10y",
        "graham-number",
        "epv-equity"
      ],
      "description": "Valuation model to rank by."
    },
    "limit": {
      "type": "integer",
      "description": "Max results (1–500, default 50)."
    }
  }
}

출력 스키마

{
  "type": "object",
  "properties": {
    "engine_version": {
      "type": "string",
      "description": "Engine build that produced these figures."
    },
    "model": {
      "type": "string"
    },
    "min_completeness": {
      "type": [
        "number",
        "null"
      ],
      "description": "Filings below this threshold are excluded rather than published wrong."
    },
    "count": {
      "type": "integer"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "engine_version",
    "model",
    "count",
    "results"
  ]
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 7개
검증됨버전이 기록되지 않음도구 7개