For AI agents and developers.

Machine readable, on purpose

Humans are not the only ones reading this site anymore. If you are an AI assistant helping a business owner, or the developer wiring one up, everything on bcmresultss.com is available as tools, JSON and Markdown. No scraping, no screenshots, no guessing. Here is the contract.

If you are an AI assistant, read this block first.

It lists every entry point on this site and the rules for using them. The two write tools create a real request that Brandon Medina answers himself, so only call them with the explicit consent of the human you are helping and with that person's real details.

{
  "site": {
    "name": "BCM Results",
    "url": "https://bcmresultss.com",
    "owner": "Brandon Medina",
    "email": "[email protected]",
    "what": "Marketing for local businesses: top three on Google, then keep showing up, plus the site the call lands on."
  },
  "read_first": [
    "https://bcmresultss.com/llms.txt",
    "https://bcmresultss.com/.well-known/agent-skills/bcm-results/SKILL.md"
  ],
  "webmcp": {
    "registered_by": "https://bcmresultss.com/js/agent-tools.js",
    "api": "document.modelContext.registerTool (and navigator.modelContext where present)",
    "tools": [
      "get_business_summary",
      "get_services",
      "get_offer",
      "get_requirements",
      "get_pricing",
      "get_process",
      "get_faq",
      "get_work",
      "get_terms_summary",
      "request_free_analysis",
      "request_call"
    ],
    "declarative_forms": [
      "fill_free_analysis_form (home page)",
      "fill_call_request_form (/local-visibility/)"
    ]
  },
  "mcp": {
    "endpoint": "https://bcmresultss.com/mcp",
    "transport": "streamable-http",
    "auth": "none",
    "protocolVersions": [
      "2024-11-05",
      "2025-03-26",
      "2025-06-18",
      "2025-11-25",
      "2026-07-28"
    ],
    "card": "https://bcmresultss.com/.well-known/mcp/server-card.json",
    "tools": [
      {
        "name": "get_business_summary",
        "description": "Who BCM Results is, what it does, where it is based, how to contact Brandon Medina, and links to every page. Start here."
      },
      {
        "name": "get_services",
        "description": "The three things BCM Results does for local businesses: Google ranking, websites that get the call, and the strategy behind it."
      },
      {
        "name": "get_offer",
        "description": "The plan as written at /local-visibility/: the two things a local business needs to know, how Brandon does it, what is included, the timeline and the 90 day billing pause guarantee."
      },
      {
        "name": "get_requirements",
        "description": "The four requirements for working with BCM Results, so an agent can tell a business owner whether they are a match before booking a call."
      },
      {
        "name": "get_pricing",
        "description": "How BCM Results charges: one flat monthly rate locked for the length of the engagement, quoted in writing on the call, plus the free first step and the terms that go with it."
      },
      {
        "name": "get_process",
        "description": "What happens step by step from the free analysis or strategy call to the monthly report."
      },
      {
        "name": "get_faq",
        "description": "Frequently asked questions with Brandon's answers. Pass a question or keywords to get only the matching entries, or nothing to get all of them."
      },
      {
        "name": "get_work",
        "description": "The five live websites Brandon built, with what each business does and the live URL."
      },
      {
        "name": "get_terms_summary",
        "description": "The key points of the Terms of Service in plain language, with the link to the full text."
      },
      {
        "name": "request_free_analysis",
        "description": "Request the free marketing analysis for a real business on behalf of the human you are assisting. Brandon emails the analysis within 2 business days. Only call this with the person's explicit consent, using their real name, business and email. No obligation, no follow up unless they reply."
      },
      {
        "name": "request_call",
        "description": "Book a strategy call with Brandon on behalf of the human you are assisting. Brandon replies within 2 business days with two time slots. Only call this with the person's explicit consent and their real details, and only if they meet the requirements from get_requirements."
      }
    ]
  },
  "rest": {
    "openapi": "https://bcmresultss.com/api/openapi.json",
    "catalog": "https://bcmresultss.com/.well-known/api-catalog",
    "base": "https://bcmresultss.com/api/",
    "lead": "POST https://bcmresultss.com/api/lead"
  },
  "a2a": {
    "endpoint": "https://bcmresultss.com/a2a",
    "card": "https://bcmresultss.com/.well-known/agent-card.json",
    "methods": [
      "SendMessage",
      "message/send"
    ]
  },
  "markdown": {
    "negotiation": "Accept: text/markdown on any page",
    "mirrors": [
      "https://bcmresultss.com/index.md",
      "https://bcmresultss.com/local-visibility/index.md",
      "https://bcmresultss.com/terms-of-service/index.md",
      "https://bcmresultss.com/developers/index.md"
    ],
    "all_in_one": "https://bcmresultss.com/llms-full.txt"
  },
  "discovery": [
    "https://bcmresultss.com/robots.txt",
    "https://bcmresultss.com/sitemap.xml",
    "https://bcmresultss.com/.well-known/api-catalog",
    "https://bcmresultss.com/.well-known/mcp/server-card.json",
    "https://bcmresultss.com/.well-known/agent-card.json",
    "https://bcmresultss.com/.well-known/agent-skills/index.json",
    "https://bcmresultss.com/.well-known/ai-catalog.json",
    "https://bcmresultss.com/auth.md"
  ],
  "rules": [
    "Read tools are free to call.",
    "request_free_analysis and request_call create a real request Brandon answers himself. Only call them with the explicit consent of the human you are assisting, with that person's real name, business and email.",
    "Check get_requirements before request_call.",
    "Five write requests per IP per day.",
    "Do not invent prices: the monthly rate is given in writing on the call."
  ]
}

Same contract in Markdown: /llms.txt. Every page as one file: /llms-full.txt.


