vesta-mcp-server-savesearch
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vesta-mcp-server-savesearchShow my saved searches"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
vesta-mcp-server-savesearch
MCP tool server for MLS saved searches — list, propose, save, update and delete a user's saved property searches.
Response envelope
Every tool wraps its response under a single top-level key named after the
tool itself — {"list_saved_searches": {...}}, {"save_search": {...}}, and
so on (the exported constants in src/vesta_saved_search/tools.py, e.g.
LIST_SAVED_SEARCHES_KEY, are the source of truth; import them in new tests
rather than hardcoding the literal). This matches vesta-mcp-server's own
convention — "each tool returns a single-key envelope named after the tool"
(that repo's README) — and it is not merely a convention on this side: the
orchestrator's capability_executor.py now derives its internal grouping key
(mode_key) from the calling MCP tool's own name, unconditionally, rather
than trusting whatever key a server happens to wrap under. An earlier version
of this server wrapped every tool under one shared constant instead
("saved_search"), which the orchestrator was still trusting for naming at
the time — two different tool calls in the same turn collided on that one key.
The orchestrator-side fix means a server that still did this today would no
longer corrupt anything, but it would still produce an uninformative key, so
keep this convention regardless.
The build order, the tests for each step and the reasoning behind them live in
notes/saved-search-incremental-build-and-test-plan.md in the backend repo
(smart-search-for-guestSide). This repo implements steps N1–N9 of that plan,
which are phases 5, 7 and 9 of its build sequence. Read those three phases before
writing code here. (That notes/ directory is untracked in the backend repo, so a
fresh clone will not have the file — ask for a copy.)
Related MCP server: Todo MCP Server
Getting started
git clone https://github.com/<owner>/vesta-mcp-server-savesearch.git
cd vesta-mcp-server-savesearch
make setupmake setup needs only Python 3.11+ and uv. It
installs dependencies, installs both git hooks, creates the secrets baseline, and
verifies that ruff, mypy and pytest actually run. It is safe to re-run.
If uv is missing:
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (there is no `sh` in cmd or PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"make itself is optional. Nothing in this repo's git hooks or CI depends on
it — GNU Make is not on a stock Windows machine's PATH, so every make <target>
below has an exact equivalent with no make involved:
python scripts/bootstrap.py # same as `make setup`
uv run --frozen python scripts/tasks.py <task> # same as `make <task>`
uv run --frozen python scripts/tasks.py help # every task, with descriptionssetup is the one thing that is not a tasks.py task: it has to run before a
virtualenv exists, so it cannot go through uv run.
Daily commands
make check # the three blocking CI jobs: fast hooks, mypy, tests + coverage
make test # fast suite only
make format # auto-fix lint and format
make audit # report known CVEs in the locked dependency set
make help # every task, with descriptionscheck deliberately excludes the dependency audit, which is advisory in CI, and
needs network access. Run make audit when you want it.
You rarely need to run these by hand — the git hooks cover it.
What runs when
When | What runs | Roughly |
| ruff lint, ruff format, secret scan, file hygiene, lock freshness, version-pin checks | ~1s |
| mypy (strict, whole tree) + full test suite with the coverage gate | seconds |
pull request | five parallel jobs: the fast hooks, mypy, tests, a Docker build, and an advisory CVE audit | ~1 min |
The split is deliberate. Commits stay fast so nobody reaches for --no-verify;
the slow checks still run before code leaves your machine.
Tests marked contract or e2e hit live services, need real credentials, and
never run in CI or in the hooks. Run them deliberately:
make test-contract # -m contract
make test-e2e # -m e2eLayout
src/vesta_saved_search/ the package — all product code goes here
tests/ will mirror src/ as it grows; also tests the tooling
scripts/ developer tooling (bootstrap, task runner, consistency checks)The src/ layout is load-bearing, not a style choice: it means every tool config
targets src and tests and never a hand-maintained list of module names. See
docs/reusing-this-setup.md.
Reusing this setup on another project
Every config file here is project-agnostic except pyproject.toml (five values)
and the Dockerfile (its CMD module path and EXPOSE port). Copy the rest
unchanged. See docs/reusing-this-setup.md for the exact list.
This server cannot be installed
Maintenance
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
- FlicenseNot gradedqualityCmaintenanceMCP server for querying real estate agents registered with CRECI-SP. Enables searching by name, CRECI number, city, or status, retrieving agent details, and getting statistics.
- FlicenseNot gradedqualityDmaintenanceThis MCP server provides tools to manage a todo list with CRUD operations, enabling listing, creating, updating, and deleting todos.
- AlicenseAqualityDmaintenanceMCP server for Metaso Search API, providing multi-scope search and webpage reading tools.2272Apache 2.0
- FlicenseNot gradedqualityBmaintenanceMCP server providing CRUD tools for ServiceNow business rules, client scripts, and script includes.
Related MCP Connectors
MCP server for AI access to Swagger by SmartBear.
MCP server for medicare-coverage
GetJobzi MCP server for job search, application tracking, and career forecasting.
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/vestaplus/vesta-mcp-server-savesearch'
If you have feedback or need assistance with the MCP directory API, please join our Discord server