Koskamo

FieldRobin MCP

An official MCP server provided by FieldRobin that allows AI agents to interact with authenticated FieldRobin workspaces. It enables scope-authorized operations such as managing customers, creating jobs, scheduling, and handling invoices for home service teams.

Endpoint and access

OAuth sign-in: the first time you connect, your client opens the vendor's own authorization prompt in a browser.

FieldRobin MCP logo, by FieldRobinVendor evidenceStreamable HTTPOAuth sign-inEndpoint checked 2026-11-07Operated by FieldRobin
MCP endpoint (Streamable HTTP)
https://fieldrobin.com/api/v1/mcp
Vendor documentation

What its tools do

47 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

Can change data (2)

47 of 47 have a description · 47 of 47 declare behavior hints · 43 of 46 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to fieldrobin.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Create and manage customer records
  • Schedule jobs and appointments
  • Generate and send invoices
  • Manage service requests

Source and maintenance

Vendor evidenceRegistry 1.2.1

Protocol and capabilities

Server
fieldrobin-mcp 1.2.1
MCP protocol negotiated in check
2025-11-25
Tools
47 advertised
Resources
1 advertised
Resource templates
Sign-in required
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "resources": {
    "listChanged": false
  }
}

Server-provided instructions

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

Discover the authenticated FieldRobin tool catalog for each new session. Request mcp:read for read tools, mcp:customers:write for direct customer creation, and mcp:jobs:write for direct job creation; mcp:write remains a broad compatibility scope. Use mcp:read only when the user intentionally wants a read-only connection. The legacy mcp:use scope remains read-only compatible. Use available tools according to their annotations and required scopes. If an operation needs more permission, use the client authorization flow instead of claiming FieldRobin cannot perform it. Create-customer and create-job persist directly only when the corresponding OAuth write scope is granted, and return an authoritative verified result.

Tools

47 advertised

create-customer — Create Customer Tool
Advertised by the server during the last successful anonymous check.

Creates one customer directly in the selected FieldRobin business when the connection has customer-write permission. Search first to avoid creating a duplicate; reuse the idempotency key only when retrying the same request.

create-customer input schema
{
  "type": "object",
  "required": [
    "name",
    "idempotency_key"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "description": "Customer full name."
    },
    "email": {
      "type": [
        "string",
        "null"
      ],
      "format": "email",
      "maxLength": 255,
      "description": "Customer email address, if known."
    },
    "notes": {
      "type": [
        "string",
        "null"
      ],
      "description": "Internal customer notes."
    },
    "phone": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 30,
      "description": "Customer phone number, if known."
    },
    "address": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 500,
      "description": "Customer address, if known."
    },
    "trade_type": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 100,
      "description": "Customer trade or service type."
    },
    "location_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Business location for the customer."
    },
    "business_name": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 255,
      "description": "Customer business name, if known."
    },
    "lifecycle_tag": {
      "enum": [
        "active",
        "inactive",
        "vip"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Lifecycle tag."
    },
    "idempotency_key": {
      "type": "string",
      "maxLength": 128,
      "minLength": 1,
      "description": "Opaque retry key. Reuse it only for the same request to receive the verified result without creating a duplicate."
    },
    "acquisition_source": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 100,
      "description": "How the customer was acquired."
    }
  }
}
create-customer annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create-job — Create Job Tool
Advertised by the server during the last successful anonymous check.

Creates one job directly in the selected FieldRobin business when the connection has job-write permission. Resolve the customer first and pass the verified customer ID when one is named.

