GroundQuote MCP
GroundQuote MCP enables AI agents to create contractor accounts, load fence pricing, configure branding, and retrieve embed codes for instant online fence quoting. It allows agents to set up the service end-to-end without needing authentication keys for the connection itself, though contractors must manage their own billing and lead unlocking.
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.
https://groundquote-mcp-production.up.railway.app/mcpWhat you can do with it
- Create a contractor account via API
- Load fence and gate pricing rates
- Retrieve the embed code for websites
- Configure hosted page branding
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- groundquote 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 12 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
12 advertised
get_pricing_terms — GroundQuote pricing terms
Read this first and relay it to the contractor before creating an account. Returns the plain-language pricing disclosure ($5 browsing lead, $15 high-intent lead, optional $150/month unlimited; nothing charged until the contractor unlocks a lead) and the guarantees. No inputs.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}get_install_instructions — How to install GroundQuote
Explains the two install paths (iframe embed on an existing site, or a GroundQuote-hosted page for contractors with no site), what works with AI site builders, and how account ownership works. Use before you promise the contractor anything about the install.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}create_contractor_account — Create a contractor account
Creates a GroundQuote account for a fence contractor and emails the contractor a link to set their own password (the email includes the pricing terms). Nothing is charged; no card is required. Returns org_id, slug, the embed snippet, terms_summary, and a setup_claim you must keep and pass to set_fence_pricing, set_branding, set_hosted_page, get_embed_code, check_account_status and resend_setup_email. Confirm the contractor has heard the pricing terms before calling. Use the contractor's own email as owner_email.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"company_name",
"owner_email",
"owner_name",
"phone",
"terms_relayed"
],
"properties": {
"city": {
"type": "string",
"maxLength": 80
},
"phone": {
"type": "string",
"minLength": 10,
"description": "The contractor's phone number"
},
"state": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "Two-letter US state"
},
"owner_name": {
"type": "string",
"maxLength": 100,
"minLength": 2,
"description": "The contractor's name"
},
"owner_email": {
"type": "string",
"format": "email",
"description": "The contractor's own email. They receive the set-password link; only they can unlock leads."
},
"website_url": {
"type": "string",
"format": "uri",
"description": "Their website, if they have one"
},
"company_name": {
"type": "string",
"maxLength": 100,
"minLength": 2,
"description": "The contractor's business name as it should appear to homeowners"
},
"terms_relayed": {
"type": "boolean",
"const": true,
"description": "Must be true: you have told the contractor the pricing terms from get_pricing_terms"
}
},
"additionalProperties": false
}set_fence_pricing — Set the contractor's fence pricing
Loads the contractor's price list. Rates are dollars per linear foot by material, then style, then height ("4 ft", "6 ft", "8 ft"). Gates are flat surcharges. Ask the contractor for real numbers; never invent them. Replaces the whole fence catalog each call. Requires org_id and setup_claim from create_contractor_account.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"org_id",
"setup_claim",
"fences"
],
"properties": {
"fences": {
"type": "object",
"description": "material -> style -> height (\"6 ft\") -> dollars per linear foot",
"propertyNames": {
"minLength": 1
},
"additionalProperties": {
"type": "object",
"propertyNames": {
"minLength": 1
},
"additionalProperties": {
"type": "object",
"propertyNames": {
"pattern": "^\\d{1,2} ft$"
},
"additionalProperties": {
"type": "number",
"maximum": 10000,
"exclusiveMinimum": 0
}
}
}
},
"org_id": {
"type": "string",
"format": "uuid"
},
"setup_claim": {
"type": "string"
},
"require_phone": {
"type": "boolean",
"description": "Require the homeowner's phone number; default true"
},
"gate_double_usd": {
"type": "number",
"default": 500,
"maximum": 100000,
"minimum": 0,
"description": "Flat surcharge per double gate"
},
"gate_single_usd": {
"type": "number",
"default": 300,
"maximum": 100000,
"minimum": 0,
"description": "Flat surcharge per single gate"
},
"removal_per_ft_usd": {
"type": "number",
"maximum": 1000,
"minimum": 0,
"description": "Old-fence removal, per linear foot; omit to leave unchanged"
}
},
"additionalProperties": false
}set_rental_pricing — Set temporary fence RENTAL pricing
For fence RENTAL companies (construction sites, events, security) rather than installers. Loads rental products priced in dollars per linear foot per period (day / week / month), the minimum term, per-rental gate charges, delivery and setup fees and optional add-ons (privacy screen, sandbag bases). Enables the rental option on the widget; leaves any installed-fence catalog untouched. Ask the company for real numbers; never invent them. Requires org_id and setup_claim from create_contractor_account.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"org_id",
"setup_claim",
"products"
],
"properties": {
"addons": {
"type": "object",
"description": "optional extras the customer can tick, e.g. \"Privacy Screen\" -> { price: 1.25, unit: \"ft\" }",
"propertyNames": {
"minLength": 1
},
"additionalProperties": {
"type": "object",
"required": [
"price"
],
"properties": {
"unit": {
"enum": [
"ft",
"panel",
"flat"
],
"type": "string",
"default": "ft"
},
"price": {
"type": "number",
"maximum": 100000,
"minimum": 0
},
"description": {
"type": "string",
"maxLength": 200
}
},
"additionalProperties": false
}
},
"org_id": {
"type": "string",
"format": "uuid"
},
"products": {
"type": "object",
"description": "product name -> { description?, rates: { day?, week?, month? } }, e.g. \"Panel Fence (Freestanding)\" -> { rates: { week: 1.75, month: 2.5 } }",
"propertyNames": {
"minLength": 1
},
"additionalProperties": {
"type": "object",
"required": [
"rates"
],
"properties": {
"rates": {
"type": "object",
"properties": {
"day": {
"type": "number",
"maximum": 1000,
"exclusiveMinimum": 0
},
"week": {
"type": "number",
"maximum": 1000,
"exclusiveMinimum": 0
},
"month": {
"type": "number",
"maximum": 1000,
"exclusiveMinimum": 0
}
},
"description": "dollars per linear foot per period; include only the periods the company offers",
"additionalProperties": false
},
"description": {
"type": "string",
"maxLength": 200
}
},
"additionalProperties": false
}
},
"rental_only": {
"type": "boolean",
"default": false,
"description": "true if the company does NOT install fence: turns the fence module off so the widget shows rental only"
},
"setup_claim": {
"type": "string"
},
"min_term_days": {
"type": "integer",
"default": 28,
"maximum": 3650,
"minimum": 1,
"description": "Shortest rental accepted, in days (28 = one month)"
},
"setup_fee_usd": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Setup + removal fee; omit for none"
},
"walk_gate_usd": {
"type": "number",
"default": 75,
"maximum": 100000,
"minimum": 0,
"description": "Flat charge per pedestrian gate, per rental"
},
"drive_gate_usd": {
"type": "number",
"default": 200,
"maximum": 100000,
"minimum": 0,
"description": "Flat charge per vehicle gate, per rental"
},
"setup_fee_unit": {
"enum": [
"flat",
"ft"
],
"type": "string",
"default": "flat"
},
"panel_length_ft": {
"type": "number",
"default": 12,
"maximum": 50,
"minimum": 1,
"description": "Panel length used for per-panel add-ons"
},
"delivery_fee_usd": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Flat delivery + pickup fee added to every quote; omit for none"
}
},
"additionalProperties": false
}set_branding — Match the widget to the contractor's brand
Sets logo, colors and font on the quote widget. Pass auto_fetch_from_url to read the logo and primary color from the contractor's existing site; explicit fields win over fetched values. Requires org_id and setup_claim.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"org_id",
"setup_claim"
],
"properties": {
"font": {
"enum": [
"Inter",
"Roboto",
"Lato",
"Montserrat",
"Open Sans",
"Outfit",
"Plus Jakarta Sans"
],
"type": "string"
},
"org_id": {
"type": "string",
"format": "uuid"
},
"logo_url": {
"type": "string",
"format": "uri"
},
"setup_claim": {
"type": "string"
},
"website_url": {
"type": "string",
"format": "uri"
},
"accent_color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"primary_color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"secondary_color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"auto_fetch_from_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
}set_hosted_page — Enable the hosted quote page
For contractors without a website: turns on a branded page at groundquote.com/{slug} with headline, services and contact details. Requires org_id and setup_claim.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"org_id",
"setup_claim"
],
"properties": {
"city": {
"type": "string",
"maxLength": 80
},
"email": {
"type": "string",
"format": "email"
},
"phone": {
"type": "string",
"maxLength": 30
},
"state": {
"type": "string",
"maxLength": 2,
"minLength": 2
},
"org_id": {
"type": "string",
"format": "uuid"
},
"enabled": {
"type": "boolean",
"default": true
},
"headline": {
"type": "string",
"maxLength": 120
},
"services": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 12
},
"cover_url": {
"type": "string",
"format": "uri"
},
"subheading": {
"type": "string",
"maxLength": 300
},
"setup_claim": {
"type": "string"
}
},
"additionalProperties": false
}get_embed_code — Get the embed snippet
Returns the iframe HTML to paste into the contractor's site and the hosted-page URL. Requires org_id and setup_claim.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"org_id",
"setup_claim"
],
"properties": {
"org_id": {
"type": "string",
"format": "uuid"
},
"setup_claim": {
"type": "string"
}
},
"additionalProperties": false
}check_account_status — Check account status
Shows whether the contractor has set their password yet (setup_link_pending), the current pricing summary, branding and install details. Requires org_id and setup_claim.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"org_id",
"setup_claim"
],
"properties": {
"org_id": {
"type": "string",
"format": "uuid"
},
"setup_claim": {
"type": "string"
}
},
"additionalProperties": false
}resend_setup_email — Resend the set-password email
Re-sends the contractor's set-password email (max 3 per day per account). Requires org_id and setup_claim.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"org_id",
"setup_claim"
],
"properties": {
"org_id": {
"type": "string",
"format": "uuid"
},
"setup_claim": {
"type": "string"
}
},
"additionalProperties": false
}search — Search GroundQuote documentation
Searches GroundQuote's documentation (what it is, pricing, install, ownership, pricing format, rules for assistants). Returns ids to pass to fetch.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}fetch — Fetch a documentation page
Returns the full text of a documentation entry by id from search.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
}
},
"additionalProperties": false
}Prompts
Not advertised
Resources
Not advertised
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
- 581 ms
- 95th percentile latency
- 581 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 581 ms · metadata changed · 12 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http groundquote-mcp https://groundquote-mcp-production.up.railway.app/mcpCodex
codex mcp add groundquote-mcp --url https://groundquote-mcp-production.up.railway.app/mcpCursor
{
"mcpServers": {
"groundquote-mcp": {
"url": "https://groundquote-mcp-production.up.railway.app/mcp"
}
}
}Cline
{
"mcpServers": {
"groundquote-mcp": {
"type": "streamableHttp",
"url": "https://groundquote-mcp-production.up.railway.app/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"groundquote-mcp": {
"type": "http",
"url": "https://groundquote-mcp-production.up.railway.app/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http groundquote-mcp https://groundquote-mcp-production.up.railway.app/mcpClaude Desktop
{
"mcpServers": {
"groundquote-mcp": {
"url": "https://groundquote-mcp-production.up.railway.app/mcp"
}
}
}Windsurf
{
"mcpServers": {
"groundquote-mcp": {
"serverUrl": "https://groundquote-mcp-production.up.railway.app/mcp"
}
}
}Let your agent find its tools
Find servers like GroundQuote MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.