@marocain/mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MAROCAIN_API_BASE | No | Override the API origin (testing only; must be HTTPS + allowlisted). Default is https://marocain.investments. | https://marocain.investments |
| MAROCAIN_TIMEOUT_MS | No | Per-request upstream timeout in milliseconds. Default is 30000. | 30000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_listingsA | Search AI-graded Moroccan luxury listings by city, typology, price, rooms and a free-text query. Returns structured listings with prices and {GIN} scores. Never returns agent contact details. |
| get_listingA | Full detail for one listing by id: price (USD/MAD), AI scores, M-Value AVM, FCR/title trust, source provenance and the {GIN} pillars + verdict. Never returns the agent's phone. |
| get_gin_scoreB | The {GIN} coherent verdict for a listing: the Quality pillar (asset, compute_marocain_score), the Deal pillar (price-vs-AVM + momentum) and the one fused buy/hold/pass verdict. The authored number an investor can defend. |
| search_rentalsA | Search AI-graded Moroccan long-let RENTAL listings (residential / commercial / student) by city, typology, monthly rent band and tier. Rent is in MAD/month (rent_usd_month provided too). Returns structured rentals with {GIN} scores. Calls the same public, PII-scrubbed rental surface the website uses — NEVER returns landlord/agency contact. Note: unlike sale search there is no server-side rooms or free-text filter on the public rental surface (rooms is returned per listing); filter by city / typology / rent band / tier. |
| rent_affordabilityA | How much monthly rent a given net income comfortably supports. Uses the SAME rule-of-thumb as marocain.investments/finance (rent ≤ 33% of net monthly income) so the answer never disagrees with the website. Give income in MAD (net_monthly_income_mad) or USD (net_monthly_income_usd). Returns the comfortable rent ceiling in MAD and USD. |
| rent_vs_buyA | Compare the monthly cost of BUYING a property vs RENTING it. Uses the SAME mortgage engine as marocain.investments/finance (standard annuity payment on the loan after down payment) — principal + interest only, excluding insurance/fees/taxes/maintenance/appreciation. Defaults mirror the site: 30% down, 20-year term, 5.2% rate. Returns the monthly buy payment, the rent, and the monthly difference (buy − rent). |
| get_marketA | Macro market facts for a city or national scope — median price, supply, momentum and the catalysts (WC2030, TGV) the {GIN} Deal pillar is benchmarked against. |
| listing_deriveB | AI-derived investor narrative for a listing — a one-paragraph thesis synthesising the {GIN} pillars, financial vision and location into a single decision memo. |
| semantic_searchA | Semantic / conceptual vector search across the Moroccan catalogue AND the authored guides (Foreign Buyer's Playbook, Morocco-vs-Dubai thesis, AI scoring methodology, residency, city theses). Use for fuzzy / lifestyle / thesis queries that don't map to exact filters — e.g. 'quiet authentic seaside neighbourhood with rental upside' or 'why Morocco over Dubai'. Returns ranked items with a similarity score. Never returns agent contact details. |
| gin_askA | Ask T{AI]GIN — the {GIN} agentic investment analyst — a one-shot natural-language question. It plans, searches the catalogue + authored guides, scores with the {GIN} pillars and answers grounded with citations. Use for open questions ('which Tangier district has the best rental upside?', 'why Morocco over Dubai?'). Never returns agent contact details. |
| gin_deal_memoA | Generate a structured investor DEAL MEMO for one listing id: the {GIN} Quality + Deal verdict, M-Value AVM with value-vs-ask, gross yield, strengths, risks, district read and next steps. Honest (won't soften an overpriced verdict). Decision support, not a certified appraisal. |
| request_serviceA | Submit a buyer ENQUIRY (or request a viewing / valuation / financing / renovation / legal help) for a listing. This is the ONLY conversion path: it routes the enquiry through marocain.investments to the listing's verified agent and returns a confirmation reference — it NEVER returns the agent's contact (the platform intermediates all contact). Works for listings that have a claimed, verified agent; for not-yet-claimed scraped listings it returns a clear note instead of routing. Requires the buyer's name + email so the agent can follow up. |
| list_servicesA | List the platform's transactable services + EUR prices — for BUYERS (AI staging, viral content, refundable reservation, bank-honored appraiser, on-site visitation, the €199 AI business-model plan, plus request-only lawyer / financing / bespoke commercialization) and for AGENTS/sellers (listing boost, photo relight). Returns each |
| order_serviceA | Place an order for any platform service (a |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 14 tools
Tools are mostly distinct: search vs. get vs. generate vs. service actions are clear. The main potential confusion is among the listing-centric tools (get_listing, get_gin_score, gin_deal_memo, listing_derive) which all operate on a single listing but produce different outputs. Descriptions do clarify the differences, but an agent might still hesitate when choosing between them.
Names mostly follow verb_noun pattern (search_listings, get_listing, list_services), but a few like listing_derive, gin_ask, gin_deal_memo break the pattern with noun_verb. Still, all names are descriptive and use a consistent snake_case style, so the deviation is minor.
14 tools is within the ideal range (3-15). Each tool covers a distinct aspect of the real estate investment workflow: search, detail, score, memo, market data, services, and financial calculators. No tool feels redundant.
The surface covers the full investor journey: discover (search), evaluate (get_listing, get_gin_score, gin_deal_memo, listing_derive), understand market (get_market), calculate (rent_affordability, rent_vs_buy), and act (request_service, order_service, list_services). Also includes semantic search and an agentic Q&A. No obvious gaps for the stated purpose.