create-job input schema
{
  "type": "object",
  "required": [
    "title",
    "idempotency_key"
  ],
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "description": "Short job title."
    },
    "status": {
      "enum": [
        "lead",
        "pending",
        "quoted",
        "approved",
        "scheduled"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Initial job status."
    },
    "customer_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Verified customer ID, if the job belongs to an existing customer."
    },
    "description": {
      "type": [
        "string",
        "null"
      ],
      "description": "Readable issue and service description."
    },
    "location_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Business location for the job."
    },
    "voice_notes": {
      "type": [
        "string",
        "null"
      ],
      "description": "Optional internal voice-note text."
    },
    "scheduled_at": {
      "type": [
        "string",
        "null"
      ],
      "description": "Optional local wall-clock appointment date/time or ISO timestamp with offset."
    },
    "total_amount": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0,
      "description": "Optional quoted amount."
    },
    "idempotency_key": {
      "type": "string",
      "maxLength": 128,
      "minLength": 1,
      "description": "Opaque retry key. Reuse it only for the same request to receive the verified result without creating a duplicate."
    },
    "service_address": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 2000,
      "description": "Service address, if known."
    },
    "appointment_count": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 99,
      "minimum": 1,
      "description": "Optional appointment count."
    },
    "technician_user_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Verified technician user ID, if assigned."
    }
  }
}
create-job annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get-workspace-summary — Get Workspace Summary Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns a limited, read-only summary of the authenticated FieldRobin workspace.

get-workspace-summary input schema
{
  "type": "object",
  "properties": {}
}
get-workspace-summary annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search-locations — Search Locations Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists physical locations in the authenticated workspace.

search-locations input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 20,
      "maximum": 50,
      "minimum": 1
    },
    "query": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 80,
      "description": "Location name to search for."
    },
    "status": {
      "type": [
        "string",
        "null"
      ],
      "description": "active, archived, or all."
    }
  }
}
search-locations annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get-location — Get Location Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns one location and its public Google listing status. A confirmed place is not a Google Business Profile connection.

get-location input schema
{
  "type": "object",
  "properties": {
    "location_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Location ID."
    }
  }
}
get-location annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search-customers — Search Customers Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Searches the authenticated workspace customers without exposing addresses, notes, or other private fields.

search-customers input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 10,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of customers to return."
    },
    "query": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 80,
      "description": "Name, email, phone, or business name to search for."
    }
  }
}
search-customers annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search-jobs — Search Jobs Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Searches the authenticated workspace jobs using safe summary fields only; it does not return service addresses, notes, or amounts.

search-jobs input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 10,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of jobs to return."
    },
    "query": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 80,
      "description": "Customer name, email, phone, or job title."
    },
    "status": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 40,
      "description": "Optional job status filter."
    },
    "customer_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Restrict results to one customer ID."
    },
    "location_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Restrict results to one business location ID."
    },
    "scheduled_to": {
      "type": [
        "string",
        "null"
      ],
      "format": "date",
      "description": "Inclusive scheduled date, YYYY-MM-DD."
    },
    "scheduled_from": {
      "type": [
        "string",
        "null"
      ],
      "format": "date",
      "description": "Inclusive scheduled date, YYYY-MM-DD."
    }
  }
}
search-jobs annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get-customer — Get Customer Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns one authorized customer using bounded contact and lifecycle fields; addresses and notes are excluded.

get-customer input schema
{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Customer ID returned by search-customers."
    }
  }
}
get-customer annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get-job — Get Job Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns one authorized job using bounded customer, schedule, status, and technician fields; service addresses, notes, and amounts are excluded.

get-job input schema
{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Job ID returned by search-jobs or jobs-today."
    }
  }
}
get-job annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search-leads — Search Leads Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Searches authorized workspace leads with bounded contact, source, status, and service-interest fields; notes and estimated values are excluded.

search-leads input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 10,
      "maximum": 20,
      "minimum": 1,
      "description": "Maximum number of leads to return."
    },
    "query": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 80,
      "description": "Name, email, phone, source, or service interest."
    },
    "source": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 100,
      "description": "Optional exact lead source."
    },
    "status": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 40,
      "description": "Optional lead status."
    },
    "urgency": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 20,
      "description": "Optional urgency: low, medium, or high."
    },
    "customer_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Restrict results to a customer ID."
    }
  }
}
search-leads annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
jobs-today — Jobs Today Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists authorized jobs scheduled for a business day, with bounded customer, schedule, status, and technician fields.

jobs-today input schema
{
  "type": "object",
  "properties": {
    "date": {
      "type": [
        "string",
        "null"
      ],
      "format": "date",
      "description": "Local business date, YYYY-MM-DD; defaults to today."
    },
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 25,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of jobs to return."
    },
    "status": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 40,
      "description": "Optional job status filter."
    },
    "technician_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Optional technician ID."
    }
  }
}
jobs-today annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get-lead — Get Lead Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns one authorized lead using bounded contact, source, status, and service-interest fields; notes, budget, and internal summaries are excluded.

