Skip to content

Business Frameworks

by matryoshka-paradigms · remote · no sign-in to list tools · v2026.10.10 · published by GitHub user matryoshka-paradigms

Operating judgement for businesses under $50M revenue. Free top layer; nodes and bundles over x402.

Changes · 1

6 tools: 1 change things and 5 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http business-frameworks https://business-frameworks.matryoshka-paradigms.workers.dev/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "bf_apply_decision" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "bf_apply_decision" says "apply": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

6 tools

Changes things 1Claude Code: ask
  • bf_apply_decisionRuns one decision node's rule on the numbers you send and returns the computed figures, a verdict, the actions in order, the check to keep and the node text with its citations.1 finding

    Why it is in this group

    • The name "bf_apply_decision" says "apply": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "bf_apply_decision" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "bf_apply_decision" says "apply": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Runs one decision node's rule on the numbers you send and returns the computed figures, a verdict, the actions in order, the check to keep and the node text with its citations. Deterministic: the result comes from the published rule, not from a model. Costs the decision's catalogue price ($0.05, USDC on Base over x402); the input is checked first, and an input the rule cannot use is refused without charge. Call it when the user has the figures for a specific decision in a business under about $50M in revenue and wants the rule's answer for them; get the schema from bf_decision_schema first. Do not call it with invented or placeholder figures, and do not treat the verdict as tax, legal or investment advice.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
Only reads 5Claude Code: allow
  • bf_catalogueLists every Business Frameworks node: handle, title, layer, token count, price, whether it is free, and whether its decision rule can be run on numbers.No findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.
    Description, as the server wrote it
    Lists every Business Frameworks node: handle, title, layer, token count, price, whether it is free, and whether its decision rule can be run on numbers. Business Frameworks is operating judgement for running a business from launch to about $50M in revenue: value, cash flow, risk (the cost of capital) and growth, down to ten decision rules. Call this first, once, to choose which node answers the question; pass `branch` to see one branch only. Free. Do not use it for businesses above about $50M in revenue, for tax, legal or accounting treatment, or for market data: it holds judgement and rules, not figures about any company.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • bf_decision_schemaReturns the input schema, an example input and the price for one of the applied decisions (reinvest or distribute, build or run for cash, cash cycle, runway, owner pay, hurdle rate…Reads private dataNo findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "return" and "branch": it reads repositories.
    Description, as the server wrote it
    Returns the input schema, an example input and the price for one of the applied decisions (reinvest or distribute, build or run for cash, cash cycle, runway, owner pay, hurdle rate, concentration, pace of growth, price, adjacency; and, in the market branch, verdict, pricing power, binding node, rent, shock). Free. Call it before bf_apply_decision to learn which numbers the rule needs and what each one means; without `decision` it lists them all. Do not guess missing inputs to fill the schema: ask the user for the figures the business actually has.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • bf_read_bundleReturns the nodes of one bundle in order — the central node full, the supporting nodes terse — with citations and a cite-as line per node, on one settlement at the quoted price (th…No findings

    Why it is in this group

    • The name "bf_read_bundle" says "read": a word for reading.
    Description, as the server wrote it
    Returns the nodes of one bundle in order — the central node full, the supporting nodes terse — with citations and a cite-as line per node, on one settlement at the quoted price (the sum of the nodes' catalogue prices, $0.05 to about $0.20, USDC on Base over x402). Pass the bundle id from bf_resolve or bf_catalogue, and a band to add the scale band for the business's revenue. Call it after bf_resolve has quoted the bundle and the user accepts the price; the quote's url is the same resource over HTTP. Do not call it to browse: the quote already lists the nodes and the price, and a narrow question is cheaper node by node through bf_read_node.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • bf_read_nodeReturns one node's text with its public citations, child handles, related handles and a cite-as line; `variant` chooses full (the default: lede, conditions, reasoning) or terse (th…No findings

    Why it is in this group

    • The name "bf_read_node" says "read": a word for reading.
    Description, as the server wrote it
    Returns one node's text with its public citations, child handles, related handles and a cite-as line; `variant` chooses full (the default: lede, conditions, reasoning) or terse (the lede alone) at the same price. The free layer (the equation, the branch roots, value/15s and the decision-method nodes, marked free in bf_catalogue) costs nothing; every other node costs its catalogue price ($0.02 to $0.05, USDC on Base over x402), charged once per call and only when the text is returned. Call it with a `path` from bf_catalogue when the user's question needs that node's reasoning or decision rule; read the free parent before buying a child, and use bf_resolve when the question is broad enough to take several nodes. Do not call a paid path to see what it contains: the catalogue line says what it covers; and do not use it to run a rule on numbers, which is bf_apply_decision.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • bf_resolveQuotes the minimal set of nodes that answers a broad task — a decision bundle, a market (chain) bundle or a cross bundle — with its price, the sum of its nodes' catalogue prices, s…No findings

    Why it is in this group

    • The name "bf_resolve" says "resolve": a word for reading.
    Description, as the server wrote it
    Quotes the minimal set of nodes that answers a broad task — a decision bundle, a market (chain) bundle or a cross bundle — with its price, the sum of its nodes' catalogue prices, stated before anything is paid. Deterministic and free: a named bundle or decision wins, then the input fields sent, then the authored patterns of the question; on ambiguity it returns candidates with their task lines, and with no match the task lines to choose from. Call it when the user's question takes more than one node (a whole decision with its context, a supply chain read, a shock traced to a seat), passing the question, revenue_usd and chain_position when known; then buy the quote with bf_read_bundle or read nodes one at a time with bf_read_node. Do not use it for a single term or a single rule, which bf_catalogue and bf_read_node answer more cheaply, and do not treat a quote as an answer: it names the nodes and the price, nothing more.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged untrusted-input or outbound.

Reads private data1
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write0
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Install

Pinned to version 2026.10.10. Values in angle brackets are yours to fill in.

claude mcp add --transport http business-frameworks https://business-frameworks.matryoshka-paradigms.workers.dev/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__business-frameworks__bf_catalogue",
      "mcp__business-frameworks__bf_read_node",
      "mcp__business-frameworks__bf_decision_schema",
      "mcp__business-frameworks__bf_resolve",
      "mcp__business-frameworks__bf_read_bundle"
    ],
    "ask": [
      "mcp__business-frameworks__bf_apply_decision"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as business-frameworks. Review it before you use it.

Capability tags behind 1 rule
  • mcp__business-frameworks__bf_decision_schema private-data