pesties-mcp

pesties-mcp

MCP server for Pesties.au pest control booking (Gold Coast, Logan, South Brisbane, Australia). 7 tools including signed quote tokens and two-phase booking commit.

Category
访问服务器

README

Pesties.au MCP Server

Model Context Protocol server for Pesties.au, a pest control business serving the Gold Coast, Logan, and South Brisbane in Queensland, Australia.

Live endpoint: https://mcp.pesties.au

The first Australian home services MCP. Lets AI agents browse bookable pest treatments, generate real quotes with property-size-adjusted pricing, check service area coverage by suburb or postcode, and submit real bookings that flow into the Pesties booking system.

Features

  • 7 MCP tools covering the full booking flow: services, quotes, service areas, warranty terms, pest treatment recommendations, and two-phase booking submit.
  • Signed quote tokens (HMAC-SHA256): quotes carry the price, treatment, and property parameters in a signed token. Bookings verify the token, making price manipulation structurally impossible.
  • Two-phase booking commit: first submit returns a preview with the exact email, service address, and total. Second submit with the confirmation token books for real. Prevents wrong-detail bookings from AI agents.
  • Idempotency via Cloudflare KV: retries within a 24-hour window return the same result, never duplicates.
  • Protected species handling: possums, bees, and other protected native species trigger a do_not_bait: true flag with alternative guidance, returned at the tool-call layer before the agent generates a customer response.
  • Suburb alias normalisation: handles Mt/Mount, St/Saint, Nth/North, and trailing "QLD"/postcode suffixes. Reduces false negatives from name variants.
  • Postcode lookup: 4-digit query to check_service_area returns all matching serviced suburbs.
  • Protocol hygiene: negotiates protocolVersion from client capabilities on initialize, returns tool-call errors per MCP spec with isError: true so clients can distinguish tool errors from transport errors.

Use Cases

  • AI agents booking pest control on behalf of a customer. A Claude or GPT agent handles the whole flow: identify the pest, verify the suburb is serviced, quote the price, and book the appointment.
  • Home services aggregators. A booking aggregator app can list Pesties services alongside plumbing, electrical, HVAC, and cleaning options in a single agent interface.
  • Property manager workflows. A strata or Airbnb host agent can quote and book routine pest treatments for multiple properties without picking up the phone.
  • Voice assistants. Connecting a Vapi, ElevenLabs, or Retell voice agent to the MCP endpoint enables phone-booking flows for customers who prefer voice over chat.
  • Reference implementation. A working example of production MCP patterns: signed tokens, two-phase commit, idempotency, protected species handling, and Cloudflare Workers deployment.

Tools

The server exposes 7 MCP tools:

Tool What it does
list_bookable_services Full catalog of pest treatments with pricing tiers, coverage, and warranty terms.
get_quote Returns a signed quote token for a specific treatment. Property type, storeys, and block size drive the price.
list_service_areas Every suburb Pesties services, grouped by region (Gold Coast, Logan, South Brisbane).
check_service_area Confirms whether a suburb or 4-digit postcode is serviced. Handles common aliases.
get_warranty_terms The PestiesProtect+ warranty terms in full: 6 months on Annual Guardian, 12 months on 360° Ultimate.
check_pest_treatment Given a pest species, returns the recommended treatment package. Flags protected species with do-not-bait guidance.
submit_booking Two-phase commit: first call returns a preview with a confirmation token, second call with the token submits the real booking.

Using the hosted endpoint

Point any MCP client at https://mcp.pesties.au. No authentication required, no API key.

Quick verification:

curl -s https://mcp.pesties.au/ | python3 -m json.tool

That hits the health endpoint and returns server metadata.

For a full MCP initialize handshake:

curl -s -X POST https://mcp.pesties.au/ \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}' \
  | python3 -m json.tool

Claude Desktop config

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "pesties": {
      "url": "https://mcp.pesties.au"
    }
  }
}

Running locally

Requires Node.js 20+, npm, and a Cloudflare account (only for a real deploy, not for local dev).

git clone https://github.com/JovianNights/pesties-mcp.git
cd pesties-mcp
npm install
cp .dev.vars.example .dev.vars
# edit .dev.vars and fill in real secret values for HMAC_SECRET and WP_SHARED_SECRET
npx wrangler dev

The dev server runs at http://127.0.0.1:8787. initialize works without secrets set. get_quote and submit_booking will error with a clear message if HMAC_SECRET is missing.

Docker

A Dockerfile is included so the server can be built and started in a sandbox (used by Glama.ai's registry check):

docker build -t pesties-mcp .
docker run -p 8787:8787 pesties-mcp

The container starts wrangler dev with dummy env vars. initialize responds correctly. Tools that require real secrets return their clear error path, which is what a sandbox check should verify.

Deploying

Requires a Cloudflare Workers account and a KV namespace bound as BOOKINGS_KV.

npx wrangler kv:namespace create BOOKINGS_KV
# copy the id into wrangler.toml
npx wrangler secret put HMAC_SECRET
npx wrangler secret put WP_SHARED_SECRET
npx wrangler deploy

HMAC_SECRET should be a random 32+ byte string (openssl rand -base64 32). WP_SHARED_SECRET must match the X-Pesties-MCP-Secret header check on the WordPress admin-ajax pesties_booking handler.

FAQ

Do I need an API key to use this?

No. The hosted endpoint at https://mcp.pesties.au is open. Anyone can connect, browse services, and get quotes. Bookings go through a two-phase commit so customers see the full details before anything is committed.

Can I self-host this MCP?

Yes. The source is MIT-licensed. Clone the repo, install Wrangler, and deploy to your own Cloudflare Workers account. You will need your own HMAC_SECRET, WP_SHARED_SECRET, and a KV namespace. See "Deploying" above.

How do I connect from Claude Desktop?

Add the pesties server to your claude_desktop_config.json pointing at https://mcp.pesties.au. See the "Claude Desktop config" section above. No auth required.

What areas does Pesties service?

Gold Coast, Logan, and South Brisbane in Queensland, Australia. Use check_service_area to verify a specific suburb, or list_service_areas for the full list.

Are prices real?

Yes. get_quote returns a signed quote token that encodes the exact treatment, property parameters, and price. submit_booking requires the token and treats its contents as authoritative. The price shown in the quote is the price the customer pays.

What happens with protected species (possums, bees)?

check_pest_treatment returns do_not_bait: true for protected species with alternative guidance. Pesties will not sell rodent-style baiting for a possum problem in Queensland. Agents should offer relocation contacts for possums and beekeeper referrals for bees.

How is this different from other pest control booking APIs?

Two things. First, this is an MCP server, not a REST API, so any MCP-compatible AI agent can use it out of the box. Second, the signed quote token plus two-phase commit pattern means the pricing and booking flow is safe against agent hallucination and prompt injection.

How can I contribute or report bugs?

Open a GitHub issue on this repo. For urgent business enquiries, contact Pesties directly (see Contact below).

License

MIT. See LICENSE.

Contact

  • Business: pesties.au · 0494 151 789
  • MCP endpoint: https://mcp.pesties.au
  • Bug reports: open a GitHub issue on this repo

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选