Koskamo

Meadley Bros. MCP

An official MCP server provided by Meadley Bros. that allows AI agents to count households matching specific trade criteria (e.g., tree service, roofing) based on property signals, preview market availability, and initiate checkout for purchasing mailing lists.

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.

Meadley Bros. MCP logo, by Meadley Bros.Vendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Meadley Bros.
You need:Members can create up to five keys under Advanced integrations in Profile and billinggive the assistant your API key as a bearer token when you add the connector
MCP endpoint (Streamable HTTP)
https://api.meadleybrothers.com/mcp
Vendor documentation

What you can do with it

  • Count households fitting a trade in a service area
  • Preview market signals and matching rules
  • Start checkout for mailing list purchase

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
meadley-bros 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": false
  }
}

Server-provided instructions

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

Meadley Bros. sells mailing lists of homes that fit a home-service contractor's trade, chosen from property signals (tree canopy, slope, lot size, pool) rather than just addresses. Use count_homes first; it needs no key and returns a buy link. preview_market and start_checkout need the user's Meadley Bros. API key. Members can create keys in Profile and billing under Advanced integrations. Lists are available in supported areas of the contiguous United States. Records and measured signals vary by trade and area; /v1/count reports pendingSignals where a signal is not yet processed. A count alone does not guarantee that a list can be purchased. Excluded states: CA, NJ, OR, VT. Never invent a count; report the number the tool returns.

Tools

3 advertised

count_homes — Count matching homes
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

How many households in a service area fit a contractor's trade, judged from property signals (tree canopy, slope, lot size, pool) rather than just addresses. Free, no key needed. Returns the count, the price to buy, and a link where the user can buy the list in one step.

