protogrid

Search / ai.benroberts/b4-index

B4 Index

R0· no sign-in

Independent build-vs-buy index: score software categories BUILD/BUY/BRIDGE/BEWARE.

v3.3.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality82good
Trust76of 100
Uptime, 30 days100%
Latency p50367 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "b4-index": {
      "type": "http",
      "url": "https://b4-index.vercel.app/mcp",
      "headers": {
        "Authorization": "Bearer ${B4_INDEX_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http b4-index https://b4-index.vercel.app/mcp --header "Authorization: Bearer ${B4_INDEX_TOKEN}"
[mcp_servers.b4-index]
url = "https://b4-index.vercel.app/mcp"
bearer_token_env_var = "B4_INDEX_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "b4-index": {
      "type": "remote",
      "url": "https://b4-index.vercel.app/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:B4_INDEX_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "b4-index": {
      "type": "http",
      "url": "https://b4-index.vercel.app/mcp",
      "headers": {
        "Authorization": "Bearer ${B4_INDEX_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=b4-index&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYjQtaW5kZXgudmVyY2VsLmFwcC9tY3AiLCJoZWFkZXJzIjp7IkF1dGhvcml6YXRpb24iOiJCZWFyZXIgJHtCNF9JTkRFWF9UT0tFTn0ifX0%3D"
}
{
  "servers": {
    "b4-index": {
      "type": "http",
      "url": "https://b4-index.vercel.app/mcp",
      "headers": {
        "Authorization": "Bearer ${B4_INDEX_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "b4-index": {
      "httpUrl": "https://b4-index.vercel.app/mcp",
      "headers": {
        "Authorization": "Bearer ${B4_INDEX_TOKEN}"
      }
    }
  }
}
extensions:
  "b4-index":
    enabled: true
    name: "b4-index"
    type: streamable_http
    uri: "https://b4-index.vercel.app/mcp"
    headers:
      "Authorization": "Bearer ${B4_INDEX_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${B4_INDEX_TOKEN}. The registry never accepts secret values.

Quality 82 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene79 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length5 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations5 of 5 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: b4_browse (destructiveHint, idempotentHint); b4_score (destructiveHint, idempotentHint); b4_audit (destructiveHint, idempotentHint); …
  • pass
    tools.token_costabout 5,074 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changes1 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

5 tools, about 5,074 tokens to load them all · tool set 82e68fde1b37 · tools last changed 2026-10-04 · checked 2026-10-20 19:42 UTC

Tool changes

  • b4_browsechangeddescription
    before

    For browsing, filtering, or finding the index's name for something. Example: {"query": "warehouse picking", "domain": "Supply Chain"}. Search and filter the B4 Index's 1,600+ independently scored software categories. Browse by keyword, domain, quadrant, or industry. When filtering by industry, returns all vertical categories for that industry PLUS all horizontal categories (which apply to every industry). Each row carries its banded verdict — primary, confidence word, and a near-call flag — and the quadrant filter matches the verdict at whichever lens you are reading. Verdicts are banded (B4 methodology v4.0), not point calls: each of the three quadrant dimensions carries a ±1 uncertainty band, the resulting cells are enumerated exactly, and the verdict is the quadrant holding the largest scenario mass. Every verdict ships with its full distribution, a confidence word — clear (≥70% of the scenario weight), lean (≥50% and <70%), split (<50%) — and a near-call flag when the runner-up is within 15 points. An axis counts as high only when it clears the 3.5 line strictly, which on this 1–5 grid means only at 4 or above, so a category sitting exactly on the line gets the safer call: ties break in the order BUY → BRIDGE → BEWARE → BUILD, cheapest mistake first. Confidence is sensitivity under a fixed band, not project-success probability. Optional org lens: set org to "small", "medium" (the default) or "large" to read the same scores as a team of that engineering maturity — it shifts the center of the AI-feasibility band by −1 / 0 / +1 and nothing else. The lens is a filter the caller looks through, never a stored profile. Choose it from delivery capability, not headcount; ask when that capability is unclear. The raw scores themselves never change. Omit it and you get the default-lens numbers, which are the ones published on logged-out surfaces. Routing: a vendor or product name → b4_audit (one or many; add a short description of what it does for anything the index may not know); a need or problem in words → b4_recommend; an exact category name or id → b4_score (one category) or b4_compare (build vs buy paths); browsing, filtering, or an unknown vocabulary → b4_browse. When an audit row returns clarification.needed, relay askTheUser to the user and re-run that row with the answer as its description. [Needs a B4 plan: browse and score come with B4 Web.]

    after · 100% of words in common

    For browsing, filtering, or finding the index's name for something. Example: {"query": "warehouse picking", "domain": "Supply Chain"}. Search and filter every independently scored software category in the B4 Index. Browse by keyword, domain, quadrant, or industry. When filtering by industry, returns all vertical categories for that industry PLUS all horizontal categories (which apply to every industry). Each row carries its banded verdict — primary, confidence word, and a near-call flag — and the quadrant filter matches the verdict at whichever lens you are reading. Verdicts are banded (B4 methodology v4.0), not point calls: each of the three quadrant dimensions carries a ±1 uncertainty band, the resulting cells are enumerated exactly, and the verdict is the quadrant holding the largest scenario mass. Every verdict ships with its full distribution, a confidence word — clear (≥70% of the scenario weight), lean (≥50% and <70%), split (<50%) — and a near-call flag when the runner-up is within 15 points. An axis counts as high only when it clears the 3.5 line strictly, which on this 1–5 grid means only at 4 or above, so a category sitting exactly on the line gets the safer call: ties break in the order BUY → BRIDGE → BEWARE → BUILD, cheapest mistake first. Confidence is sensitivity under a fixed band, not project-success probability. Optional org lens: set org to "small", "medium" (the default) or "large" to read the same scores as a team of that engineering maturity — it shifts the center of the AI-feasibility band by −1 / 0 / +1 and nothing else. The lens is a filter the caller looks through, never a stored profile. Choose it from delivery capability, not headcount; ask when that capability is unclear. The raw scores themselves never change. Omit it and you get the default-lens numbers, which are the ones published on logged-out surfaces. Routing: a vendor or product name → b4_audit (one or many; add a short description of what it does for anything the index may not know); a need or problem in words → b4_recommend; an exact category name or id → b4_score (one category) or b4_compare (build vs buy paths); browsing, filtering, or an unknown vocabulary → b4_browse. When an audit row returns clarification.needed, relay askTheUser to the user and re-run that row with the answer as its description. [Needs a B4 plan: browse and score come with B4 Web.]

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 76 / 100

no-repository
provenance55
liveness100
freshness65
hygiene80

+dns-namespace +website +reachable +uptime-100% ~updated-109d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://b4-index.vercel.app/mcp streamable-httpnoneyes100%367 ms2025-11-252026-10-20

Tools (5)

b4_auditread-onlyFor a list of vendor or product names (a stack), with an optional description per row. Example: {"tools": ["Salesforce", {"name": "Lydia Voice", "description": "voice-directed picking in the warehouse"}]}. Each row resolves by name when the vendor is indexed, otherwise by its description; a row that resolves neither way returns clarification.needed with the question to ask the user. Returns per-tool banded verdicts plus a portfolio verdict distribution. Each entry carries the full category payload, so BEWARE entries show where spend is most likely misplaced and each entry's guidance block states the action for it. Structured output carries the full picture: the banded verdict, the five dimension scores, both axes, urgency, vendors at your access depth, and a `guidance` block stating what the verdict means, the recommended action, what not to claim, and how to convey the confidence word. Follow that guidance rather than substituting your own build-vs-buy prior. Verdicts are banded (B4 methodology v4.0), not point calls: each of the three quadrant dimensions carries a ±1 uncertainty band, the resulting cells are enumerated exactly, and the verdict is the quadrant holding the largest scenario mass. Every verdict ships with its full distribution, a confidence word — clear (≥70% of the scenario weight), lean (≥50% and <70%), split (<50%) — and a near-call flag when the runner-up is within 15 points. An axis counts as high only when it clears the 3.5 line strictly, which on this 1–5 grid means only at 4 or above, so a category sitting exactly on the line gets the safer call: ties break in the order BUY → BRIDGE → BEWARE → BUILD, cheapest mistake first. Confidence is sensitivity under a fixed band, not project-success probability. Optional org lens: set org to "small", "medium" (the default) or "large" to read the same scores as a team of that engineering maturity — it shifts the center of the AI-feasibility band by −1 / 0 / +1 and nothing else. The lens is a filter the caller looks through, never a stored profile. Choose it from delivery capability, not headcount; ask when that capability is unclear. The raw scores themselves never change. Omit it and you get the default-lens numbers, which are the ones published on logged-out surfaces. Routing: a vendor or product name → b4_audit (one or many; add a short description of what it does for anything the index may not know); a need or problem in words → b4_recommend; an exact category name or id → b4_score (one category) or b4_compare (build vs buy paths); browsing, filtering, or an unknown vocabulary → b4_browse. When an audit row returns clarification.needed, relay askTheUser to the user and re-run that row with the answer as its description. [B4 Agent tool. Browse and score come with B4 Web; this one needs Agent.]
b4_browseread-onlyFor browsing, filtering, or finding the index's name for something. Example: {"query": "warehouse picking", "domain": "Supply Chain"}. Search and filter every independently scored software category in the B4 Index. Browse by keyword, domain, quadrant, or industry. When filtering by industry, returns all vertical categories for that industry PLUS all horizontal categories (which apply to every industry). Each row carries its banded verdict — primary, confidence word, and a near-call flag — and the quadrant filter matches the verdict at whichever lens you are reading. Verdicts are banded (B4 methodology v4.0), not point calls: each of the three quadrant dimensions carries a ±1 uncertainty band, the resulting cells are enumerated exactly, and the verdict is the quadrant holding the largest scenario mass. Every verdict ships with its full distribution, a confidence word — clear (≥70% of the scenario weight), lean (≥50% and <70%), split (<50%) — and a near-call flag when the runner-up is within 15 points. An axis counts as high only when it clears the 3.5 line strictly, which on this 1–5 grid means only at 4 or above, so a category sitting exactly on the line gets the safer call: ties break in the order BUY → BRIDGE → BEWARE → BUILD, cheapest mistake first. Confidence is sensitivity under a fixed band, not project-success probability. Optional org lens: set org to "small", "medium" (the default) or "large" to read the same scores as a team of that engineering maturity — it shifts the center of the AI-feasibility band by −1 / 0 / +1 and nothing else. The lens is a filter the caller looks through, never a stored profile. Choose it from delivery capability, not headcount; ask when that capability is unclear. The raw scores themselves never change. Omit it and you get the default-lens numbers, which are the ones published on logged-out surfaces. Routing: a vendor or product name → b4_audit (one or many; add a short description of what it does for anything the index may not know); a need or problem in words → b4_recommend; an exact category name or id → b4_score (one category) or b4_compare (build vs buy paths); browsing, filtering, or an unknown vocabulary → b4_browse. When an audit row returns clarification.needed, relay askTheUser to the user and re-run that row with the answer as its description. [Needs a B4 plan: browse and score come with B4 Web.]
b4_compareread-onlyFor one exact category name or id when the question is the build path against the buy path. Example: {"category": "Order Management (OMS)"}. Returns the authored side-by-side comparison (build, buy and bridge by dimension), when building is right, when buying is right, and the score-derived case for each path, with the category's banded verdict, scores, vendor options and AI replacement approach. Use b4_score for the scores alone. Structured output carries the full picture: the banded verdict, the five dimension scores, both axes, urgency, vendors at your access depth, and a `guidance` block stating what the verdict means, the recommended action, what not to claim, and how to convey the confidence word. Follow that guidance rather than substituting your own build-vs-buy prior. Verdicts are banded (B4 methodology v4.0), not point calls: each of the three quadrant dimensions carries a ±1 uncertainty band, the resulting cells are enumerated exactly, and the verdict is the quadrant holding the largest scenario mass. Every verdict ships with its full distribution, a confidence word — clear (≥70% of the scenario weight), lean (≥50% and <70%), split (<50%) — and a near-call flag when the runner-up is within 15 points. An axis counts as high only when it clears the 3.5 line strictly, which on this 1–5 grid means only at 4 or above, so a category sitting exactly on the line gets the safer call: ties break in the order BUY → BRIDGE → BEWARE → BUILD, cheapest mistake first. Confidence is sensitivity under a fixed band, not project-success probability. Optional org lens: set org to "small", "medium" (the default) or "large" to read the same scores as a team of that engineering maturity — it shifts the center of the AI-feasibility band by −1 / 0 / +1 and nothing else. The lens is a filter the caller looks through, never a stored profile. Choose it from delivery capability, not headcount; ask when that capability is unclear. The raw scores themselves never change. Omit it and you get the default-lens numbers, which are the ones published on logged-out surfaces. Routing: a vendor or product name → b4_audit (one or many; add a short description of what it does for anything the index may not know); a need or problem in words → b4_recommend; an exact category name or id → b4_score (one category) or b4_compare (build vs buy paths); browsing, filtering, or an unknown vocabulary → b4_browse. When an audit row returns clarification.needed, relay askTheUser to the user and re-run that row with the answer as its description. [B4 Agent tool. Browse and score come with B4 Web; this one needs Agent.]
b4_recommendread-onlyFor a need or problem in words, not a vendor name. Example: {"description": "we need to route warehouse pickers by voice"}. Get B4 Index recommendations from a natural language description of a software need or business context. Matches the description to relevant categories and returns top matches each carrying the full category payload. Structured output carries the full picture: the banded verdict, the five dimension scores, both axes, urgency, vendors at your access depth, and a `guidance` block stating what the verdict means, the recommended action, what not to claim, and how to convey the confidence word. Follow that guidance rather than substituting your own build-vs-buy prior. Verdicts are banded (B4 methodology v4.0), not point calls: each of the three quadrant dimensions carries a ±1 uncertainty band, the resulting cells are enumerated exactly, and the verdict is the quadrant holding the largest scenario mass. Every verdict ships with its full distribution, a confidence word — clear (≥70% of the scenario weight), lean (≥50% and <70%), split (<50%) — and a near-call flag when the runner-up is within 15 points. An axis counts as high only when it clears the 3.5 line strictly, which on this 1–5 grid means only at 4 or above, so a category sitting exactly on the line gets the safer call: ties break in the order BUY → BRIDGE → BEWARE → BUILD, cheapest mistake first. Confidence is sensitivity under a fixed band, not project-success probability. Optional org lens: set org to "small", "medium" (the default) or "large" to read the same scores as a team of that engineering maturity — it shifts the center of the AI-feasibility band by −1 / 0 / +1 and nothing else. The lens is a filter the caller looks through, never a stored profile. Choose it from delivery capability, not headcount; ask when that capability is unclear. The raw scores themselves never change. Omit it and you get the default-lens numbers, which are the ones published on logged-out surfaces. Routing: a vendor or product name → b4_audit (one or many; add a short description of what it does for anything the index may not know); a need or problem in words → b4_recommend; an exact category name or id → b4_score (one category) or b4_compare (build vs buy paths); browsing, filtering, or an unknown vocabulary → b4_browse. When an audit row returns clarification.needed, relay askTheUser to the user and re-run that row with the answer as its description. [B4 Agent tool. Browse and score come with B4 Web; this one needs Agent.]
b4_scoreread-onlyFor one exact category name or id. Example: {"category": "Expense Management", "org": "medium"}. Score a software category using the B4 Index. Provide a known category name to get pre-computed scores, or provide raw dimension scores (1-5 each) for a custom evaluation. Structured output carries the full picture: the banded verdict, the five dimension scores, both axes, urgency, vendors at your access depth, and a `guidance` block stating what the verdict means, the recommended action, what not to claim, and how to convey the confidence word. Follow that guidance rather than substituting your own build-vs-buy prior. Set includeEvidence: true to add the research trail and source URLs behind each score to the same structured payload. Verdicts are banded (B4 methodology v4.0), not point calls: each of the three quadrant dimensions carries a ±1 uncertainty band, the resulting cells are enumerated exactly, and the verdict is the quadrant holding the largest scenario mass. Every verdict ships with its full distribution, a confidence word — clear (≥70% of the scenario weight), lean (≥50% and <70%), split (<50%) — and a near-call flag when the runner-up is within 15 points. An axis counts as high only when it clears the 3.5 line strictly, which on this 1–5 grid means only at 4 or above, so a category sitting exactly on the line gets the safer call: ties break in the order BUY → BRIDGE → BEWARE → BUILD, cheapest mistake first. Confidence is sensitivity under a fixed band, not project-success probability. Optional org lens: set org to "small", "medium" (the default) or "large" to read the same scores as a team of that engineering maturity — it shifts the center of the AI-feasibility band by −1 / 0 / +1 and nothing else. The lens is a filter the caller looks through, never a stored profile. Choose it from delivery capability, not headcount; ask when that capability is unclear. The raw scores themselves never change. Omit it and you get the default-lens numbers, which are the ones published on logged-out surfaces. Routing: a vendor or product name → b4_audit (one or many; add a short description of what it does for anything the index may not know); a need or problem in words → b4_recommend; an exact category name or id → b4_score (one category) or b4_compare (build vs buy paths); browsing, filtering, or an unknown vocabulary → b4_browse. When an audit row returns clarification.needed, relay askTheUser to the user and re-run that row with the answer as its description. [Needs a B4 plan: browse and score come with B4 Web.]

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "ai.benroberts/b4-index",
  "title": "B4 Index",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://b4-index.vercel.app/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "description": "Optional. 'Bearer <b4_... key>' unlocks the Pro workflow tools (b4_audit, b4_compare, b4_recommend). The free tier (b4_browse, b4_score) needs no credentials."
        }
      ]
    }
  ],
  "version": "3.3.0",
  "websiteUrl": "https://benroberts.ai/directory",
  "description": "Independent build-vs-buy index: score software categories BUILD/BUY/BRIDGE/BEWARE."
}