Skip to main content
Glama
@raygister/mcp

@raygister/mcp

by raygisterinc

@raygister/mcp

Read-only Model Context Protocol server for Raygister, the platform where architects and project managers describe construction projects in lots and specifications (DPGF), consult companies and award markets.

npm version license MCP

Features

Seven read-only tools over the Raygister public API. No tool changes anything, and every tool sees only the organization the API key belongs to.

  • list_projects browse the organization's projects

  • get_project read one project: phase, client, address, dates, forecast budget, fee settings

  • get_project_totals a project's amounts: works HT, VAT per rate and TTC, per lot too, with fees apart

  • list_lots the lots of a project, one per trade, with their type, status and line counts

  • get_lot one lot with all its specifications in a single call

  • list_specifications the lines of a lot: quantity, unit, unit price, VAT rate, norms

  • list_locations the rooms, floors and zones of a project, with their hierarchy and surface

Every tool returns structured content matching its output schema, plus the same JSON as text for clients that ignore schemas.

Related MCP server: OfficeRnD MCP Server

Installation

Requires Node.js 22 or later.

For Claude Desktop, edit your claude_desktop_config.json:

{
  "mcpServers": {
    "raygister": {
      "command": "npx",
      "args": ["-y", "@raygister/mcp"],
      "env": {
        "RAYGISTER_API_KEY": "dk_your_key_here"
      }
    }
  }
}

For Claude Code:

claude mcp add raygister --env RAYGISTER_API_KEY=dk_your_key_here -- npx -y @raygister/mcp

Without a key the server exits at startup, which MCP clients report as a closed connection.

How to get an API key

  1. Sign in to app.raygister.com.

  2. Open Settings then API keys (/settings/api-keys).

  3. Create a key. It starts with dk_ and is shown only once: copy it into your MCP client config.

A key belongs to one organization and reads only its data. It stops working when it is revoked, and while the organization's access to the project manager space has ended (the tools then say so); renewing the subscription restores it.

Amounts

Amounts are excluding VAT (HT), in the project's currency, unless a field says ttc or vat. A unit_price of null means the line is not priced yet; 0 is a price. get_project_totals computes the totals the way the DPGF estimate prints them, so prefer it to adding lines up: the project manager (MOE) fees and the management fees are reported beside the works, never added to them.

Example prompts

  • "List my Raygister projects and tell me which one has the most lots."

  • "What is the total of the Martin apartment, excluding and including VAT, lot by lot?"

  • "Which lines of the electricity lot are not priced yet?"

  • "Summarise the plumbing lot's specifications with their quantities and units."

  • "How many square metres do the rooms of the first floor add up to?"

Tool reference

Name

Returns

Required inputs

list_projects

{ projects, pagination }, sorted by name.

none

get_project

One project.

project_id

get_project_totals

{ works, fees, lots, specifications_count, unpriced_specifications_count }.

project_id

list_lots

{ lots, pagination }, in grid order.

project_id

get_lot

One lot with specifications (up to 1000).

project_id, lot_id

list_specifications

{ specifications, pagination }, in grid order.

project_id, lot_id

list_locations

{ locations }, not paginated.

project_id

Paginated tools also accept page (default 1) and per_page (default 20, max 100).

When the API refuses a call, the tool answers with an error that says what to do: create a key (401), renew the subscription (403), or check the id (404).

Configuration

Variable

Required

Default

Description

RAYGISTER_API_KEY

yes

none

API key starting with dk_, from Settings > API keys.

RAYGISTER_API_URL

no

https://app.raygister.com/api

API base URL, to point at a staging or local Raygister.

The server sends nothing anywhere but the Raygister API.

Local development

git clone https://github.com/raygisterinc/mcp.git
cd mcp
pnpm install
pnpm test
pnpm build

pnpm dev rebuilds on save.

To try it against a local Raygister (the app serves the API on port 3000):

export RAYGISTER_API_KEY=dk_your_local_key
export RAYGISTER_API_URL=http://localhost:3000/api
pnpm smoke

The smoke script builds the server, starts it over stdio like an MCP client would, and calls every tool on the first project and lot it finds. The server checks each answer against the tool's output schema, so a drift between the API and the schemas fails there.

Contributing

Issues and pull requests welcome at github.com/raygisterinc/mcp. Please open an issue first if you plan a non-trivial change.

License

MIT, see LICENSE.

Available Tools

6 tools
get_lotA

Retrieve a single lot with its full description, type, instance number, current status, and inline specifications. Use list_lots first if the lot ID is unknown.

Inputs: projectId (required), lotId (required).

get_projectA

Retrieve full details of a single Raygister project by ID, including counts of lots, locations, and specifications, plus organization context. Use list_projects first if the project ID is unknown.

Inputs: projectId (required).

list_locationsA

List all locations (rooms, floors, zones) of a project. Returns location IDs, names, floor numbers, and parent location IDs for hierarchy. The response is a flat list, not paginated.

Inputs: projectId (required).

list_lotsA

List all lots (work packages) of a given project. Returns lot IDs, types (e.g. plumbing, HVAC), names, and statuses. Use the lot IDs to fetch specifications or full lot details.

Inputs: projectId (required), page, per_page.

list_projectsA

List all projects in the user's Raygister organization. Supports pagination via page and per_page. Returns project IDs, names, statuses, and creation dates. Use the project ID to fetch lots, locations, or full project details.

Inputs: page, per_page.

list_specificationsA

List all specifications of a given lot. Specifications are the detailed line items of the DPGF (project bid document). Returns IDs, descriptions, quantities, units, and tags.

Inputs: projectId (required), lotId (required), page, per_page.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A4.1/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: retrieving single items vs listing collections, and each resource type (project, lot, location, specification) has its own dedicated tool, eliminating ambiguity.

    Naming Consistency5/5

    All tool names consistently use the verb_noun pattern with 'get_' for single-item retrieval and 'list_' for collections, making the naming predictable and easy to follow.

    Tool Count5/5

    With 6 tools covering the core entities (projects, lots, locations, specifications), the count is well-scoped for a read-only project management server, providing essential operations without bloat.

    Completeness3/5

    The tool set covers listing and retrieval for all resources, but lacks any create, update, or delete operations, and missing individual retrieval for locations and specifications, leaving notable gaps for full lifecycle management.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers