{
  "markdown": "# pacer-mcp\n\n> **🪦 RETIRED.** This standalone PAT-over-stdio server no longer reaches the\n> Pacer API. Every tool returns a notice to switch to the **in-process\n> (\"inline\") Pacer MCP connector** built into core, offered as the hosted\n> **\"Pacer\"** connector on claude.ai / Claude Cowork (tools appear as\n> `mcp__…Pacer__…`). The standalone binary called the API over the network at\n> `portal.pacerrev.io`, which now redirects unauthenticated API calls to an HTML\n> login page; the in-process connector dispatches to the same `/api/v1` handlers\n> with no network hop and can't drift from the API host. **Remove this server\n> from your MCP client config.** The setup and tool docs below are kept for\n> historical reference only.\n\nAn MCP server that exposes [pacer/core](https://github.com/pacer/core) API endpoints as native tools for Claude Code (and any other MCP-aware client). One binary, stdio transport, no fuss.\n\n## Install\n\n### macOS (Homebrew)\n\n```\nbrew install STR-Consulting/tap/pacer-mcp\n```\n\n### Windows (Scoop)\n\n```\nscoop bucket add pacer https://github.com/STR-Consulting/scoop-bucket\nscoop install pacer-mcp\n```\n\nNon-programmer? See [docs/windows-setup.md](docs/windows-setup.md) for a copy-paste prompt to hand to your AI assistant.\n\n### Linux (binary tarball)\n\nFor server/automation use. Replace `<version>` and pick `amd64` or `arm64`:\n\n```\ncurl -fsSL https://github.com/STR-Consulting/mcp/releases/latest/download/pacer-mcp_<version>_linux_amd64.tar.gz | tar -xz\nsudo install pacer-mcp /usr/local/bin/\n```\n\nOr use the OCI image: `ghcr.io/str-consulting/pacer-mcp:latest` (linux/amd64 + linux/arm64).\n\n### From source\n\n```\ngo install github.com/STR-Consulting/pacer-mcp@latest\n```\n\n## Setup\n\nAdd to your MCP config (e.g. `.mcp.json` in your project or your Claude Code user config):\n\n```json\n{\n  \"mcpServers\": {\n    \"pacer\": {\n      \"command\": \"pacer-mcp\",\n      \"env\": {\n        \"PACER_CORE_URL\": \"https://portal.pacerrev.io\",\n        \"PACER_CORE_TOKEN\": \"pat_...\"\n      }\n    }\n  }\n}\n```\n\n| Env var | Description | Default |\n|---------|-------------|---------|\n| `PACER_CORE_URL` | Base URL of the pacer/core app (PAT JSON API is mounted here) | `https://portal.pacerrev.io` |\n| `PACER_CORE_TOKEN` | Personal access token, format `pat_...` | (unset) |\n\nRun `health_check` after install to confirm the server can reach core.\n\nPATs 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_...`.\n\n## Tools\n\nEach 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.\n\n### Operational\n\n| Tool | What it does |\n|------|--------------|\n| `health_check` | Pings the Pacer API and reports config + reachability |\n\n### Portfolio fundamentals\n\n| Tool | What it does |\n|------|--------------|\n| `list_briefable_portfolios` | Enumerate active portfolios (optional `q` name filter) |\n| `list_portfolio_teams` | Bulk: notification team (RM/RD/Jon) for every portfolio |\n| `get_portfolio_team` | Notification team for a single portfolio |\n| `list_portfolio_units` | Unit roster: bedrooms, type, managed/active, location |\n| `list_portfolio_reservations` | Reservations in a date range (by `check_in`/`check_out`/`booked_on`) |\n\n### Performance\n\n| Tool | What it does |\n|------|--------------|\n| `get_portfolio_pacing` | Recent reservations w/ YoY rent/ADR/ABW/LOS + anomaly score |\n| `get_portfolio_metrics_ytd` | CY vs PY YTD: revenue, ADR, occupancy, RevPAR, LOS, count |\n| `get_portfolio_market_metrics` | One-month CY vs PY + market benchmark deltas; optional decomposition |\n\n### Guesty PMS\n\n| Tool | What it does |\n|------|--------------|\n| `guesty_pricing_config` | Per-unit pricing intent: base price, fees, min/max nights, factors, channel settings |\n| `guesty_reservation_promotions` | Channel-applied promos on reservations in a month (Airbnb, Vrbo, etc.) |\n\n### Client health\n\n| Tool | What it does |\n|------|--------------|\n| `get_client_health_brief` | Latest (or dated) sentiment brief for a portfolio |\n| `upsert_client_health_brief` | Log a lightweight sentiment brief (1-5 + stage + payload) |\n| `list_client_health_briefs` | Dashboard view: latest brief per portfolio as of a date |\n| `get_client_health_scoring_config` | Scoring weights, labels, and tier thresholds |\n| `upsert_intel_brief` | Publish a full intel brief (Postgres + ClickUp task + BigQuery mirror) |\n\n### KeyData\n\n| Tool | What it does |\n|------|--------------|\n| `list_managed_keydata_units` | Pacer-managed unit UUIDs for a KeyData customer account |\n\n> Not wrapped: `POST /portfolios/{p}/intel-brief/attachments` (multipart binary upload). MCP has no natural multipart story.\n\n## Development\n\n```bash\ngo build -o pacer-mcp .\ngo test ./...\ngolangci-lint run --fix ./...\n```\n\nReleases 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.\n\n## License\n\nMIT\n",
  "bytes": 5185,
  "sha": "2cdaddfd782988eb0bb6b816a0cc10fc6f723b0131882f7caec9ea8d3f8b6066",
  "repo_slug": "str-consulting/mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_str_consulting_pacer_mcp_d350e151/readme"
}