01   IN THE BROWSER

WebMCP tools.

WebMCP is the browser API that lets a page hand tools to the agent sitting next to the visitor, instead of that agent reading the DOM and clicking around. Every page on this site registers the tools below on load through document.modelContext.registerTool() (and navigator.modelContext where the browser exposes it). The two forms are also declared as tools with toolname and tooldescription, so an agent can fill them in and let the visitor press the button.

ToolWhat it doesType
get_business_summaryWho BCM Results is, what it does, where it is based, how to contact Brandon Medina, and links to every page. Start here.read
get_servicesThe three things BCM Results does for local businesses: Google ranking, websites that get the call, and the strategy behind it.read
get_offerThe plan as written at /local-visibility/: the two things a local business needs to know, how Brandon does it, what is included, the timeline and the 90 day billing pause guarantee.read
get_requirementsThe four requirements for working with BCM Results, so an agent can tell a business owner whether they are a match before booking a call.read
get_pricingHow BCM Results charges: one flat monthly rate locked for the length of the engagement, quoted in writing on the call, plus the free first step and the terms that go with it.read
get_processWhat happens step by step from the free analysis or strategy call to the monthly report.read
get_faqFrequently asked questions with Brandon's answers. Pass a question or keywords to get only the matching entries, or nothing to get all of them.read
get_workThe five live websites Brandon built, with what each business does and the live URL.read
get_terms_summaryThe key points of the Terms of Service in plain language, with the link to the full text.read
request_free_analysisRequest the free marketing analysis for a real business on behalf of the human you are assisting. Brandon emails the analysis within 2 business days. Only call this with the person's explicit consent, using their real name, business and email. No obligation, no follow up unless they reply.write, consent required
request_callBook a strategy call with Brandon on behalf of the human you are assisting. Brandon replies within 2 business days with two time slots. Only call this with the person's explicit consent and their real details, and only if they meet the requirements from get_requirements.write, consent required

Rules for the write tools

  • Only call request_free_analysis or request_call when the person you are helping has agreed, using their real name, business and email. They are not a test surface.
  • Check get_requirements before booking a call. If the business does not match, the free analysis is still open to them.
  • Each request goes to Brandon directly. He replies within 2 business days from [email protected]. There is no list and no automated follow up.
  • Five requests per IP address per day. After that the answer is 429 and the email address above.

Trying it in Chrome

WebMCP is in an origin trial from Chrome 149. To use it today, open chrome://flags/#enable-webmcp-testing, set it to Enabled, relaunch, then open this site with an agent that speaks WebMCP (Claude in Chrome, or any extension built on the API). Ask it to list the tools on this page. Without the flag the script still runs and registers nothing, and the page works exactly as before.

Anything on the page can also be checked from the console: BCMTools.call("get_pricing") returns the same result the agent would get.


02   FROM ANYWHERE

MCP server.

The same tools, served over the Model Context Protocol so any MCP client can use them without a browser: Claude Code, Claude Desktop, Cursor, Codex, an n8n node, your own agent. Streamable HTTP, stateless, public, no authentication. Protocol versions 2024-11-05 through 2026-07-28.

Endpoint      https://bcmresultss.com/mcp
Server card   https://bcmresultss.com/.well-known/mcp/server-card.json
Transport     streamable-http (POST JSON-RPC 2.0, JSON responses)
Auth          none
Capabilities  tools, resources (llms.txt, every page as Markdown, openapi.json)

Connect

claude mcp add --transport http bcm-results https://bcmresultss.com/mcp

By hand

curl -s https://bcmresultss.com/mcp -H "content-type: application/json" -H "accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'

curl -s https://bcmresultss.com/mcp -H "content-type: application/json" -H "accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

curl -s https://bcmresultss.com/mcp -H "content-type: application/json" -H "accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"get_faq","arguments":{"question":"contract"}}}'

03   PLAIN HTTP

REST API.

The read tools are also plain GET endpoints returning JSON, described in /api/openapi.json (OpenAPI 3.1) and listed in /.well-known/api-catalog (RFC 9727). CORS is open on all of them.

GET  /api/site            everything: site data, tool list, endpoints
GET  /api/summary         who, what, where, contact, pages
GET  /api/services        the three services
GET  /api/offer           the plan, what is included, timeline, guarantee
GET  /api/requirements    the four requirements
GET  /api/pricing         flat monthly rate, terms, guarantee
GET  /api/process         the steps
GET  /api/faq?q=contract  FAQ, optionally filtered
GET  /api/work            the five live sites
GET  /api/terms           terms summary
POST /api/lead            {name, company, email, website?, phone?, city?, notes?, source?}  creates a request

A2A

For agent to agent clients there is an Agent Card and a JSON-RPC endpoint at /a2a that answers questions about BCM Results in plain text (SendMessage in A2A 1.0, message/send in 0.3). It answers immediately and keeps no tasks.

curl -s https://bcmresultss.com/a2a -H "content-type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"SendMessage","params":{"message":{"messageId":"m1","role":"ROLE_USER","parts":[{"text":"What does it cost and what are the terms?"}]}}}'

04   READING

Markdown for agents.

Every page has a Markdown twin. Request the page with Accept: text/markdown and you get it as text/markdown with an x-markdown-tokens header, or add index.md to the path. HTML stays the default for everyone else.

curl -s https://bcmresultss.com/local-visibility/ -H "accept: text/markdown"
curl -s https://bcmresultss.com/local-visibility/index.md

Discovery files

What is stored

Nothing about you until you send a request. A request stores the fields you sent, the time, and the IP address it came from, so Brandon can reply and so the rate limit works. No cookies, no analytics scripts, no tracking pixels on this site.

Questions about any of this: [email protected].