get-lead input schema
{
  "type": "object",
  "properties": {
    "lead_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Lead ID returned by search-leads."
    }
  }
}
get-lead annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search-quotes — Search Quotes Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Searches authorized estimates using bounded customer, status, title, and total fields; notes, terms, and addresses are excluded.

search-quotes input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 10,
      "maximum": 20,
      "minimum": 1,
      "description": "Maximum number of estimates to return."
    },
    "query": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 80,
      "description": "Estimate title, customer name, email, or phone."
    },
    "status": {
      "enum": [
        "draft",
        "sent",
        "changes_requested",
        "approved",
        "rejected",
        "expired",
        "converted"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Optional estimate status."
    },
    "customer_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Restrict results to one customer ID."
    }
  }
}
search-quotes annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get-quote — Get Quote Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns one authorized estimate with bounded customer, status, pricing, revision, and line-item fields; addresses, notes, and terms are excluded.

get-quote input schema
{
  "type": "object",
  "properties": {
    "quote_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Estimate ID returned by search-quotes."
    }
  }
}
get-quote annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
preview-quote — Preview Quote Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Calculates a deterministic estimate preview without saving, sending, or creating a quote.

preview-quote input schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "quantity": {
            "type": "number",
            "minimum": 0
          },
          "item_type": {
            "enum": [
              "material",
              "labour",
              "service",
              "equipment",
              "fee"
            ],
            "type": [
              "string",
              "null"
            ]
          },
          "unit_price": {
            "type": "number",
            "minimum": 0
          },
          "description": {
            "type": "string",
            "maxLength": 500
          },
          "tax_behavior": {
            "enum": [
              "inherit",
              "taxable",
              "non_taxable",
              "automatic"
            ],
            "type": [
              "string",
              "null"
            ]
          },
          "discount_type": {
            "enum": [
              "none",
              "percentage",
              "fixed"
            ],
            "type": [
              "string",
              "null"
            ]
          },
          "discount_value": {
            "type": [
              "number",
              "null"
            ],
            "minimum": 0
          }
        }
      },
      "maxItems": 50,
      "minItems": 1,
      "description": "Estimate line item."
    },
    "tax_mode": {
      "enum": [
        "none",
        "manual"
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "coupon_code": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 100
    },
    "customer_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Optional resolved customer ID."
    },
    "tax_rate_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1
    },
    "document_discount_type": {
      "enum": [
        "none",
        "percentage",
        "fixed"
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "document_discount_value": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0
    }
  }
}
preview-quote annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search-invoices — Search Invoices Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Searches authorized invoices using bounded customer, job, status, payment, due-date, and total fields; payment links and addresses are excluded.

search-invoices input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 10,
      "maximum": 20,
      "minimum": 1,
      "description": "Maximum number of invoices to return."
    },
    "query": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 80,
      "description": "Invoice number, customer name, email, phone, job title, or description."
    },
    "job_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Restrict results to one job ID."
    },
    "status": {
      "enum": [
        "draft",
        "sent",
        "overdue",
        "paid",
        "cancelled"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Invoice lifecycle status."
    },
    "customer_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Restrict results to one customer ID."
    },
    "payment_status": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 40,
      "description": "Authoritative payment state, such as unpaid, pending, paid, or refunded."
    }
  }
}
search-invoices annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get-invoice — Get Invoice Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns one authorized invoice with bounded customer, job, payment-state, due-date, and line-item fields; payment links, addresses, and internal notes are excluded.

get-invoice input schema
{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Invoice ID returned by search-invoices."
    }
  }
}
get-invoice annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
preview-invoice — Preview Invoice Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Calculates a deterministic invoice preview without saving, charging, sending, or creating an invoice.

preview-invoice input schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "quantity": {
            "type": "number",
            "minimum": 0
          },
          "item_type": {
            "enum": [
              "material",
              "labour",
              "service",
              "equipment",
              "fee"
            ],
            "type": [
              "string",
              "null"
            ]
          },
          "unit_price": {
            "type": "number",
            "minimum": 0
          },
          "description": {
            "type": "string",
            "maxLength": 500
          },
          "tax_behavior": {
            "enum": [
              "inherit",
              "taxable",
              "non_taxable",
              "automatic"
            ],
            "type": [
              "string",
              "null"
            ]
          },
          "discount_type": {
            "enum": [
              "none",
              "percentage",
              "fixed"
            ],
            "type": [
              "string",
              "null"
            ]
          },
          "discount_value": {
            "type": [
              "number",
              "null"
            ],
            "minimum": 0
          }
        }
      },
      "maxItems": 50,
      "minItems": 1,
      "description": "Invoice line items."
    },
    "tax_mode": {
      "enum": [
        "none",
        "manual"
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "coupon_code": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 100
    },
    "customer_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Resolved customer ID; required for an invoice preview."
    },
    "tax_rate_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1
    },
    "document_discount_type": {
      "enum": [
        "none",
        "percentage",
        "fixed"
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "document_discount_value": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0
    }
  }
}
preview-invoice annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
schedule-availability — Schedule Availability Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Calculates verified busy jobs and open planning windows for a local business day without scheduling or changing a job.

schedule-availability input schema
{
  "type": "object",
  "properties": {
    "date": {
      "type": [
        "string",
        "null"
      ],
      "format": "date",
      "description": "Local business date, YYYY-MM-DD; defaults to today."
    },
    "workday_end": {
      "type": [
        "integer",
        "null"
      ],
      "default": 20,
      "maximum": 24,
      "minimum": 1,
      "description": "Planning window end hour."
    },
    "technician_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Optional same-business technician ID."
    },
    "workday_start": {
      "type": [
        "integer",
        "null"
      ],
      "default": 10,
      "maximum": 23,
      "minimum": 0,
      "description": "Planning window start hour."
    },
    "duration_minutes": {
      "type": [
        "integer",
        "null"
      ],
      "default": 60,
      "maximum": 480,
      "minimum": 15,
      "description": "Requested appointment length."
    },
    "job_duration_minutes": {
      "type": [
        "integer",
        "null"
      ],
      "default": 60,
      "maximum": 480,
      "minimum": 15,
      "description": "Planning duration for existing jobs."
    }
  }
}
schedule-availability annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
pipeline-next-actions — Pipeline Next Actions Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists persisted pipeline attention items for the authenticated business without changing, dismissing, or executing them.

pipeline-next-actions input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 10,
      "maximum": 20,
      "minimum": 1,
      "description": "Maximum number of actions to return."
    },
    "priority": {
      "enum": [
        "urgent",
        "high",
        "normal",
        "low"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Optional priority filter."
    },
    "due_before": {
      "type": [
        "string",
        "null"
      ],
      "format": "date",
      "description": "Only actions due on or before this local date."
    },
    "action_type": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 80,
      "description": "Optional exact action type."
    },
    "action_state": {
      "enum": [
        "open",
        "in_progress",
        "snoozed",
        "blocked",
        "dismissed",
        "done"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Pipeline state; defaults to open."
    }
  }
}
pipeline-next-actions annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
pipeline-recommendations — Pipeline Recommendations Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists persisted pipeline recommendations for the authenticated business without generating, editing, approving, rejecting, or executing them.

pipeline-recommendations input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum recommendations to return."
    },
    "status": {
      "enum": [
        "pending",
        "approved",
        "rejected",
        "expired"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Recommendation state; defaults to pending."
    },
    "action_type": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 80,
      "description": "Optional exact pipeline recommendation action type."
    },
    "recommendation_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Optional exact recommendation ID."
    },
    "include_draft_history": {
      "type": [
        "boolean",
        "null"
      ],
      "default": false,
      "description": "When true, recommendation_id is required and bounded draft edit history is returned."
    }
  }
}
pipeline-recommendations annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
customer-service-requests — Customer Service Requests Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists recent active service requests associated with one authorized customer using bounded status, source, urgency, and scheduling fields.

customer-service-requests input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of service requests to return."
    },
    "customer_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Customer ID returned by search-customers."
    }
  }
}
customer-service-requests annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search-service-requests — Service Request Search Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Finds bounded active service-request inbox records for the authenticated business without exposing request descriptions, addresses, contact channels, or outreach controls.

