Skip to main content
Glama
RoofScope MCP Server

RoofScope MCP Server

Official
by cogear

RoofScope MCP Server (unofficial)

An MCP server for the RoofScope API by Scope Technologies. It lets an AI assistant such as Claude, Cursor or any other MCP client:

  • find your RoofScope reports by address or name;

  • read a report's measurements: roof area by pitch, eaves, rakes, ridges, hips, valleys, flashing, every roof plane, gutters and downspouts, siding, and links to the PDF, DXF and DWG files;

  • look up your account's report prices and delivery options;

  • order new reports and upgrade RoofScopeX reports, only if you turn ordering on.

Unofficial. This project is not affiliated with, endorsed by, or supported by Scope Technologies. RoofScope is a trademark of Scope Technologies. It uses their public API as documented at docs.myscopetech.io.

Try asking:

  • "Pull the RoofScope measurements for 100 Example Ave."

  • "How many squares is the roof on the Johnson job, and what's the pitch breakdown?"

  • "What would a rush residential RoofScope cost us?"

What you need

  1. Node.js 20 or later.

  2. An API key from Scope Technologies. Every app that uses the RoofScope API needs one. Email support@myscopetech.com to request it.

  3. Your account's Scope API Token. In RoofScope, open My Details and copy the token from the Third-Party section. Tokens last a year; when one expires, click refresh there and update your configuration. RoofScope gives tokens to Growth and Advantage members, L1/L2 deposit holders and partner customers.

Related MCP server: mapsource-mcp

Set it up

Claude Desktop

Open Settings → Developer → Edit Config and add this to claude_desktop_config.json, then restart Claude:

{
  "mcpServers": {
    "roofscope": {
      "command": "npx",
      "args": ["-y", "github:cogear/roofscope-mcp"],
      "env": {
        "ROOFSCOPE_API_KEY": "your-scope-technologies-api-key",
        "ROOFSCOPE_TOKEN": "your-scope-api-token"
      }
    }
  }
}

Claude Code

claude mcp add roofscope \
  -e ROOFSCOPE_API_KEY=your-scope-technologies-api-key \
  -e ROOFSCOPE_TOKEN=your-scope-api-token \
  -- npx -y github:cogear/roofscope-mcp

Other MCP clients

Any client that can start a local (stdio) server works. The command is npx -y github:cogear/roofscope-mcp, with the environment variables below.

From source

git clone https://github.com/cogear/roofscope-mcp.git
cd roofscope-mcp
npm install        # also builds dist/

Then point your client at node /path/to/roofscope-mcp/dist/index.js.

Configuration

Variable

Required

What it is

ROOFSCOPE_API_KEY

yes

The API key Scope Technologies issued you.

ROOFSCOPE_TOKEN

yes

Your account's Scope API Token (My Details → Third-Party).

ROOFSCOPE_ALLOW_ORDERS

no

Set to true to let the assistant place paid orders. Off by default.

ROOFSCOPE_SOURCE_ID

no

Only if Scope Technologies assigned you a source id.

Tools

Tool

What it does

search_roofscope_scopes

Find reports by address or name, with status, hold reason and order date.

get_roofscope_scope

One report's measurements, per building and per plane, plus file links.

get_roofscope_prices

What each report costs on your account.

get_roofscope_delivery_options

Standard and rush delivery charges.

check_roofscope_connection

Whether the key and token work, and whether ordering is on.

order_roofscope_report

Order a new report. Charges your account. Only with ROOFSCOPE_ALLOW_ORDERS=true.

upgrade_roofscope_x

Upgrade a RoofScopeX to a full report. Charges your account. Only with ROOFSCOPE_ALLOW_ORDERS=true.

Ordering is off by default

RoofScope charges every order to your account, and orders can't be cancelled through the API. So the two ordering tools don't exist unless you start the server with ROOFSCOPE_ALLOW_ORDERS=true. When they're on:

  • the assistant is told to search for an existing report first, quote the price, and get your explicit go-ahead on the address, product, size, structures and delivery;

  • RoofScope's own order rules (buildings per order, required fields, date and email formats) are checked before anything is sent;

  • an order is sent exactly once and never retried. If RoofScope doesn't answer in time, the tool says the order may have gone through and to check before ordering again.

Limits and privacy

  • Scope Technologies limits each API key to 100 requests a second and 10,000 a month. This server sends at most four requests at a time and retries a failed read once.

  • The server runs on your own computer and talks only to api.myscopetech.io. It doesn't log or store report contents, names or addresses.

Development

npm install
npm test             # offline tests: no network, no keys
npm run typecheck
ROOFSCOPE_API_KEY=… ROOFSCOPE_TOKEN=… npm run live-check   # read-only check against the real API

The live check never calls the order endpoints and prints only counts and field names.

Using RoofScope across a team

This server connects one RoofScope account for one person. If your team wants RoofScope alongside your email, calendar and CRM, with a separate access level for each role, it's built into Higgs Hub, which is where this code came from.

License

MIT

Available Tools

5 tools
check_roofscope_connectionCheck the RoofScope connectionA
Read-only

Whether RoofScope accepts this server's API key and the account's Scope API Token, and whether ordering is turned on. Use it when another RoofScope tool fails, or to confirm the setup.

Inputs: no named parameters.

get_roofscope_delivery_optionsRoofScope delivery optionsA
Read-only

The extra charge for standard and rush delivery, per RoofScope product and size band.

Inputs: no named parameters.

get_roofscope_pricesRoofScope pricesA
Read-only

What each RoofScope report costs on this account, by product, property type and size band (e.g. "RoofScope-Residential-Greater Than 50 SQ": 69.95).

Inputs: product.

get_roofscope_scopeRoofScope report measurementsA
Read-only

One RoofScope report's measurements. For roof products: total roof area (in squares) by slope bucket and pitch, perimeter, eaves, rakes, ridges, hips, valleys, step and headwall flashing, and every plane per structure. For GutterScope / RoofScopePlus: gutter and downspout length, end caps and elbows. For SidingScope: siding area, wraps, windows and doors. Plus links to the PDF (and DXF/DWG where there are any). An unfinished or held report comes back as its status instead.

Inputs: scopeId (required).

search_roofscope_scopesSearch RoofScope reportsA
Read-only

Find RoofScope reports ("scopes") on the account whose address or name contains the search text. Returns each one's scopeId, orderId, product, status (Ordered, Completed, Unfunded…), whether it is on hold and why, and the order date. Leave query empty for the most recent. Use the scopeId with get_roofscope_scope for the measurements.

Inputs: query.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool has a distinct purpose: search (list/find reports), get (measurements for one report), prices, delivery options, and a connection diagnostic. The search/get pairing is clearly delineated by the descriptions (query vs. scopeId), and prices vs. delivery charges cannot be confused.

    Naming Consistency5/5

    All five names follow a consistent snake_case verb_noun pattern with a uniform roofscope prefix: search_roofscope_scopes, get_roofscope_scope, get_roofscope_prices, get_roofscope_delivery_options, check_roofscope_connection. No mixing of conventions.

    Tool Count5/5

    Five tools is well-scoped for a read-only RoofScope data integration; each tool earns its place (discovery, detail, pricing, delivery, health check) with no redundancy or padding.

    Completeness4/5

    The surface covers discovery, measurement retrieval, pricing, delivery costs, and connection validation, which handles most read-only workflows. However, ordering a report is alluded to (check_roofscope_connection reports whether ordering is on) yet no order/create tool is exposed, leaving a minor lifecycle gap.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Provides French real estate intelligence from official open data, including notarial sales, transparent estimates, rents, property tax, energy diagnostics, risks, and commune profiles. It enables MCP clients to get auditable property reports and analysis from a simple address without an API key.
      16
      147 npm
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables desktop agents and clients to access geospatial services via a hosted MCP server, including OpenStreetMap queries, address and business search, POI discovery, routing, matrices, isochrones, map matching, optimization, elevation and terrain, basemap styling, spatial analysis, rendering, usage, and service status.
      32 npm
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables agents to discover public county property-record catalogs, ask guided search questions, preview recorded facts, save searches, and review single-package or monthly lead offers before checkout. Public catalog discovery and record previews work without an account or API key.
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables MCP clients to search and describe API routes, retrieve people, admissions, academics, and billing records, download exports, and optionally make changes against a school information system, read-only by default.
      6
      928 npm
      MIT