vac-product-recommend-mcp
vac-product-recommend-mcp
Local stdio MCP server: searches products for group trips in the Ctrip lists "Избранные/Общие" according to requirements and recommends TopN based on the useful score, sales, price, etc., returning a unified Markdown table (with links to the web/mobile versions).
Implemented purely using Python's standard library, no third-party dependencies, runs on Python 3.10+.
Tools
Tool | Purpose |
| By keyword + multiple filters, returns TopN products with good sales and reviews |
| Searches the list and returns Markdown table |
| Gets currently available filters and their values, for mapping |
| Gets Ctrip departure city ID by city name/pinyin (only when needed) |
Related MCP server: 12306 Train Ticket Search MCP Server
Getting values for the filter
When you need to map the user request to specific filter values, first call get_filter_options:
{ "keyword": "川西" }Return each option group and its possible values from fastFilters, the Agent can choose based on that and pass it to search_tours/recommend_tours.
get_departure_cities is only used if the user mentions a departure city and you need the ID; otherwise the default depart_city_id is used.
Installation (recommended via uv, no need to manually install Python)
Just install uv first:
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows PowerShell
irm https://astral.sh/uv/install.ps1 | iexThen install via the git link:
uv tool install git+https://github.com/KatouMegumii/vac-product-recommend-mcpOr you can directly run the installation script in the repository:
./scripts/install.sh
# Windows: powershell -File scripts/install.ps1uv will automatically download Python and dependencies on first run; the target machine does not need Python preinstalled.
Update
For installed users, update in the way you installed:
# 用 uv tool 安装的
uv tool upgrade vac-product-recommend-mcp
# 如果上面没拉到最新,强制重装:
uv tool install --force git+https://github.com/KatouMegumii/vac-product-recommend-mcp
# 克隆仓库 + pip install -e . 安装的
cd vac-product-recommend-mcp && git pullIf the client config uses uvx --from git+..., first clear the cache and then restart the MCP client:
uv cache cleanAfter updating, you need to restart/re-connect MCP for new tools and instructions to take effect.
If the installation/update is done by the Agent, you must:
Strictly check this readme's "Important: have the Agent strictly keep the output format" and "Specific: every inquiry is fully independent" limitations for changes;
Sync the latest limitations into the Agent's personalization / memory / Rules / system prompt;
After restarting/reconnecting MCP, confirm the tool list has been updated.
Client config
With Claude Desktop as example, edit claude_desktop_config.json:
{
"mcpServers": {
"vac-product-recommend": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/KatouMegumii/vac-product-recommend-mcp",
"vac-product-recommend-mcp"
],
"env": {
"CTRIP_COOKIE": "",
"CTRIP_GUID": ""
}
}
}
}config_examples/ contains example config configurations for Claude Desktop / Cursor / Cline.
Environment variables:
Variable | Required | Description |
| no | Full cookie string copied from the browser, can also work without (may trigger risk control) |
| no | Can be left empty; if empty uses built-in default |
| no | Risk control signature, not required by current API |
| no | Rotation token, not required by current API |
Main parameters
recommend_tours / search_tours
Parameter | Description |
| Destination/theme, e.g. "Turkey", "广西" |
| The department departure city ID; only query via |
| travel method, multi-select array: |
| The brand, e.g. |
| Star level, e.g. |
| Group size: |
| Transportation: |
| Service guarantees, multiple AND (comma separated or array): |
| Applicable crowd, multiple OR (comma separated or array): |
| The breakdown: promotions, such as |
| The number of days, supports |
| departure date (only the departure day), format |
| The supplier name or ID, multiple, name fuzzy match |
| Only pass |
| Minimum review, default 0 no filtering; irrelevant to the number of people |
| budget upper bound |
| number of recommendations |
| candidate pool limit, auto page to collect enough matches |
How to get the Cookie
Open the Ctrip H5 group tour list in the browser (or use DevTools to switch to mobile simulation).
F12 → NNetwork → find
graphql?queryName=productSearchInfo.Right-click → Copy → Copy as cURL.
Grab the entire string after
-bin...and put it intoCTRIP_COOKIE(as is, do not URL-encode).
Example
Help me find a 3-5 day self-owned mini-group or group tour in Guangxi, parent-child friendly, recommend 3.
The Agent will first query the departure city ID (if needed), then call the recommendation tool, and finally return the Markdown table as-is.
Important: let the Agent keep the output format strict
Add the following restriction in the Agent's Personalization / Memory / System Prompt / Rules (which is the most stable layer; if the Agent executes it itself, self-constrain as required):
当调用 vac-product-recommend 的 recommend_tours(又称mcp__recommend_tours) / 或 search_tours(又称mcp__search_tours) 后,
必须把工具返回的 Markdown(包含筛选项和表格) 原样作为最终回复输出。
禁止改写、禁止总结、禁止转成列表、禁止删除或合并列。Also add the restriction "every inquiry is completely independent":
每次调用 recommend_tours / search_tours 时,只根据当前这一轮用户的原话设置参数。
不要复用上一轮对话中的 keyword、travel_way、departure_date、days、team_size、budget 等参数。
如果用户新一轮没有提到某个筛选条件,就不要传该参数(使用默认值或留空)。Also, do not mix the number of people with the type of product:
用户提到人数(如 4人、6人、8人)时,必须设置 team_size(4人→最多9人)。
用户只说人数,不要推断为私家团;用户只说私家团,才设置 travel_way=私家团。Directory structure
vac-product-recommend-mcp/
├── vac_product_recommend_mcp/
│ ├── __init__.py
│ ├── __main__.py
│ ├── server.py # stdio MCP 协议 + 工具注册 + Markdown 渲染
│ ├── ctrip_api.py # 携程接口客户端 + 字段归一化 + 筛选
│ └── recommender.py # 评分、过滤、TopN
├── config_examples/
├── pyproject.toml
└── README.mdMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables interaction with Douban content including searching and reviewing books, movies, TV shows, and browsing group discussions. Supports searching by ISBN or keywords, retrieving reviews, and managing group topics with filtering capabilities.899MIT
- AlicenseNot gradedqualityDmaintenanceEnables searching for train tickets on China's 12306 railway system, including ticket availability queries, train filtering, station stopover information, and transfer route planning.9,8472MIT
- FlicenseNot gradedqualityDmaintenanceProvides tools to retrieve, visualize, and analyze Chinese scenic spot data by province/city, and generate/publish travel content to Xiaohongshu (Little Red Book) with automated posting capabilities.2
- AlicenseNot gradedqualityDmaintenanceA travel planning MCP server that supports flight search, weather (including cherry blossom forecasts), exchange rate queries, and trip planning. It specializes in Japan travel from Shenzhen/Hong Kong, providing optimal date analysis and multi-day itinerary suggestions.11ISC
Related MCP Connectors
TravelMind: 8 MCP tools for travel (12306 trains, flights, hotels, geocode, planning, policy).
Search and book theatre, attractions, tours across 681 cities. 13,090+ products.
China & Asia travel eSIM specialist. 200+ countries. No-VPN internet in China.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/KatouMegumii/vac-product-recommend-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server