search-service-requests input schema
{
  "type": "object",
  "properties": {
    "q": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 255,
      "description": "Client name, service type, or request text."
    },
    "view": {
      "enum": [
        "inbox",
        "pending",
        "converted",
        "outreach",
        "all"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Inbox view; defaults to active inbox records."
    },
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of requests to return."
    },
    "status": {
      "enum": [
        "sent",
        "opened",
        "submitted",
        "reviewing",
        "scheduled",
        "quoted",
        "converted"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Optional exact active request status."
    },
    "urgency": {
      "enum": [
        "low",
        "medium",
        "high"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Optional urgency filter."
    }
  }
}
search-service-requests annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get-service-request — Service Request Get Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns one authorized service-request inbox record using bounded status, source, urgency, and scheduling fields without exposing request descriptions, addresses, contact channels, metadata, files, or outreach controls.

get-service-request input schema
{
  "type": "object",
  "properties": {
    "service_request_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Service-request ID returned by search-service-requests."
    }
  }
}
get-service-request annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get-invoice-payment-status — Get Invoice Payment Status Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the authoritative payment state for one authorized invoice without exposing payment links or provider identifiers.

get-invoice-payment-status input schema
{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Invoice ID returned by search-invoices."
    }
  }
}
get-invoice-payment-status annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
preview-review-requests — Preview Review Requests Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Previews explicit completed jobs for review requests, including eligibility and skip reasons, without sending anything.

preview-review-requests input schema
{
  "type": "object",
  "properties": {
    "channel": {
      "enum": [
        "sms",
        "email"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Optional review-request channel preference."
    },
    "job_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 1
      },
      "maxItems": 50,
      "minItems": 1,
      "description": "Explicit job IDs to evaluate."
    }
  }
}
preview-review-requests annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search-reviews — Search Reviews Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Searches authorized reviews by reviewer, customer, job, rating, platform, or reply status using bounded fields.

search-reviews input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of reviews to return."
    },
    "query": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 255,
      "description": "Reviewer, customer, job title, review body, or platform."
    },
    "platform": {
      "enum": [
        "google",
        "facebook",
        "yelp",
        "industry",
        "bbb",
        "angi",
        "thumbtack",
        "custom"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Review platform."
    },
    "has_reply": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "Filter by whether an owner reply exists."
    },
    "rating_max": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 5,
      "minimum": 1,
      "description": "Maximum rating."
    },
    "rating_min": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 5,
      "minimum": 1,
      "description": "Minimum rating."
    },
    "reply_status": {
      "enum": [
        "none",
        "pending",
        "sent",
        "failed"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Reply delivery state."
    }
  }
}
search-reviews annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
draft-review-reply — Draft Review Reply Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Drafts a policy-aware reply for one authorized review without posting or changing the review.

draft-review-reply input schema
{
  "type": "object",
  "properties": {
    "tone": {
      "enum": [
        "professional",
        "warm",
        "concise"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Draft tone."
    },
    "review_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Review ID returned by search-reviews."
    }
  }
}
draft-review-reply annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search-referral-campaigns — Search Referral Campaigns Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Searches authorized referral campaigns by name, status, message channel, and bounded performance fields.

search-referral-campaigns input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of campaigns to return."
    },
    "query": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 255,
      "description": "Campaign name, message, or channel."
    },
    "status": {
      "enum": [
        "active",
        "paused",
        "archived"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Campaign status."
    }
  }
}
search-referral-campaigns annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get-referral-campaign-attribution — Get Referral Campaign Attribution Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Shows verified referral campaign totals and conversion activity without returning referral tokens or bearer-like links.

get-referral-campaign-attribution input schema
{
  "type": "object",
  "properties": {
    "days": {
      "type": [
        "integer",
        "null"
      ],
      "default": 30,
      "maximum": 180,
      "minimum": 1,
      "description": "Lookback window in days."
    },
    "campaign_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Referral campaign ID returned by search-referral-campaigns."
    }
  }
}
get-referral-campaign-attribution annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
preview-referral-campaign — Preview Referral Campaign Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Previews eligible completed jobs for one authorized referral campaign without sending or changing records.

