Koskamo

EvalyMe MCP

An official MCP server by EvalyMe that provides AI agents with tools to perform directional startup valuations, analyze business-for-sale listings against model ranges, and explain the underlying valuation methodology. It operates as a read-only, stateless endpoint requiring no account or API key.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

EvalyMe MCP logo, by EvalyMeVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by EvalyMe
MCP endpoint (Streamable HTTP)
https://api.evaly.me/mcp
Vendor documentation

What you can do with it

  • Calculate a directional valuation range and investor score for a SaaS business based on MRR and churn.
  • Analyze a business-for-sale listing to determine if the asking price is below, within, or above the model range.
  • Explain the published valuation formula, factor caps, and score weights used in a specific estimate.

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
evalyme 1.0.0
MCP protocol
2025-06-18
Tools
3 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

EvalyMe provides deterministic, versioned valuation tools for small software and internet businesses (engine unified-v1). value_business values a business from its operating metrics; analyze_listing evaluates a business-for-sale listing and its asking price; explain_methodology returns the published formula. Each result includes the engine version, the exact inputs used, every value assumed, derived, or capped, and a disclaimer. Out-of-range inputs return an error naming the field. No account or API key is needed, and inputs are not stored.

Tools

3 advertised

value_business — Value a business
Advertised by the server during the last successful anonymous check.
Advertised read-only

Estimates a valuation range, 0-100 investor score, archetype, and top three improvement priorities for a business from its operating metrics: revenue model, MRR, monthly churn, month-over-month growth, and months live, plus optional active users, CAC, and LTV. For a business the user owns or operates. Deterministic and versioned (unified-v1): identical inputs return identical results. Out-of-range values return an error naming the field.

