[PR #780] [CLOSED] Add Repull booking agent team — vacation-rental MCP example #13970

Closed
opened 2026-07-11 19:28:03 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Shubhamsaboo/awesome-llm-apps/pull/780
Author: @ivannikolovbg
Created: 5/4/2026
Status: Closed

Base: mainHead: feat/add-repull-booking-agent-team


📝 Commits (1)

  • 13c9710 Add Repull booking agent team — vacation-rental MCP example

📊 Changes

4 files changed (+417 additions, -0 deletions)

View changed files

mcp_ai_agents/repull_booking_agent_team/.env.example (+6 -0)
mcp_ai_agents/repull_booking_agent_team/README.md (+97 -0)
mcp_ai_agents/repull_booking_agent_team/app.py (+309 -0)
mcp_ai_agents/repull_booking_agent_team/requirements.txt (+5 -0)

📄 Description

Summary

Adds a new example under mcp_ai_agents/repull_booking_agent_team/ — a multi-agent vacation-rental ops assistant powered by the Repull MCP server (@repull/mcp on npm).

One Repull API key fans out to 50+ PMS platforms and the major OTAs (Airbnb, Booking.com, VRBO, Plumguide), so the team can read reservations, properties, listings, guests, and conversations across an entire short-term-rental portfolio through a single MCP connection.

Why it fits this directory

There's a clear precedent for travel/MCP agent teams here — most directly ai_travel_planner_mcp_agent_team, which uses a similar Streamlit + Agno + MCP-via-npx pattern for the trip-planning side of vacation rentals. This PR adds the operator (property manager) side: instead of helping a guest plan a trip, it helps a host run their bookings.

It also follows the structural conventions of the rest of mcp_ai_agents/:

  • app.py (Streamlit + agno)
  • README.md (intro, prereqs, run, prompts, troubleshooting, links)
  • requirements.txt (no local SDK deps — MCP server runs via npx)
  • .env.example

What it demonstrates

A coordinator agent routing user queries to three specialists, all sharing the same MCP toolset but staying in their lanes via system-prompt contracts:

  • Listing Specialistrepull_list_properties, repull_list_listings, repull_list_airbnb_listings
  • Reservation Specialistrepull_list_reservations, repull_get_reservation, repull_list_guests, repull_list_conversations, repull_list_conversation_messages
  • Connections Specialistrepull_whoami, repull_list_connections, repull_list_connect_providers, plus discovery via repull_list_endpoints / repull_get_docs

The coordinator is instructed to call the Connections Specialist first on a fresh session so the team grounds itself in what's actually connected before suggesting actions.

Test plan

  • pip install -r requirements.txt succeeds in a fresh venv
  • npx -y @repull/mcp boots and registers all 18 tools
  • app.py imports cleanly
  • build_team() wires the 3 specialists + coordinator
  • End-to-end smoke: real OpenAI gpt-4o turn through the team — agent picks the right tool, hits the live Repull API, and surfaces the full error envelope (code, fix, docs_url) verbatim per the system prompt
  • Reviewer can run streamlit run app.py, paste a Repull test key + OpenAI key in the sidebar, and ask "what's connected to my account?"

Notes

  • Read-only by design. @repull/mcp v0.2 deliberately omits write tools (cancel, modify, push pricing, message guests) — letting an LLM "tidy up" a live booking calendar is a known footgun. A future release will add mutating tools individually behind explicit per-tool opt-in env flags.
  • No local SDK deps — the MCP server is launched via npx -y @repull/mcp so a fresh clone + pip install + streamlit run is enough.
  • OpenAI by default, but the README calls out the one-line swap to Anthropic Claude via agno.models.anthropic.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Shubhamsaboo/awesome-llm-apps/pull/780 **Author:** [@ivannikolovbg](https://github.com/ivannikolovbg) **Created:** 5/4/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `feat/add-repull-booking-agent-team` --- ### 📝 Commits (1) - [`13c9710`](https://github.com/Shubhamsaboo/awesome-llm-apps/commit/13c9710dd77bbdbf554db48c1c16d112a71bd896) Add Repull booking agent team — vacation-rental MCP example ### 📊 Changes **4 files changed** (+417 additions, -0 deletions) <details> <summary>View changed files</summary> ➕ `mcp_ai_agents/repull_booking_agent_team/.env.example` (+6 -0) ➕ `mcp_ai_agents/repull_booking_agent_team/README.md` (+97 -0) ➕ `mcp_ai_agents/repull_booking_agent_team/app.py` (+309 -0) ➕ `mcp_ai_agents/repull_booking_agent_team/requirements.txt` (+5 -0) </details> ### 📄 Description ## Summary Adds a new example under `mcp_ai_agents/repull_booking_agent_team/` — a multi-agent vacation-rental ops assistant powered by the [Repull MCP server](https://repull.dev/docs/mcp-server) (`@repull/mcp` on npm). One Repull API key fans out to 50+ PMS platforms and the major OTAs (Airbnb, Booking.com, VRBO, Plumguide), so the team can read reservations, properties, listings, guests, and conversations across an entire short-term-rental portfolio through a single MCP connection. ## Why it fits this directory There's a clear precedent for travel/MCP agent teams here — most directly [`ai_travel_planner_mcp_agent_team`](https://github.com/Shubhamsaboo/awesome-llm-apps/tree/main/mcp_ai_agents/ai_travel_planner_mcp_agent_team), which uses a similar Streamlit + Agno + MCP-via-npx pattern for the trip-planning side of vacation rentals. This PR adds the **operator** (property manager) side: instead of helping a guest plan a trip, it helps a host run their bookings. It also follows the structural conventions of the rest of `mcp_ai_agents/`: - `app.py` (Streamlit + agno) - `README.md` (intro, prereqs, run, prompts, troubleshooting, links) - `requirements.txt` (no local SDK deps — MCP server runs via `npx`) - `.env.example` ## What it demonstrates A coordinator agent routing user queries to three specialists, all sharing the same MCP toolset but staying in their lanes via system-prompt contracts: - **Listing Specialist** — `repull_list_properties`, `repull_list_listings`, `repull_list_airbnb_listings` - **Reservation Specialist** — `repull_list_reservations`, `repull_get_reservation`, `repull_list_guests`, `repull_list_conversations`, `repull_list_conversation_messages` - **Connections Specialist** — `repull_whoami`, `repull_list_connections`, `repull_list_connect_providers`, plus discovery via `repull_list_endpoints` / `repull_get_docs` The coordinator is instructed to call the Connections Specialist first on a fresh session so the team grounds itself in what's actually connected before suggesting actions. ## Test plan - [x] `pip install -r requirements.txt` succeeds in a fresh venv - [x] `npx -y @repull/mcp` boots and registers all 18 tools - [x] `app.py` imports cleanly - [x] `build_team()` wires the 3 specialists + coordinator - [x] End-to-end smoke: real OpenAI gpt-4o turn through the team — agent picks the right tool, hits the live Repull API, and surfaces the full error envelope (`code`, `fix`, `docs_url`) verbatim per the system prompt - [ ] Reviewer can run `streamlit run app.py`, paste a Repull test key + OpenAI key in the sidebar, and ask "what's connected to my account?" ## Notes - **Read-only by design.** `@repull/mcp` v0.2 deliberately omits write tools (cancel, modify, push pricing, message guests) — letting an LLM "tidy up" a live booking calendar is a known footgun. A future release will add mutating tools individually behind explicit per-tool opt-in env flags. - **No local SDK deps** — the MCP server is launched via `npx -y @repull/mcp` so a fresh clone + `pip install` + `streamlit run` is enough. - **OpenAI by default**, but the README calls out the one-line swap to Anthropic Claude via `agno.models.anthropic`. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-07-11 19:28:03 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/awesome-llm-apps#13970