preview-referral-campaign input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 25,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum audience items to evaluate."
    },
    "campaign_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Referral campaign ID returned by search-referral-campaigns."
    }
  }
}
preview-referral-campaign annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search-reactivation-campaigns — Search Reactivation Campaigns Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Searches authorized reactivation campaigns by name, status, channel, and job-type filter.

search-reactivation-campaigns input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of campaigns to return."
    },
    "query": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 255,
      "description": "Campaign name, message, channel, or job type."
    },
    "status": {
      "enum": [
        "active",
        "paused",
        "archived"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Campaign status."
    }
  }
}
search-reactivation-campaigns annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
preview-reactivation-campaign — Preview Reactivation Campaign Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Previews dormant customers eligible for one authorized reactivation campaign without sending or changing records.

preview-reactivation-campaign input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 25,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum audience items to evaluate."
    },
    "campaign_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Reactivation campaign ID returned by search-reactivation-campaigns."
    }
  }
}
preview-reactivation-campaign annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search-broadcast-campaigns — Search Broadcast Campaigns Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Searches authorized broadcast campaigns by name, status, message channel, and bounded delivery fields.

search-broadcast-campaigns input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of campaigns to return."
    },
    "query": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 255,
      "description": "Campaign name, message, or channel."
    },
    "status": {
      "enum": [
        "draft",
        "pending_approval",
        "approved",
        "rejected",
        "sent",
        "archived"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Campaign status."
    }
  }
}
search-broadcast-campaigns annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
preview-broadcast-campaign — Preview Broadcast Campaign Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Previews one approved broadcast audience, including suppression and policy skips, without sending or changing records.

preview-broadcast-campaign input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 25,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum audience items to evaluate."
    },
    "campaign_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Broadcast campaign ID returned by search-broadcast-campaigns."
    }
  }
}
preview-broadcast-campaign annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search-social-drafts — Search Social Drafts Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Searches authorized social drafts and returns bounded content, status, platform, source-review, and approval metadata.

search-social-drafts input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of drafts to return."
    },
    "query": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 120,
      "description": "Draft content, platform, status, or ID."
    },
    "status": {
      "enum": [
        "pending_approval",
        "approved",
        "rejected",
        "published"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Draft approval state."
    },
    "platform": {
      "enum": [
        "facebook",
        "instagram",
        "google_business"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Social platform."
    },
    "review_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Optional source review ID."
    }
  }
}
search-social-drafts annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
preview-social-draft — Preview Social Draft Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Validates social post copy for an authorized source review without saving or publishing it.

preview-social-draft input schema
{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "maxLength": 1200,
      "minLength": 3,
      "description": "Proposed social post content."
    },
    "platform": {
      "enum": [
        "facebook",
        "instagram",
        "google_business"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Social platform."
    },
    "review_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Optional authorized source review ID."
    }
  }
}
preview-social-draft annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
list-job-photos — List Job Photos Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists authorized private photos attached to one job with protected download URLs, filenames, captions, and media types.

list-job-photos input schema
{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Job ID returned by search-jobs."
    }
  }
}
list-job-photos annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search-inventory — Search Inventory Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Searches active inventory in the authenticated workspace and can identify low-stock items without exposing internal cost or margin fields.

search-inventory input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum items to return."
    },
    "query": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 255,
      "description": "Inventory name, SKU, or description."
    },
    "active": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "Filter by active state; defaults to true."
    },
    "low_stock": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "Only items at or below minimum quantity."
    }
  }
}
search-inventory annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search-pricebook — Search Pricebook Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Searches active customer-facing services and materials in the authenticated workspace without exposing internal cost or markup fields.

search-pricebook input schema
{
  "type": "object",
  "properties": {
    "type": {
      "enum": [
        "service",
        "material"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Service or material."
    },
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum items to return."
    },
    "query": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 255,
      "description": "Pricebook item name or description."
    },
    "active": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "Filter by active state; defaults to true."
    }
  }
}
search-pricebook annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
complaint-recall-risk — Complaint Recall Risk Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists complaint and recall risk records for the authenticated workspace without exposing private operational notes.