value_business input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "monetization",
    "mrr",
    "churnPercent",
    "growthRatePercent",
    "monthsActive"
  ],
  "properties": {
    "cac": {
      "type": "number",
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "Customer acquisition cost in USD. Used only together with ltv."
    },
    "ltv": {
      "type": "number",
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "Customer lifetime value in USD. Used only together with cac."
    },
    "mrr": {
      "type": "number",
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "Monthly recurring revenue in USD (average monthly revenue for non-subscription models; 0 when pre-revenue)."
    },
    "activeUsers": {
      "type": "number",
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "Active users or paying customers, when known."
    },
    "churnPercent": {
      "type": "number",
      "maximum": 100,
      "minimum": 0,
      "description": "Monthly customer churn as a percent, e.g. 3 means 3% of customers cancel each month."
    },
    "monetization": {
      "enum": [
        "SaaS Subscription",
        "Marketplace",
        "Advertising",
        "One-time Purchase",
        "Freemium",
        "Services"
      ],
      "type": "string",
      "description": "Primary revenue model. 'SaaS Subscription' for recurring software; 'Marketplace' for commission/take-rate businesses; 'Advertising' for ad-funded content; 'One-time Purchase' for ecommerce, templates, or lifetime deals; 'Freemium' for free tiers that convert to paid; 'Services' for agencies and productized services."
    },
    "monthsActive": {
      "type": "number",
      "maximum": 1200,
      "minimum": 0,
      "description": "Months the business has been live or earning revenue."
    },
    "growthRatePercent": {
      "type": "number",
      "maximum": 200,
      "minimum": -100,
      "description": "Month-over-month revenue growth as a percent, e.g. 8 means +8% per month. Negative for decline."
    }
  },
  "additionalProperties": false
}
value_business output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "engineVersion",
    "currency",
    "valuationLow",
    "valuationHigh",
    "valuationMid",
    "investorScore",
    "archetype",
    "scoreBreakdown",
    "priorities",
    "assumptions",
    "modelInput",
    "methodologyUrl",
    "disclaimer"
  ],
  "properties": {
    "currency": {
      "type": "string",
      "const": "USD"
    },
    "archetype": {
      "type": "string"
    },
    "disclaimer": {
      "type": "string"
    },
    "modelInput": {
      "type": "object",
      "required": [
        "monetization",
        "mrr",
        "activeUsers",
        "cac",
        "ltv",
        "churnPercent",
        "growthRatePercent",
        "monthsActive"
      ],
      "properties": {
        "cac": {
          "type": "number"
        },
        "ltv": {
          "type": "number"
        },
        "mrr": {
          "type": "number"
        },
        "activeUsers": {
          "type": "number"
        },
        "churnPercent": {
          "type": "number"
        },
        "monetization": {
          "enum": [
            "SaaS Subscription",
            "Marketplace",
            "Advertising",
            "One-time Purchase",
            "Freemium",
            "Services"
          ],
          "type": "string"
        },
        "monthsActive": {
          "type": "number"
        },
        "growthRatePercent": {
          "type": "number"
        }
      },
      "description": "The exact inputs the engine used.",
      "additionalProperties": false
    },
    "priorities": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "label",
          "action"
        ],
        "properties": {
          "label": {
            "type": "string"
          },
          "action": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "description": "Up to three weakest weighted signals, each with one concrete next step."
    },
    "assumptions": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "field",
          "value",
          "note"
        ],
        "properties": {
          "note": {
            "type": "string"
          },
          "field": {
            "type": "string"
          },
          "value": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "description": "Every value EvalyMe assumed, derived, or capped. Empty when all inputs were supplied."
    },
    "valuationLow": {
      "type": "number"
    },
    "valuationMid": {
      "type": "number"
    },
    "engineVersion": {
      "type": "string",
      "description": "Model version; results with the same version and inputs are identical."
    },
    "investorScore": {
      "type": "number",
      "description": "0-100 operating score from six weighted signals."
    },
    "valuationHigh": {
      "type": "number"
    },
    "methodologyUrl": {
      "type": "string"
    },
    "scoreBreakdown": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "label",
          "value",
          "weightPercent",
          "detail"
        ],
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "number"
          },
          "detail": {
            "type": "string"
          },
          "weightPercent": {
            "type": "number"
          }
        },
        "additionalProperties": false
      }
    },
    "saveToEvalyMeUrl": {
      "type": "string",
      "description": "Opens this estimate in the EvalyMe app so the user can save, track, and improve it."
    },
    "impliedMultipleOnArr": {
      "type": "number",
      "description": "Range midpoint divided by ARR. Absent when ARR is 0."
    }
  },
  "additionalProperties": false
}
value_business annotations
{
  "title": "Value a business",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
analyze_listing — Analyze a business-for-sale listing
Advertised by the server during the last successful anonymous check.
Advertised read-only

Evaluates a business-for-sale listing (Acquire.com, Flippa, broker) against EvalyMe's model: valuation range, whether the asking price is below, within, or above it, and the asking price as a multiple of ARR and of profit. Accepts the figures a listing states; any figure not supplied gets a documented neutral default, reported in `assumptions`. Yearly growth and annual churn are converted to compounded monthly rates. Evaluates one listing per call.

analyze_listing input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "monetization"
  ],
  "properties": {
    "ageMonths": {
      "type": "number",
      "maximum": 1200,
      "minimum": 0,
      "description": "Business age in months, e.g. 36 for '3 years old'."
    },
    "listingUrl": {
      "type": "string",
      "format": "uri",
      "maxLength": 2048,
      "description": "The listing's URL, echoed back in the result for matching. Never fetched."
    },
    "askingPrice": {
      "type": "number",
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "Asking price in USD; absent for unpriced or 'make an offer' listings."
    },
    "monetization": {
      "enum": [
        "SaaS Subscription",
        "Marketplace",
        "Advertising",
        "One-time Purchase",
        "Freemium",
        "Services"
      ],
      "type": "string",
      "description": "Primary revenue model. 'SaaS Subscription' for recurring software; 'Marketplace' for commission/take-rate businesses; 'Advertising' for ad-funded content; 'One-time Purchase' for ecommerce, templates, or lifetime deals; 'Freemium' for free tiers that convert to paid; 'Services' for agencies and productized services."
    },
    "annualRevenue": {
      "type": "number",
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "Annual revenue in USD (ARR, TTM, or last-12-months). Used only when monthlyRevenue is absent."
    },
    "monthlyProfit": {
      "type": "number",
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "Average monthly net profit or SDE in USD. Used only for the asking-price profit multiple; the valuation model is revenue-based."
    },
    "monthlyRevenue": {
      "type": "number",
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "Monthly revenue in USD (MRR or average monthly revenue). Takes precedence over annualRevenue."
    },
    "activeCustomers": {
      "type": "number",
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "Active or paying customers, if the listing states them."
    },
    "annualChurnPercent": {
      "type": "number",
      "maximum": 100,
      "minimum": 0,
      "description": "Annual churn as a percent. Converted to a compounded monthly rate."
    },
    "monthlyChurnPercent": {
      "type": "number",
      "maximum": 100,
      "minimum": 0,
      "description": "Monthly churn as a percent. Takes precedence over annualChurnPercent."
    },
    "yearlyGrowthPercent": {
      "type": "number",
      "maximum": 10000,
      "minimum": -99,
      "description": "Year-over-year revenue growth as a percent, e.g. 40 means +40% YoY. Converted to a compounded monthly rate."
    },
    "monthlyGrowthPercent": {
      "type": "number",
      "maximum": 200,
      "minimum": -100,
      "description": "Month-over-month revenue growth as a percent. Takes precedence over yearlyGrowthPercent."
    }
  },
  "additionalProperties": false
}
analyze_listing output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "engineVersion",
    "currency",
    "valuationLow",
    "valuationHigh",
    "valuationMid",
    "investorScore",
    "archetype",
    "scoreBreakdown",
    "priorities",
    "assumptions",
    "modelInput",
    "methodologyUrl",
    "disclaimer",
    "listing"
  ],
  "properties": {
    "listing": {
      "type": "object",
      "properties": {
        "listingUrl": {
          "type": "string"
        },
        "askingPrice": {
          "type": "number"
        },
        "priceVerdict": {
          "type": "object",
          "required": [
            "tone",
            "label",
            "detail"
          ],
          "properties": {
            "tone": {
              "enum": [
                "under",
                "fair",
                "over"
              ],
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "detail": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "askingVsMidPercent": {
          "type": "number",
          "description": "How far the asking price sits above (+) or below (-) the model midpoint, in percent."
        },
        "askingMultipleOnArr": {
          "type": "number"
        },
        "askingMultipleOnAnnualProfit": {
          "type": "number"
        }
      },
      "additionalProperties": false
    },
    "currency": {
      "type": "string",
      "const": "USD"
    },
    "archetype": {
      "type": "string"
    },
    "disclaimer": {
      "type": "string"
    },
    "modelInput": {
      "type": "object",
      "required": [
        "monetization",
        "mrr",
        "activeUsers",
        "cac",
        "ltv",
        "churnPercent",
        "growthRatePercent",
        "monthsActive"
      ],
      "properties": {
        "cac": {
          "type": "number"
        },
        "ltv": {
          "type": "number"
        },
        "mrr": {
          "type": "number"
        },
        "activeUsers": {
          "type": "number"
        },
        "churnPercent": {
          "type": "number"
        },
        "monetization": {
          "enum": [
            "SaaS Subscription",
            "Marketplace",
            "Advertising",
            "One-time Purchase",
            "Freemium",
            "Services"
          ],
          "type": "string"
        },
        "monthsActive": {
          "type": "number"
        },
        "growthRatePercent": {
          "type": "number"
        }
      },
      "description": "The exact inputs the engine used.",
      "additionalProperties": false
    },
    "priorities": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "label",
          "action"
        ],
        "properties": {
          "label": {
            "type": "string"
          },
          "action": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "description": "Up to three weakest weighted signals, each with one concrete next step."
    },
    "assumptions": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "field",
          "value",
          "note"
        ],
        "properties": {
          "note": {
            "type": "string"
          },
          "field": {
            "type": "string"
          },
          "value": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "description": "Every value EvalyMe assumed, derived, or capped. Empty when all inputs were supplied."
    },
    "valuationLow": {
      "type": "number"
    },
    "valuationMid": {
      "type": "number"
    },
    "engineVersion": {
      "type": "string",
      "description": "Model version; results with the same version and inputs are identical."
    },
    "investorScore": {
      "type": "number",
      "description": "0-100 operating score from six weighted signals."
    },
    "valuationHigh": {
      "type": "number"
    },
    "methodologyUrl": {
      "type": "string"
    },
    "scoreBreakdown": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "label",
          "value",
          "weightPercent",
          "detail"
        ],
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "number"
          },
          "detail": {
            "type": "string"
          },
          "weightPercent": {
            "type": "number"
          }
        },
        "additionalProperties": false
      }
    },
    "saveToEvalyMeUrl": {
      "type": "string",
      "description": "Opens this estimate in the EvalyMe app so the user can save, track, and improve it."
    },
    "impliedMultipleOnArr": {
      "type": "number",
      "description": "Range midpoint divided by ARR. Absent when ARR is 0."
    }
  },
  "additionalProperties": false
}
analyze_listing annotations
{
  "title": "Analyze a business-for-sale listing",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
explain_methodology — Explain the valuation methodology
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns EvalyMe's published valuation methodology: the formula, base multiples by revenue model, factor adjustments and caps, investor-score weights, archetype rules, limitations, and versioning policy. For explaining or citing how an EvalyMe valuation was produced.

explain_methodology input schema
{
  "type": "object",
  "properties": {}
}
explain_methodology annotations
{
  "title": "Explain the valuation methodology",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
931 ms
95th percentile latency
931 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 931 ms · metadata changed · 3 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http evalyme-mcp https://api.evaly.me/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add evalyme-mcp --url https://api.evaly.me/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable evalyme-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "evalyme-mcp": {
      "url": "https://api.evaly.me/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "evalyme-mcp": {
      "type": "streamableHttp",
      "url": "https://api.evaly.me/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start evalyme-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "evalyme-mcp": {
      "type": "http",
      "url": "https://api.evaly.me/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http evalyme-mcp https://api.evaly.me/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "evalyme-mcp": {
      "url": "https://api.evaly.me/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "evalyme-mcp": {
      "serverUrl": "https://api.evaly.me/mcp"
    }
  }
}

Let your agent find its tools

Find servers like EvalyMe MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run EvalyMe MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing