Odel
mcp

mcp

Local
@str-consultingGoUpdated 1mo ago

Pacer revenue-management API as MCP tools: portfolios, pacing, market metrics, Guesty, briefs.

pacer-mcp

🪦 RETIRED. This standalone PAT-over-stdio server no longer reaches the Pacer API. Every tool returns a notice to switch to the in-process ("inline") Pacer MCP connector built into core, offered as the hosted "Pacer" connector on claude.ai / Claude Cowork (tools appear as mcp__…Pacer__…). The standalone binary called the API over the network at portal.pacerrev.io, which now redirects unauthenticated API calls to an HTML login page; the in-process connector dispatches to the same /api/v1 handlers with no network hop and can't drift from the API host. Remove this server from your MCP client config. The setup and tool docs below are kept for historical reference only.

An MCP server that exposes pacer/core API endpoints as native tools for Claude Code (and any other MCP-aware client). One binary, stdio transport, no fuss.

Install

macOS (Homebrew)

brew install STR-Consulting/tap/pacer-mcp

Windows (Scoop)

scoop bucket add pacer https://github.com/STR-Consulting/scoop-bucket
scoop install pacer-mcp

Non-programmer? See docs/windows-setup.md for a copy-paste prompt to hand to your AI assistant.

Linux (binary tarball)

For server/automation use. Replace <version> and pick amd64 or arm64:

curl -fsSL https://github.com/STR-Consulting/mcp/releases/latest/download/pacer-mcp_<version>_linux_amd64.tar.gz | tar -xz
sudo install pacer-mcp /usr/local/bin/

Or use the OCI image: ghcr.io/str-consulting/pacer-mcp:latest (linux/amd64 + linux/arm64).

From source

go install github.com/STR-Consulting/pacer-mcp@latest

Setup

Add to your MCP config (e.g. .mcp.json in your project or your Claude Code user config):

{
  "mcpServers": {
    "pacer": {
      "command": "pacer-mcp",
      "env": {
        "PACER_CORE_URL": "https://portal.pacerrev.io",
        "PACER_CORE_TOKEN": "pat_..."
      }
    }
  }
}
Env varDescriptionDefault
PACER_CORE_URLBase URL of the pacer/core app (PAT JSON API is mounted here)https://portal.pacerrev.io
PACER_CORE_TOKENPersonal access token, format pat_...(unset)

Run health_check after install to confirm the server can reach core.

PATs are minted by a core admin via pacer pat create --user <email> --label <name>; they require an employee-or-higher role and are sent as Authorization: Bearer pat_....

Tools

Each tool's full description (caveats, when to use, args) is returned to the MCP client at registration time — agents see them at tool-selection time. The list below is a quick index.

Operational

ToolWhat it does
health_checkPings the Pacer API and reports config + reachability

Portfolio fundamentals

ToolWhat it does
list_briefable_portfoliosEnumerate active portfolios (optional q name filter)
list_portfolio_teamsBulk: notification team (RM/RD/Jon) for every portfolio
get_portfolio_teamNotification team for a single portfolio
list_portfolio_unitsUnit roster: bedrooms, type, managed/active, location
list_portfolio_reservationsReservations in a date range (by check_in/check_out/booked_on)

Performance

ToolWhat it does
get_portfolio_pacingRecent reservations w/ YoY rent/ADR/ABW/LOS + anomaly score
get_portfolio_metrics_ytdCY vs PY YTD: revenue, ADR, occupancy, RevPAR, LOS, count
get_portfolio_market_metricsOne-month CY vs PY + market benchmark deltas; optional decomposition

Guesty PMS

ToolWhat it does
guesty_pricing_configPer-unit pricing intent: base price, fees, min/max nights, factors, channel settings
guesty_reservation_promotionsChannel-applied promos on reservations in a month (Airbnb, Vrbo, etc.)

Client health

ToolWhat it does
get_client_health_briefLatest (or dated) sentiment brief for a portfolio
upsert_client_health_briefLog a lightweight sentiment brief (1-5 + stage + payload)
list_client_health_briefsDashboard view: latest brief per portfolio as of a date
get_client_health_scoring_configScoring weights, labels, and tier thresholds
upsert_intel_briefPublish a full intel brief (Postgres + ClickUp task + BigQuery mirror)

KeyData

ToolWhat it does
list_managed_keydata_unitsPacer-managed unit UUIDs for a KeyData customer account

Not wrapped: POST /portfolios/{p}/intel-brief/attachments (multipart binary upload). MCP has no natural multipart story.

Development

go build -o pacer-mcp .
go test ./...
golangci-lint run --fix ./...

Releases are automated — push a v* tag and GitHub Actions builds darwin-arm64, windows-amd64, and linux-{amd64,arm64} binaries (plus a ghcr.io/str-consulting/pacer-mcp OCI image), then updates the Homebrew tap and Scoop bucket and publishes to the MCP Registry.

License

MIT