count_homes input schema
{
  "type": "object",
  "required": [
    "radiusMiles",
    "trade"
  ],
  "properties": {
    "lat": {
      "type": "number",
      "description": "Latitude of the center of the service area (alternative to zip)"
    },
    "lng": {
      "type": "number",
      "description": "Longitude of the center of the service area (alternative to zip)"
    },
    "zip": {
      "type": "string",
      "pattern": "^[0-9]{5}$",
      "description": "Five-digit US ZIP code at the center of the service area. Easiest way to say where. Send this, OR city and state, OR lat and lng."
    },
    "city": {
      "type": "string",
      "description": "City name at the center of the service area, with state. Alternative to zip."
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "Two-letter state, required with city."
    },
    "trade": {
      "enum": [
        "tree-services",
        "forestry-mulching",
        "land-services",
        "lawn-care",
        "landscaping",
        "hardscaping",
        "roofing",
        "pest-control",
        "pool-services",
        "generic-other"
      ],
      "type": "string",
      "description": "The contractor's trade. One of: tree-services, forestry-mulching, land-services, lawn-care, landscaping, hardscaping, roofing, pest-control, pool-services. For any other home or property service use generic-other."
    },
    "radiusMiles": {
      "type": "number",
      "maximum": 50,
      "minimum": 0.5,
      "description": "Service radius in miles, 0.5 to 50. A typical contractor uses 15 to 25."
    },
    "recipientMode": {
      "enum": [
        "owner_property",
        "owner",
        "resident"
      ],
      "type": "string",
      "default": "owner_property",
      "description": "Who the mail is addressed to. \"owner_property\" (default for most trades) uses the owner's name and mails it to the property. \"owner\" uses the owner's name and mails it to the owner's own address, which reaches absentee and out-of-state landlords. \"resident\" addresses Current Resident at the property. Forestry mulching and land clearing default to \"owner\". Leave it out unless the user says what they want."
    }
  }
}
count_homes annotations
{
  "title": "Count matching homes",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
preview_market — Preview the market
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

The measured count for a trade and area, plus every strategy card the trade offers (id, name, whether it is the widest) so the user can narrow by sending strategyIds, and which property signals are measured there. Needs a Meadley Bros. API key. Members create keys in Profile and billing under Advanced integrations.

preview_market input schema
{
  "type": "object",
  "required": [
    "radiusMiles",
    "trade"
  ],
  "properties": {
    "lat": {
      "type": "number",
      "description": "Latitude of the center of the service area (alternative to zip)"
    },
    "lng": {
      "type": "number",
      "description": "Longitude of the center of the service area (alternative to zip)"
    },
    "zip": {
      "type": "string",
      "pattern": "^[0-9]{5}$",
      "description": "Five-digit US ZIP code at the center of the service area. Easiest way to say where. Send this, OR city and state, OR lat and lng."
    },
    "city": {
      "type": "string",
      "description": "City name at the center of the service area, with state. Alternative to zip."
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "Two-letter state, required with city."
    },
    "trade": {
      "enum": [
        "tree-services",
        "forestry-mulching",
        "land-services",
        "lawn-care",
        "landscaping",
        "hardscaping",
        "roofing",
        "pest-control",
        "pool-services",
        "generic-other"
      ],
      "type": "string",
      "description": "The contractor's trade. One of: tree-services, forestry-mulching, land-services, lawn-care, landscaping, hardscaping, roofing, pest-control, pool-services. For any other home or property service use generic-other."
    },
    "radiusMiles": {
      "type": "number",
      "maximum": 50,
      "minimum": 0.5,
      "description": "Service radius in miles, 0.5 to 50. A typical contractor uses 15 to 25."
    },
    "strategyIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional card ids from a previous preview_market answer; cards OR together."
    },
    "recipientMode": {
      "enum": [
        "owner_property",
        "owner",
        "resident"
      ],
      "type": "string",
      "default": "owner_property",
      "description": "Who the mail is addressed to. \"owner_property\" (default for most trades) uses the owner's name and mails it to the property. \"owner\" uses the owner's name and mails it to the owner's own address, which reaches absentee and out-of-state landlords. \"resident\" addresses Current Resident at the property. Forestry mulching and land clearing default to \"owner\". Leave it out unless the user says what they want."
    }
  }
}
preview_market annotations
{
  "title": "Preview the market",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
start_checkout — Start a purchase
Advertised by the server during the last successful anonymous check.
Open-world

Start buying a mailing list of the matching homes: owner names and mailing addresses delivered as an Excel file plus a CSV. Returns a Stripe Checkout URL; the user opens it and pays there (this tool never handles card details). Minimum 1000 addresses ($349). Needs a Meadley Bros. API key. Members create keys in Profile and billing under Advanced integrations. Only call this when the user has clearly asked to buy.

start_checkout input schema
{
  "type": "object",
  "required": [
    "radiusMiles",
    "trade",
    "quantity"
  ],
  "properties": {
    "lat": {
      "type": "number",
      "description": "Latitude of the center of the service area (alternative to zip)"
    },
    "lng": {
      "type": "number",
      "description": "Longitude of the center of the service area (alternative to zip)"
    },
    "zip": {
      "type": "string",
      "pattern": "^[0-9]{5}$",
      "description": "Five-digit US ZIP code at the center of the service area. Easiest way to say where. Send this, OR city and state, OR lat and lng."
    },
    "city": {
      "type": "string",
      "description": "City name at the center of the service area, with state. Alternative to zip."
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "Two-letter state, required with city."
    },
    "trade": {
      "enum": [
        "tree-services",
        "forestry-mulching",
        "land-services",
        "lawn-care",
        "landscaping",
        "hardscaping",
        "roofing",
        "pest-control",
        "pool-services",
        "generic-other"
      ],
      "type": "string",
      "description": "The contractor's trade. One of: tree-services, forestry-mulching, land-services, lawn-care, landscaping, hardscaping, roofing, pest-control, pool-services. For any other home or property service use generic-other."
    },
    "listName": {
      "type": "string",
      "description": "Optional name for the list in the user's account"
    },
    "quantity": {
      "type": "integer",
      "minimum": 1000,
      "description": "Addresses to buy, 1000 minimum, up to the count"
    },
    "cancelUrl": {
      "type": "string",
      "description": "Optional https URL if the user cancels. Defaults to the Meadley Bros. buy page."
    },
    "successUrl": {
      "type": "string",
      "description": "Optional https URL to send the user to after paying. Defaults to the Meadley Bros. thank-you page."
    },
    "radiusMiles": {
      "type": "number",
      "maximum": 50,
      "minimum": 0.5,
      "description": "Service radius in miles, 0.5 to 50. A typical contractor uses 15 to 25."
    },
    "recipientMode": {
      "enum": [
        "owner_property",
        "owner",
        "resident"
      ],
      "type": "string",
      "default": "owner_property",
      "description": "Who the mail is addressed to. \"owner_property\" (default for most trades) uses the owner's name and mails it to the property. \"owner\" uses the owner's name and mails it to the owner's own address, which reaches absentee and out-of-state landlords. \"resident\" addresses Current Resident at the property. Forestry mulching and land clearing default to \"owner\". Leave it out unless the user says what they want."
    }
  }
}
start_checkout annotations
{
  "title": "Start a purchase",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "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
295 ms
95th percentile latency
295 ms

Maintenance history

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

  • · probe · passed · 295 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 meadley-bros-mcp https://api.meadleybrothers.com/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 meadley-bros-mcp --url https://api.meadleybrothers.com/mcp

Cursor

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

Cline

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

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start meadley-bros-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "meadley-bros-mcp": {
      "type": "http",
      "url": "https://api.meadleybrothers.com/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 meadley-bros-mcp https://api.meadleybrothers.com/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": {
    "meadley-bros-mcp": {
      "url": "https://api.meadleybrothers.com/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": {
    "meadley-bros-mcp": {
      "serverUrl": "https://api.meadleybrothers.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Meadley Bros. 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 Meadley Bros. 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