New:Microsoft Teams Notifications Are Now Available in Socket.Learn more
Get Started

@marocain/mcp-server

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@marocain/mcp-server

Model Context Protocol server for marocain.investments — the {GIN} authored real-estate intelligence (scoring verdict, M-Value, market facts, derived memos) for Morocco. Moat-safe: never exposes agent contact details.

latest
Source
npmnpm
Version
0.1.9
Version published
Weekly downloads
41
-51.76%
Maintainers
1
Weekly downloads
 
Created
Source

@marocain/mcp-server

npm ci license node Glama MCP Smithery MCP

The official Model Context Protocol server for marocain.investments — bringing {GIN}, our authored real-estate intelligence for Morocco, into any MCP client (Claude Desktop, IDEs, agents).

Discover, score and analyse Moroccan luxury real estate — then submit an enquiry that's routed on-platform. All the analysis is free; contact with the agent is always intermediated by the platform.

What is {GIN}?

{GIN} is the platform's proprietary scoring DNA. Instead of one blurry "AI score", it speaks with two coherent pillars fused into one honest verdict:

  • {GIN} Quality — how good the asset is (vision view/structural/condition + location + yield + WC 2030 catalyst + trust).
  • {GIN} Deal — how good the buy is (asking price vs. the M-Value AVM, adjusted for city momentum).
  • Fused verdict — one buy/hold/pass headline that can never disagree with the numbers ("Prime asset, priced to buy", "Cheap — verify condition", …).

It's the difference between a good property and a good deal — the question generic scores never answer. It's honest by design: an overpriced listing is told it's overpriced.

Install

No install needed — run it straight from npm:

npx -y @marocain/mcp-server

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "marocain": {
      "command": "npx",
      "args": ["-y", "@marocain/mcp-server"]
    }
  }
}

Tools

Eleven tools — eight read-only analysis tools, a moat-safe enquiry tool, and two commerce tools (discover + order paid services).

Analyse (free)

ToolWhat it does
search_listingsSearch AI-graded Moroccan listings by city, typology, price, rooms, free-text.
get_listingFull detail for one listing — price (USD/MAD), AI scores, M-Value AVM, trust, {GIN} pillars + verdict.
get_gin_scoreThe {GIN} verdict: Quality + Deal pillars + the fused buy/hold/pass headline.
get_marketMacro market facts for a city or national scope (median price, supply, momentum, WC 2030 / TGV catalysts).
listing_deriveAI-derived one-paragraph investment memo for a listing (6 languages).
semantic_searchConceptual / vector search across the catalogue and the authored guides (Foreign Buyer's Playbook, Morocco-vs-Dubai, AI-scoring methodology, residency, city theses).
gin_askAsk T{AI]GIN, the agentic investment analyst, a one-shot question — it plans, searches, scores with the {GIN} pillars and answers with citations.
gin_deal_memoA structured, honest investor deal memo for one listing (verdict, M-Value, yield, strengths, risks, district read, next steps).

Enquire & transact

ToolWhat it does
request_serviceSubmit a buyer enquiry / request a viewing — routed on-platform to the listing's verified agent. Returns a reference, never any contact.
list_servicesThe transactable service catalogue + EUR prices — buyer services (AI staging, viral content, reservation, appraiser, visitation — note the live API product_type id is spelled visaitation — the €199 AI business plan, lawyer / financing / commercialization) and agent services (listing boost, photo relight).
order_serviceOrder any service. Instant products return a Stripe checkout_url (pay on-platform); request-only products return a tracked order_id. Never returns contact.

Payments: card checkout for instant products may be briefly unavailable while the platform reconnects its payment processor — request-based services and buyer enquiries work regardless. order_service reports this cleanly.

Discover → analyse → enquire

The model is simple and the same for everyone: all the intelligence is free (it's lead-gen), and the only way to make contact is through the platform (that's the moat, and how agents are billed).

  • Discover & score with search_listings / get_gin_score / semantic_search.
  • Go deep with get_listing / gin_deal_memo / gin_ask.
  • Enquire with request_service — it routes the buyer's interest to the listing's verified agent and returns a reference. You never receive the agent's phone, email or WhatsApp; the platform intermediates contact.

Most of the catalogue is still being onboarded by agents. request_service routes to a listing's claimed, verified agent; for a listing without one yet it returns a clear note instead of routing.

Example response shapes

get_gin_score({ id }) → the authored verdict:

{
  "id": "…",
  "title": "…",
  "price_usd": 9630000,
  "gin_verdict": { "key": "prime_value", "label": "Prime asset, priced to buy", "tone": "strong" },
  "gin_quality": 76,
  "gin_deal": 64,
  "m_value_usd": 9100000,
  "trust": { "title_verified": false, "fcr_status": "unknown" }
}

request_service({ listing_id, buyer_name, buyer_email, message }) → an on-platform reference, no contact:

{ "ok": true, "kind": "lead", "lead_id": "…", "status": "requested", "routed": true }

Moat-safe by design

No tool ever returns an agent's or seller's contact. On top of the public API hiding the phone, this server redacts the origin-portal deep link (source_url / source_listing_id) and the agent / agency name from listing payloads — so a downstream agent can't route a user off-platform to the seller. The single conversion path is request_service, which routes a buyer enquiry through marocain's own lead flow and returns a reference, never any contact. Discover, score and analyse freely; contact is always intermediated by the platform.

Troubleshooting

SymptomCauseFix
request timed out after 30000msUpstream slow or unreachable.Retry. Bump MAROCAIN_TIMEOUT_MS if your network is high-latency.
The Marocain API returned an error (403)Rare — Vercel platform-level anti-bot on very bursty traffic.Back off and retry.
valid buyer_email required (from request_service)A buyer name + valid email are mandatory so the agent can reply.Supply both.
listing_unclaimed (from request_service)The listing has no claimed agent yet, so the enquiry can't be routed.Try a claimed/verified listing; check back as agents onboard.
ignoring disallowed MAROCAIN_API_BASEYou set MAROCAIN_API_BASE to a non-HTTPS or non-allowlisted host.Leave it unset (the default is correct).

Configuration

Env varDefaultPurpose
MAROCAIN_API_BASEhttps://marocain.investmentsOverride the API origin (testing only; must be HTTPS + allowlisted).
MAROCAIN_TIMEOUT_MS30000Per-request upstream timeout.
  • Skills catalog: @hei33enberg/luxury-skills (npm) — the machine-readable capability catalog this server draws from.
  • Live API: https://marocain.investments/api/public/* · AEO manifest: /llms.txt.

Releasing

Publishing to npm is automated by a GitHub Action (publish-mcp) in the platform repo:

# bump the version, commit, push — the Action publishes @marocain/mcp-server
npm version patch        # or minor / major  (edits package.json)
git push --follow-tags

Local npm test runs the unit tests (CI runs them on Node 18/20/22); CI additionally runs the black-box MCP handshake smoke (node test/smoke.mjs) on Node 20.

License

MIT © marocain.investments

Keywords

mcp

FAQs

Package last updated on 09 Jul 2026

Related posts