complaint-recall-risk input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum records to return."
    },
    "query": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 255,
      "description": "Job title, customer name, or technician name."
    },
    "status": {
      "enum": [
        "open",
        "resolved",
        "all"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "Risk state; defaults to open."
    }
  }
}
complaint-recall-risk annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
routing-driving-risk — Routing Driving Risk Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Reads a local business day route and high driving-risk stops for the authenticated workspace without exposing addresses or private route notes.

routing-driving-risk input schema
{
  "type": "object",
  "properties": {
    "date": {
      "type": [
        "string",
        "null"
      ],
      "format": "date",
      "description": "Local business date, YYYY-MM-DD; defaults to today."
    },
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 50,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum route stops to return."
    },
    "technician_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Optional technician filter."
    }
  }
}
routing-driving-risk annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
operations-parts — Operations Parts Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Reads bounded parts stock, technician exposure, and transaction metadata for the authenticated workspace without exposing amounts, item pricing, or private notes.

operations-parts input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum inventory, transactions, and technician balances to return."
    },
    "technician_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Optional same-business technician ID."
    }
  }
}
operations-parts annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
operations-scorecards — Operations Scorecards Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Reads bounded technician performance and coaching signals for the authenticated workspace without exposing coaching notes or private contact fields.

operations-scorecards input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum jobs sampled per technician."
    },
    "technician_id": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "description": "Optional same-business technician ID."
    }
  }
}
operations-scorecards annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
reports-overview — Reports Overview Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Reads aggregate revenue, receivables, job, lead, and estimate performance for the authenticated workspace without exposing customer names, addresses, invoice rows, or mutation access.

reports-overview input schema
{
  "type": "object",
  "properties": {
    "period": {
      "enum": [
        7,
        30,
        90,
        365
      ],
      "type": [
        "integer",
        "null"
      ],
      "default": 30,
      "description": "Number of days for the bounded trend metrics; defaults to 30."
    }
  }
}
reports-overview annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
reports-by-location — Reports By Location Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Compares revenue, activation, retention, and review-request outcomes by physical location. Does not expose customer names, invoice rows, or mutation access. Location writes stay on the in-product assistant, not MCP.

reports-by-location input schema
{
  "type": "object",
  "properties": {
    "period": {
      "enum": [
        7,
        30,
        90,
        365
      ],
      "type": [
        "integer",
        "null"
      ],
      "default": 30,
      "description": "Number of days for location comparison metrics; defaults to 30."
    }
  }
}
reports-by-location annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
reports-customer-revenue-rank — Customer Revenue Rank Tool
Advertised by the server during the last successful anonymous check.
Advertised read-only

Ranks named customers by paid invoice revenue for the authenticated workspace. Uses all paid, non-sample invoices and returns aggregate customer totals without invoice rows.

reports-customer-revenue-rank input schema
{
  "type": "object",
  "properties": {
    "to": {
      "type": [
        "string",
        "null"
      ],
      "description": "Inclusive end date when period is custom."
    },
    "from": {
      "type": [
        "string",
        "null"
      ],
      "description": "Inclusive start date when period is custom."
    },
    "limit": {
      "type": [
        "integer",
        "null"
      ],
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of ranked customers to return."
    },
    "period": {
      "enum": [
        "all_time",
        "7",
        "30",
        "90",
        "365",
        "custom"
      ],
      "type": [
        "string",
        "null"
      ],
      "default": "all_time",
      "description": "Ranking window. Use all_time for to-date questions."
    }
  }
}
reports-customer-revenue-rank annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

1 advertised

server-card — Server Card Resource

Advertised by the server during the last successful anonymous check.

The public MCP Server Card metadata for FieldRobin.

server-card URI
mcp://server-card.json

MIME type: application/json

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

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
878 ms
95th percentile latency
878 ms

Maintenance history

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

  • · probe · passed · 878 ms · metadata changed · refuses unauthenticated resources/templates/list (HTTP 401)

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 fieldrobin-mcp https://fieldrobin.com/api/v1/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 fieldrobin-mcp --url https://fieldrobin.com/api/v1/mcp

Cursor

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

Cline

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

VS Code

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

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://fieldrobin.com/api/v1/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": {
    "fieldrobin-mcp": {
      "serverUrl": "https://fieldrobin.com/api/v1/mcp"
    }
  }
}

Let your agent find its tools

Find servers like FieldRobin 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 FieldRobin 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