allamiwayl-27/rabatrealestate
MCP server for real estate in Morocco — 17 tools for search, valuation, and market analysis. Level 5 Agent-Native.
Block For Production
trustsnap_d770ab12af7c44d8.- Utility Coverage
- Transport Compliance
- Resource Contract
- Add an explicit confirm/dry-run parameter or two-step confirmation flow to write, delete, exec, and egress-capable tool…
- Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.
- Confirm which endpoint is canonical, correct or retire the stale registry entry, and re-sync so every alias agrees on o…
- No segmented attention signals observed in the current window.
Dispute this assessment
If any published claim about this server -- its score, a risk flag, a capability classification, or its taxonomy -- is factually wrong, tell us what evidence shows and we will review it. This does not require claiming or verifying ownership of the server first.
Verify responds to disputes within 5 business days and resolves them within 15.
Dispute history
No disputes filed for this server.
Risk
Security posture
Tool capability & risk inventory
| Tool | Capabilities | Risk | Findings | Notes |
|---|---|---|---|---|
search_listings |
read | Low | none | No explicit safeguard hints detected. |
get_listing |
read | Low | none | No explicit safeguard hints detected. |
estimate_property |
undetermined | Low | none | No explicit safeguard hints detected. |
get_market_trends |
read | Low | none | No explicit safeguard hints detected. |
get_quartier_stats |
read | Low | none | No explicit safeguard hints detected. |
list_quartiers |
read | Low | none | No explicit safeguard hints detected. |
list_villes |
read | Low | none | No explicit safeguard hints detected. |
create_lead |
write | Medium | none | No explicit safeguard hints detected. |
get_comparables |
read | Low | none | No explicit safeguard hints detected. |
get_investor_alerts |
read | Low | none | No explicit safeguard hints detected. |
get_price_analytics |
read | Low | none | No explicit safeguard hints detected. |
get_rental_yield |
read | Low | none | No explicit safeguard hints detected. |
get_market_predictions |
read | Low | none | No explicit safeguard hints detected. |
get_quartier_comparison |
read | Low | none | No explicit safeguard hints detected. |
get_suspicious_listings |
read | Low | none | No explicit safeguard hints detected. |
get_liquidity |
read | Low | none | No explicit safeguard hints detected. |
get_agency_leaderboard |
read | Low | none | No explicit safeguard hints detected. |
Write-action governance
Status detail: No high-risk write actions; auth boundary is oauth or auth required with 0 safeguard(s) and 0 confirmation signal(s).
| Tool | Risk | Flags | Safeguards |
|---|---|---|---|
| No high-risk tools were detected on the latest run. | |||
Action-controls diff
New actions
| Action | Risk | Flags |
|---|---|---|
create_lead | Medium | none |
estimate_property | Low | none |
get_agency_leaderboard | Low | none |
get_comparables | Low | none |
get_investor_alerts | Low | none |
get_liquidity | Low | none |
get_listing | Low | none |
get_market_predictions | Low | none |
get_market_trends | Low | none |
get_price_analytics | Low | none |
get_quartier_comparison | Low | none |
get_quartier_stats | Low | none |
get_rental_yield | Low | none |
get_suspicious_listings | Low | none |
list_quartiers | Low | none |
list_villes | Low | none |
search_listings | Low | none |
Changed actions
| Action | Change types | Risk |
|---|---|---|
| No materially changed actions. | ||
Critical alerts
Compatibility
Client compatibility verdicts
Client compatibility only means the server shape can work with a client. Production trust decision and write-action publishing are evaluated separately so a client-compatible server can still be blocked for production.
Evidence provenance
initialize• OKtools_list• OKtransport_compliance_probe• Errorstep_up_auth_probe• OKconnector_replay_probe• OK — Frozen tool snapshots must survive refresh.request_association_probe• Missing — Roots, sampling, and elicitation should stay request-scoped.
Evidence provenance
initialize• OKtools_list• OKtransport_compliance_probe• Error
Evidence provenance
action_safety_probe• Warning
Evidence provenance
tool_snapshot_probe• OKconnector_replay_probe• OK
Client compatibility gate details
Remediation checklist
Dynamic client registration materially improves connector setup.Transport compliance failed or did not complete successfully.OAuth interoperability should be strong.The tool surface is not limited to search/fetch-style read tools.This client profile expects a read/search-only tool surface, but write, delete, or exec-capable tools are present.Not yet safe for company-knowledge use: requires a search/fetch-only surface with no export, bulk, mutating, or high-blast-radius exposure.
Remediation checklist
Transport behavior should match Claude-compatible HTTP expectations.The tool surface is not limited to search/fetch-style read tools.This client profile expects a read/search-only tool surface, but write, delete, or exec-capable tools are present.Not yet safe for company-knowledge use: requires a search/fetch-only surface with no export, bulk, mutating, or high-blast-radius exposure.Not yet safe for the Messages API remote MCP path: requires OAuth, a compatible connector profile, and no pending connector-refresh risk.Transport compliance issues should be resolved before wider client rollout.
Remediation checklist
Add confirmation or dry-run semantics for risky actions.action_safety_probe is in warning -- confirm the flagged risk before treating this as write-safe.Production readiness is blocked by an active alert: Tool snapshot changed.Production readiness is blocked by an active alert: Auth mode changed.
Verdict traces
tool_snapshot_changed• high • Tool snapshot changedauth_mode_changed• high • Auth mode changed
Client verdict trace table
| Verdict | Status | Checks | Winning source | Conflicts |
|---|---|---|---|---|
openai_connectors |
Partially client-compatible | initialize, tools_list, transport_compliance_probe, step_up_auth_probe, connector_replay_probe, request_association_probe | live_validation | none |
claude_desktop |
Client-compatible | initialize, tools_list, transport_compliance_probe | live_validation | none |
unsafe_for_write_actions |
Publishing blocked | action_safety_probe | live_validation | none |
snapshot_churn_risk |
Medium | tool_snapshot_probe, connector_replay_probe | history | none |
Publishability policy profiles
- Search Fetch Only: No
- Write Actions Present: Yes
- Oauth Configured: Yes
- Admin Refresh Required: No
- Safe For Company Knowledge: No
- Safe For Messages Api Remote Mcp: No
- Search Fetch Only: No
- Write Actions Present: Yes
- Oauth Configured: Yes
- Admin Refresh Required: No
- Safe For Company Knowledge: No
- Safe For Messages Api Remote Mcp: No
Compatibility fixtures
- remote_http_endpoint: Passes
- oauth_discovery: Passes
- frozen_tool_snapshot_refresh: Passes
- request_association: Passes
- remote_transport: Passes
- tool_discovery: Passes
- auth_connect: Passes
- safe_write_review: Degraded
Recommended for
Evidence
Current trust snapshot
trustsnap_d770ab12af7c44d8Canonical machine links
Evidence confidence
Latest validation evidence
Failures
openid_configurationClient error '404 Not Found' for url 'https://realestatecapitale.ma/.well-known/openid-configuration' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404transport_compliance_probeIssues: missing session id, missing protocol header, bad protocol not rejected (bad protocol=200).
Checks
| Check | Status | Latency | Evidence |
|---|---|---|---|
action_safety_probe |
Warning | n/a | No write-action risk evidence recorded. |
advanced_capabilities_probe |
Missing | n/a | No advanced MCP capability signals detected. |
connector_publishability_probe |
Warning | n/a | Publishability blockers: transport compliance. |
connector_replay_probe |
OK | n/a | Backward compatible with no breaking tool-surface changes. |
determinism_probe |
OK | 275.0 ms | Check completed |
initialize |
OK | 736.8 ms | Protocol 2025-03-26 |
interactive_flow_probe |
OK | n/a | Check completed |
oauth_authorization_server |
OK | 27.0 ms | 1 authorization server(s) |
oauth_protected_resource |
OK | 26.9 ms | 1 authorization server(s) |
official_registry_probe |
Missing | n/a | Check completed |
openid_configuration |
Error | 26.0 ms | Client error '404 Not Found' for url 'https://realestatecapitale.ma/.well-known/openid-configuration' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404 |
probe_noise_resilience |
OK | 257.5 ms | Fetched https://realestatecapitale.ma/robots.txt |
prompt_get |
Missing | n/a | not advertised |
prompts_list |
Missing | 209.1 ms | not supported |
protocol_version_probe |
Warning | n/a | Claims 2025-03-26; 2 release(s) behind 2025-11-25. |
provenance_divergence_probe |
Not_Assessed | n/a | Check completed |
request_association_probe |
Missing | n/a | No request-association capabilities were advertised. |
resource_read |
Missing | n/a | not advertised |
resources_list |
Missing | 202.4 ms | not supported |
schema_divergence_probe |
Missing | n/a | no server card tools |
server_card |
OK | 66.1 ms | $schema, description, name, remotes |
session_resume_probe |
Warning | n/a | no session id |
step_up_auth_probe |
OK | n/a | Scopes=api.read, api.write. |
tool_snapshot_probe |
OK | n/a | Check completed |
tools_list |
OK | 501.8 ms | 17 tool(s) exposed |
transport_compliance_probe |
Error | 295.0 ms | Issues: missing session id, missing protocol header, bad protocol not rejected (bad protocol=200). |
utility_coverage_probe |
Missing | 206.6 ms | No completions evidence; no pagination evidence; tasks missing. |
Raw evidence view
Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": true,
"confirmation_signals": [],
"reason": null,
"safeguard_count": 0,
"summary": {
"annotation_conflict_tools": 0,
"bulk_access_tools": 0,
"capability_distribution": {
"read": 15,
"undetermined": 1,
"write": 1
},
"declared_non_read_only_tools": 0,
"destructive_tools": 0,
"egress_tools": 0,
"exec_tools": 0,
"has_mutating_capability": true,
"has_non_read_capability": true,
"high_risk_tools": 0,
"risk_distribution": {
"critical": 0,
"high": 0,
"low": 16,
"medium": 1
},
"secret_tools": 0,
"tool_count": 17
}
},
"latency_ms": null,
"status": "warning"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": false,
"elicitation": false,
"prompts": false,
"resource_links": false,
"resources": false,
"roots": false,
"sampling": false,
"structured_outputs": false
},
"enabled": [],
"enabled_count": 0,
"initialize_capability_keys": [
"tools"
]
},
"latency_ms": null,
"status": "missing"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"transport_compliance"
],
"criteria": {
"action_safety": true,
"auth_flow": true,
"connector_replay": true,
"initialize": true,
"protocol_version": true,
"remote_transport": true,
"request_association": true,
"server_card": true,
"session_resume": true,
"step_up_auth": true,
"tool_surface": true,
"tools_list": true,
"transport_compliance": false
},
"high_risk_tools": 0,
"tool_count": 17,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"connector_replay_probe": {
"details": {
"added_tools": [],
"additive_output_changes": [],
"backward_compatible": true,
"output_breaks": [],
"removed_tools": [],
"required_arg_breaks": [],
"would_break_after_refresh": false
},
"latency_ms": null,
"status": "ok"
},
"determinism_probe": {
"details": {
"attempts": 2,
"baseline_signature": "f00dbdf400304ae24e8697ad432ace65447f198e2bd66cbd81677d2f7403ca4d",
"errors": [],
"matches": 2,
"stable_ratio": 1.0,
"successful": 2
},
"latency_ms": 274.97,
"status": "ok"
},
"initialize": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"id": 1,
"jsonrpc": "2.0",
"result": {
"capabilities": {
"tools": {}
},
"protocolVersion": "2025-03-26",
"serverInfo": {
"name": "realestatecapitale-mcp",
"version": "1.0.0"
}
}
},
"url": "https://realestatecapitale.ma/mcp"
},
"latency_ms": 736.76,
"status": "ok"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": true,
"prompt_available": false,
"risk_hits": [],
"safe_hits": []
},
"latency_ms": null,
"status": "ok"
},
"oauth_authorization_server": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"agent_auth": {
"anonymous": {
"claim_uri": "https://realestatecapitale.ma/agent/identity/claim",
"credential_types_supported": [
"access_token"
]
},
"claim_endpoint": "https://realestatecapitale.ma/agent/identity/claim",
"events_endpoint": "https://realestatecapitale.ma/agent/event/notify",
"identity_endpoint": "https://realestatecapitale.ma/agent/identity",
"identity_types_supported": [
"anonymous",
"service_auth"
],
"service_auth": {
"claim_uri": "https://realestatecapitale.ma/agent/identity/claim",
"credential_types_supported": [
"access_token"
]
},
"skill": "https://realestatecapitale.ma/auth.md"
},
"authorization_servers": [
"https://realestatecapitale.ma/"
],
"bearer_methods_supported": [
"header"
],
"grant_types_supported": [
"urn:ietf:params:oauth:grant-type:jwt-bearer",
"urn:workos:agent-auth:grant-type:claim"
],
"issuer": "https://realestatecapitale.ma",
"resource": "https://api.realestatecapitale.ma/",
"revocation_endpoint": "https://realestatecapitale.ma/oauth2/revoke",
"scopes_supported": [
"api.read",
"api.write"
],
"token_endpoint": "https://realestatecapitale.ma/oauth2/token"
},
"url": "https://realestatecapitale.ma/.well-known/oauth-authorization-server"
},
"latency_ms": 26.98,
"status": "ok"
},
"oauth_protected_resource": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"authorization_servers": [
"https://realestatecapitale.ma/"
],
"bearer_methods_supported": [
"header"
],
"resource": "https://realestatecapitale.ma/",
"resource_logo_uri": "https://realestatecapitale.ma/logo.png",
"resource_name": "Real Estate Capitale",
"scopes_supported": [
"api.read",
"api.write"
]
},
"url": "https://realestatecapitale.ma/.well-known/oauth-protected-resource"
},
"latency_ms": 26.91,
"status": "ok"
},
"official_registry_probe": {
"details": {
"direct_match": false,
"official_peer_count": 0,
"registry_source": "github_topic_registry"
},
"latency_ms": null,
"status": "missing"
},
"openid_configuration": {
"details": {
"error": "Client error '404 Not Found' for url 'https://realestatecapitale.ma/.well-known/openid-configuration'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://realestatecapitale.ma/.well-known/openid-configuration"
},
"latency_ms": 26.0,
"status": "error"
},
"probe_noise_resilience": {
"details": {
"headers": {
"content-type": "text/plain; charset=utf-8"
},
"http_status": 200,
"url": "https://realestatecapitale.ma/robots.txt",
"validation_disallowed": false
},
"latency_ms": 257.54,
"status": "ok"
},
"prompt_get": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"prompts_list": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "Method not found: prompts/list"
},
"id": 3,
"jsonrpc": "2.0"
},
"reason": "not_supported",
"url": "https://realestatecapitale.ma/mcp"
},
"latency_ms": 209.08,
"status": "missing"
},
"protocol_version_probe": {
"details": {
"claimed_version": "2025-03-26",
"lag_days": 244,
"latest_known_version": "2025-11-25",
"releases_behind": 2,
"validator_protocol_version": "2025-03-26"
},
"latency_ms": null,
"status": "warning"
},
"provenance_divergence_probe": {
"details": {
"comparable_field_count": 0,
"compared_fields": [
"title",
"version",
"homepage",
"repository"
],
"direct_official_match": false,
"drift_fields": [],
"metadata_document_count": 2,
"readable_sources": [
"server_card"
],
"registry_homepage": null,
"registry_repository": null,
"registry_title": null,
"registry_version": null,
"server_card_homepage": null,
"server_card_repository": null,
"server_card_title": "Real Estate Capitale MCP",
"server_card_version": "1.0.0"
},
"latency_ms": null,
"status": "not_assessed"
},
"request_association_probe": {
"details": {
"reason": "no_request_association_capabilities_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resource_read": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resources_list": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "Method not found: resources/list"
},
"id": 5,
"jsonrpc": "2.0"
},
"reason": "not_supported",
"url": "https://realestatecapitale.ma/mcp"
},
"latency_ms": 202.36,
"status": "missing"
},
"schema_divergence_probe": {
"details": {
"card_server_name": null,
"compared_dimensions": [
"server_name",
"server_version",
"declared_vs_observed_auth",
"tool_membership",
"parameter_names",
"required_parameters",
"parameter_types",
"output_schema_presence"
],
"compared_tool_count": 0,
"live_server_name": "realestatecapitale-mcp",
"reason": "no_server_card_tools",
"server_name_mismatch": false
},
"latency_ms": null,
"status": "missing"
},
"server_card": {
"details": {
"headers": {
"content-type": "application/mcp-server-card+json"
},
"http_status": 200,
"payload": {
"$schema": "https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json",
"description": "MCP server for real estate search, property valuation, and agent services in Rabat, Sal\u00e9, and T\u00e9mara.",
"name": "ma.realestatecapitale/mcp",
"remotes": [
{
"supportedProtocolVersions": [
"2025-03-26"
],
"type": "streamable-http",
"url": "https://realestatecapitale.ma/mcp"
}
],
"title": "Real Estate Capitale MCP",
"version": "1.0.0",
"websiteUrl": "https://realestatecapitale.ma"
},
"url": "https://realestatecapitale.ma/.well-known/mcp/server-card.json"
},
"latency_ms": 66.06,
"status": "ok"
},
"session_resume_probe": {
"details": {
"protocol_version": "2025-03-26",
"reason": "no_session_id",
"resume_expected": true,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"step_up_auth_probe": {
"details": {
"auth_required_checks": [],
"broad_scopes": [],
"challenge_headers": [],
"minimal_scope_documented": true,
"oauth_present": true,
"scope_specificity_ratio": 0.6667,
"step_up_signals": [],
"supported_scopes": [
"api.read",
"api.write"
]
},
"latency_ms": null,
"status": "ok"
},
"tool_snapshot_probe": {
"details": {
"added": [],
"changed_outputs": [],
"current_tool_count": 17,
"previous_tool_count": 17,
"removed": [],
"similarity": 1.0
},
"latency_ms": null,
"status": "ok"
},
"tools_list": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"id": 2,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"description": "Rechercher des biens immobiliers avec filtres (transaction, location, budget, surface, pieces, type de bien, mot-cle)",
"inputSchema": {
"properties": {
"location": {
"description": "Quartier ou ville (ex: Agdal, Hay Riad, Sal\u00e9)",
"type": "string"
},
"page": {
"description": "Page (defaut: 1)",
"type": "number"
},
"pageSize": {
"description": "Resultats par page (defaut: 12, max: 60)",
"type": "number"
},
"priceMax": {
"description": "Prix maximum en MAD",
"type": "number"
},
"priceMin": {
"description": "Prix minimum en MAD",
"type": "number"
},
"propertyType": {
"description": "Type de bien",
"enum": [
"Appartement",
"Maison",
"Villa",
"Studio",
"Terrain",
"Bureau",
"Commerce",
"Riad"
],
"type": "string"
},
"q": {
"description": "Mot-cle dans le titre ou la description",
"type": "string"
},
"roomsMax": {
"description": "Nombre maximum de pieces",
"type": "number"
},
"roomsMin": {
"description": "Nombre minimum de pieces",
"type": "number"
},
"sort": {
"description": "Tri",
"enum": [
"price_asc",
"price_desc",
"date_desc",
"date_asc"
],
"type": "string"
},
"surfaceMax": {
"description": "Surface maximum en m\u00b2",
"type": "number"
},
"surfaceMin": {
"description": "Surface minimum en m\u00b2",
"type": "number"
},
"transaction": {
"description": "Type de transaction",
"enum": [
"Vente",
"Location"
],
"type": "string"
}
},
"type": "object"
},
"name": "search_listings"
},
{
"description": "Obtenir le d\u00e9tail complet d'un bien immobilier par son ID",
"inputSchema": {
"properties": {
"id": {
"description": "ID du bien immobilier",
"type": "number"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "get_listing"
},
{
"description": "Estimer la valeur d'un bien immobilier (prix au m\u00b2, fourchette basse/haute)",
"inputSchema": {
"properties": {
"etage": {
"description": "Type d'etage (optionnel)",
"enum": [
"rdc",
"bas",
"milieu",
"haut",
"dernier"
],
"type": "string"
},
"etat": {
"description": "Etat du bien (optionnel)",
"enum": [
"renover",
"bon",
"neuf"
],
"type": "string"
},
"pieces": {
"description": "Nombre de pieces (optionnel)",
"type": "number"
},
"quartier": {
"description": "Quartier (ex: Agdal, Hay Riad)",
"type": "string"
},
"standing": {
"description": "Standing (optionnel)",
"enum": [
"economique",
"standard",
"standing",
"luxe"
],
"type": "string"
},
"surface": {
"description": "Surface en m\u00b2",
"type": "number"
},
"type": {
"description": "Type de transaction",
"enum": [
"vente",
"location"
],
"type": "string"
},
"ville": {
"description": "Ville (optionnel, defaut: Rabat)",
"type": "string"
}
},
"required": [
"type",
"quartier",
"surface"
],
"type": "object"
},
"name": "estimate_property"
},
{
"description": "Obtenir les tendances du marche immobilier par quartier (variation de prix sur N mois)",
"inputSchema": {
"properties": {
"months": {
"description": "Periode en mois (3-36, defaut: 12)",
"type": "number"
},
"status": {
"description": "Filtrer par type (defaut: all)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_market_trends"
},
{
"description": "Obtenir les statistiques agregees par quartier (prix m\u00b2 moyen, nombre d'annonces)",
"inputSchema": {
"properties": {
"transaction": {
"description": "Filtrer par transaction",
"enum": [
"Vente",
"Location"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_quartier_stats"
},
{
"description": "Lister tous les quartiers disponibles avec leur ville",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_quartiers"
},
{
"description": "Lister toutes les villes disponibles",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_villes"
},
{
"description": "Creer un lead (contact client) pour prise de rendez-vous ou demande d'information",
"inputSchema": {
"properties": {
"listingId": {
"description": "ID du bien concerne (optionnel)",
"type": "number"
},
"name": {
"description": "Nom du contact (2-120 caracteres)",
"type": "string"
},
"phone": {
"description": "Telephone (8-24 caracteres, ex: 0612345678)",
"type": "string"
},
"source": {
"description": "Source du lead (defaut: mcp)",
"enum": [
"website",
"whatsapp_click",
"facebook",
"phone",
"other",
"mcp"
],
"type": "string"
}
},
"required": [
"name",
"phone"
],
"type": "object"
},
"name": "create_lead"
},
{
"description": "Trouver les annonces les plus similaires a un bien donne (pour evaluation ou estimation)",
"inputSchema": {
"properties": {
"listingId": {
"description": "ID du bien de reference",
"type": "number"
}
},
"required": [
"listingId"
],
"type": "object"
},
"name": "get_comparables"
},
{
"description": "Identifier les biens sous-evalues (opportunites d'investissement avec discount)",
"inputSchema": {
"properties": {
"minDiscountPct": {
"description": "Discount minimum en pourcentage (10-70, defaut: 15)",
"type": "number"
},
"minSample": {
"description": "Echantillon minimum par segment (12-300, defaut: 20)",
"type": "number"
},
"page": {
"description": "Page (defaut: 1)",
"type": "number"
},
"pageSize": {
"description": "Resultats par page (defaut: 20, max: 100)",
"type": "number"
},
"status": {
"description": "Filtrer par type (defaut: vente)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_investor_alerts"
},
{
"description": "Analyser les prix au m\u00b2 par quartier avec tendances et distribution",
"inputSchema": {
"properties": {
"location": {
"description": "Quartier ou ville specifique (optionnel)",
"type": "string"
},
"page": {
"description": "Page (defaut: 1)",
"type": "number"
},
"pageSize": {
"description": "Resultats par page (defaut: 20, max: 100)",
"type": "number"
},
"priceMax": {
"description": "Prix maximum (optionnel)",
"type": "number"
},
"priceMin": {
"description": "Prix minimum (optionnel)",
"type": "number"
},
"propertyType": {
"description": "Type de bien (optionnel, ex: Appartement, Villa)",
"type": "string"
},
"transaction": {
"description": "Type de transaction (defaut: Vente)",
"enum": [
"Vente",
"Location",
"Achat"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_price_analytics"
},
{
"description": "Obtenir le rendement locatif brut par quartier (comparatif achat vs location)",
"inputSchema": {
"properties": {
"quartier": {
"description": "Quartier specifique (optionnel, tous si omis)",
"type": "string"
}
},
"type": "object"
},
"name": "get_rental_yield"
},
{
"description": "Previsions de prix a 90 jours par quartier (regression lineaire)",
"inputSchema": {
"properties": {
"months": {
"description": "Periode d'analyse en mois (3-36, defaut: 12)",
"type": "number"
},
"quartier": {
"description": "Quartier specifique (optionnel, tous si omis)",
"type": "string"
},
"status": {
"description": "Filtrer par type (defaut: all)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_market_predictions"
},
{
"description": "Comparer deux quartiers cote-a-cote (prix m\u00b2, nombre d'annonces, volatilite)",
"inputSchema": {
"properties": {
"q1": {
"description": "Premier quartier (ex: Agdal)",
"type": "string"
},
"q2": {
"description": "Second quartier (ex: Hay Riad)",
"type": "string"
},
"status": {
"description": "Filtrer par type (defaut: all)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"required": [
"q1",
"q2"
],
"type": "object"
},
"name": "get_quartier_comparison"
},
{
"description": "Detecter les annonces avec des prix anormaux (IQR outliers, scores de severite)",
"inputSchema": {
"properties": {
"iqrMultiplier": {
"description": "Multiplicateur IQR (1.5-3.0, defaut: 2.0)",
"type": "number"
},
"minDeviationPct": {
"description": "Deviation minimum (10-90%, defaut: 30)",
"type": "number"
},
"minSample": {
"description": "Echantillon minimum (12-300, defaut: 20)",
"type": "number"
},
"page": {
"description": "Page (defaut: 1)",
"type": "number"
},
"pageSize": {
"description": "Resultats par page (defaut: 20, max: 100)",
"type": "number"
},
"status": {
"description": "Filtrer par type (defaut: all)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_suspicious_listings"
},
{
"description": "Indice de liquidite du marche par quartier (taux de rotation, stock, delai de vente)",
"inputSchema": {
"properties": {
"quartier": {
"description": "Quartier specifique (optionnel, tous si omis)",
"type": "string"
},
"status": {
"description": "Filtrer par type (defaut: all)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_liquidity"
},
{
"description": "Classement des agences immobilieres par volume d'annonces",
"inputSchema": {
"properties": {
"limit": {
"description": "Nombre d'agences (5-100, defaut: 20)",
"type": "number"
}
},
"type": "object"
},
"name": "get_agency_leaderboard"
}
]
}
},
"url": "https://realestatecapitale.ma/mcp"
},
"latency_ms": 501.81,
"status": "ok"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json; charset=utf-8",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"description": "Rechercher des biens immobiliers avec filtres (transaction, location, budget, surface, pieces, type de bien, mot-cle)",
"inputSchema": {
"properties": {
"location": {
"description": "Quartier ou ville (ex: Agdal, Hay Riad, Sal\u00e9)",
"type": "string"
},
"page": {
"description": "Page (defaut: 1)",
"type": "number"
},
"pageSize": {
"description": "Resultats par page (defaut: 12, max: 60)",
"type": "number"
},
"priceMax": {
"description": "Prix maximum en MAD",
"type": "number"
},
"priceMin": {
"description": "Prix minimum en MAD",
"type": "number"
},
"propertyType": {
"description": "Type de bien",
"enum": [
"Appartement",
"Maison",
"Villa",
"Studio",
"Terrain",
"Bureau",
"Commerce",
"Riad"
],
"type": "string"
},
"q": {
"description": "Mot-cle dans le titre ou la description",
"type": "string"
},
"roomsMax": {
"description": "Nombre maximum de pieces",
"type": "number"
},
"roomsMin": {
"description": "Nombre minimum de pieces",
"type": "number"
},
"sort": {
"description": "Tri",
"enum": [
"price_asc",
"price_desc",
"date_desc",
"date_asc"
],
"type": "string"
},
"surfaceMax": {
"description": "Surface maximum en m\u00b2",
"type": "number"
},
"surfaceMin": {
"description": "Surface minimum en m\u00b2",
"type": "number"
},
"transaction": {
"description": "Type de transaction",
"enum": [
"Vente",
"Location"
],
"type": "string"
}
},
"type": "object"
},
"name": "search_listings"
},
{
"description": "Obtenir le d\u00e9tail complet d'un bien immobilier par son ID",
"inputSchema": {
"properties": {
"id": {
"description": "ID du bien immobilier",
"type": "number"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "get_listing"
},
{
"description": "Estimer la valeur d'un bien immobilier (prix au m\u00b2, fourchette basse/haute)",
"inputSchema": {
"properties": {
"etage": {
"description": "Type d'etage (optionnel)",
"enum": [
"rdc",
"bas",
"milieu",
"haut",
"dernier"
],
"type": "string"
},
"etat": {
"description": "Etat du bien (optionnel)",
"enum": [
"renover",
"bon",
"neuf"
],
"type": "string"
},
"pieces": {
"description": "Nombre de pieces (optionnel)",
"type": "number"
},
"quartier": {
"description": "Quartier (ex: Agdal, Hay Riad)",
"type": "string"
},
"standing": {
"description": "Standing (optionnel)",
"enum": [
"economique",
"standard",
"standing",
"luxe"
],
"type": "string"
},
"surface": {
"description": "Surface en m\u00b2",
"type": "number"
},
"type": {
"description": "Type de transaction",
"enum": [
"vente",
"location"
],
"type": "string"
},
"ville": {
"description": "Ville (optionnel, defaut: Rabat)",
"type": "string"
}
},
"required": [
"type",
"quartier",
"surface"
],
"type": "object"
},
"name": "estimate_property"
},
{
"description": "Obtenir les tendances du marche immobilier par quartier (variation de prix sur N mois)",
"inputSchema": {
"properties": {
"months": {
"description": "Periode en mois (3-36, defaut: 12)",
"type": "number"
},
"status": {
"description": "Filtrer par type (defaut: all)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_market_trends"
},
{
"description": "Obtenir les statistiques agregees par quartier (prix m\u00b2 moyen, nombre d'annonces)",
"inputSchema": {
"properties": {
"transaction": {
"description": "Filtrer par transaction",
"enum": [
"Vente",
"Location"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_quartier_stats"
},
{
"description": "Lister tous les quartiers disponibles avec leur ville",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_quartiers"
},
{
"description": "Lister toutes les villes disponibles",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_villes"
},
{
"description": "Creer un lead (contact client) pour prise de rendez-vous ou demande d'information",
"inputSchema": {
"properties": {
"listingId": {
"description": "ID du bien concerne (optionnel)",
"type": "number"
},
"name": {
"description": "Nom du contact (2-120 caracteres)",
"type": "string"
},
"phone": {
"description": "Telephone (8-24 caracteres, ex: 0612345678)",
"type": "string"
},
"source": {
"description": "Source du lead (defaut: mcp)",
"enum": [
"website",
"whatsapp_click",
"facebook",
"phone",
"other",
"mcp"
],
"type": "string"
}
},
"required": [
"name",
"phone"
],
"type": "object"
},
"name": "create_lead"
},
{
"description": "Trouver les annonces les plus similaires a un bien donne (pour evaluation ou estimation)",
"inputSchema": {
"properties": {
"listingId": {
"description": "ID du bien de reference",
"type": "number"
}
},
"required": [
"listingId"
],
"type": "object"
},
"name": "get_comparables"
},
{
"description": "Identifier les biens sous-evalues (opportunites d'investissement avec discount)",
"inputSchema": {
"properties": {
"minDiscountPct": {
"description": "Discount minimum en pourcentage (10-70, defaut: 15)",
"type": "number"
},
"minSample": {
"description": "Echantillon minimum par segment (12-300, defaut: 20)",
"type": "number"
},
"page": {
"description": "Page (defaut: 1)",
"type": "number"
},
"pageSize": {
"description": "Resultats par page (defaut: 20, max: 100)",
"type": "number"
},
"status": {
"description": "Filtrer par type (defaut: vente)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_investor_alerts"
},
{
"description": "Analyser les prix au m\u00b2 par quartier avec tendances et distribution",
"inputSchema": {
"properties": {
"location": {
"description": "Quartier ou ville specifique (optionnel)",
"type": "string"
},
"page": {
"description": "Page (defaut: 1)",
"type": "number"
},
"pageSize": {
"description": "Resultats par page (defaut: 20, max: 100)",
"type": "number"
},
"priceMax": {
"description": "Prix maximum (optionnel)",
"type": "number"
},
"priceMin": {
"description": "Prix minimum (optionnel)",
"type": "number"
},
"propertyType": {
"description": "Type de bien (optionnel, ex: Appartement, Villa)",
"type": "string"
},
"transaction": {
"description": "Type de transaction (defaut: Vente)",
"enum": [
"Vente",
"Location",
"Achat"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_price_analytics"
},
{
"description": "Obtenir le rendement locatif brut par quartier (comparatif achat vs location)",
"inputSchema": {
"properties": {
"quartier": {
"description": "Quartier specifique (optionnel, tous si omis)",
"type": "string"
}
},
"type": "object"
},
"name": "get_rental_yield"
},
{
"description": "Previsions de prix a 90 jours par quartier (regression lineaire)",
"inputSchema": {
"properties": {
"months": {
"description": "Periode d'analyse en mois (3-36, defaut: 12)",
"type": "number"
},
"quartier": {
"description": "Quartier specifique (optionnel, tous si omis)",
"type": "string"
},
"status": {
"description": "Filtrer par type (defaut: all)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_market_predictions"
},
{
"description": "Comparer deux quartiers cote-a-cote (prix m\u00b2, nombre d'annonces, volatilite)",
"inputSchema": {
"properties": {
"q1": {
"description": "Premier quartier (ex: Agdal)",
"type": "string"
},
"q2": {
"description": "Second quartier (ex: Hay Riad)",
"type": "string"
},
"status": {
"description": "Filtrer par type (defaut: all)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"required": [
"q1",
"q2"
],
"type": "object"
},
"name": "get_quartier_comparison"
},
{
"description": "Detecter les annonces avec des prix anormaux (IQR outliers, scores de severite)",
"inputSchema": {
"properties": {
"iqrMultiplier": {
"description": "Multiplicateur IQR (1.5-3.0, defaut: 2.0)",
"type": "number"
},
"minDeviationPct": {
"description": "Deviation minimum (10-90%, defaut: 30)",
"type": "number"
},
"minSample": {
"description": "Echantillon minimum (12-300, defaut: 20)",
"type": "number"
},
"page": {
"description": "Page (defaut: 1)",
"type": "number"
},
"pageSize": {
"description": "Resultats par page (defaut: 20, max: 100)",
"type": "number"
},
"status": {
"description": "Filtrer par type (defaut: all)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_suspicious_listings"
},
{
"description": "Indice de liquidite du marche par quartier (taux de rotation, stock, delai de vente)",
"inputSchema": {
"properties": {
"quartier": {
"description": "Quartier specifique (optionnel, tous si omis)",
"type": "string"
},
"status": {
"description": "Filtrer par type (defaut: all)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_liquidity"
},
{
"description": "Classement des agences immobilieres par volume d'annonces",
"inputSchema": {
"properties": {
"limit": {
"description": "Nombre d'agences (5-100, defaut: 20)",
"type": "number"
}
},
"type": "object"
},
"name": "get_agency_leaderboard"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2025-03-26",
"session_id_present": false,
"transport": "streamable-http"
},
"latency_ms": 294.98,
"status": "error"
},
"utility_coverage_probe": {
"details": {
"completions": {
"advertised": false,
"live_probe": "not_executed",
"sample_target": null
},
"initialize_capability_keys": [
"tools"
],
"pagination": {
"metadata_signal": false,
"next_cursor_methods": [],
"supported": false
},
"tasks": {
"advertised": false,
"http_status": 200,
"probe_status": "missing"
}
},
"latency_ms": 206.57,
"status": "missing"
}
},
"failures": {
"openid_configuration": {
"error": "Client error '404 Not Found' for url 'https://realestatecapitale.ma/.well-known/openid-configuration'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://realestatecapitale.ma/.well-known/openid-configuration"
},
"transport_compliance_probe": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json; charset=utf-8",
"strict-transport-security": "max-age=31536000; includeSubDomains; preload"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"description": "Rechercher des biens immobiliers avec filtres (transaction, location, budget, surface, pieces, type de bien, mot-cle)",
"inputSchema": {
"properties": {
"location": {
"description": "Quartier ou ville (ex: Agdal, Hay Riad, Sal\u00e9)",
"type": "string"
},
"page": {
"description": "Page (defaut: 1)",
"type": "number"
},
"pageSize": {
"description": "Resultats par page (defaut: 12, max: 60)",
"type": "number"
},
"priceMax": {
"description": "Prix maximum en MAD",
"type": "number"
},
"priceMin": {
"description": "Prix minimum en MAD",
"type": "number"
},
"propertyType": {
"description": "Type de bien",
"enum": [
"Appartement",
"Maison",
"Villa",
"Studio",
"Terrain",
"Bureau",
"Commerce",
"Riad"
],
"type": "string"
},
"q": {
"description": "Mot-cle dans le titre ou la description",
"type": "string"
},
"roomsMax": {
"description": "Nombre maximum de pieces",
"type": "number"
},
"roomsMin": {
"description": "Nombre minimum de pieces",
"type": "number"
},
"sort": {
"description": "Tri",
"enum": [
"price_asc",
"price_desc",
"date_desc",
"date_asc"
],
"type": "string"
},
"surfaceMax": {
"description": "Surface maximum en m\u00b2",
"type": "number"
},
"surfaceMin": {
"description": "Surface minimum en m\u00b2",
"type": "number"
},
"transaction": {
"description": "Type de transaction",
"enum": [
"Vente",
"Location"
],
"type": "string"
}
},
"type": "object"
},
"name": "search_listings"
},
{
"description": "Obtenir le d\u00e9tail complet d'un bien immobilier par son ID",
"inputSchema": {
"properties": {
"id": {
"description": "ID du bien immobilier",
"type": "number"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "get_listing"
},
{
"description": "Estimer la valeur d'un bien immobilier (prix au m\u00b2, fourchette basse/haute)",
"inputSchema": {
"properties": {
"etage": {
"description": "Type d'etage (optionnel)",
"enum": [
"rdc",
"bas",
"milieu",
"haut",
"dernier"
],
"type": "string"
},
"etat": {
"description": "Etat du bien (optionnel)",
"enum": [
"renover",
"bon",
"neuf"
],
"type": "string"
},
"pieces": {
"description": "Nombre de pieces (optionnel)",
"type": "number"
},
"quartier": {
"description": "Quartier (ex: Agdal, Hay Riad)",
"type": "string"
},
"standing": {
"description": "Standing (optionnel)",
"enum": [
"economique",
"standard",
"standing",
"luxe"
],
"type": "string"
},
"surface": {
"description": "Surface en m\u00b2",
"type": "number"
},
"type": {
"description": "Type de transaction",
"enum": [
"vente",
"location"
],
"type": "string"
},
"ville": {
"description": "Ville (optionnel, defaut: Rabat)",
"type": "string"
}
},
"required": [
"type",
"quartier",
"surface"
],
"type": "object"
},
"name": "estimate_property"
},
{
"description": "Obtenir les tendances du marche immobilier par quartier (variation de prix sur N mois)",
"inputSchema": {
"properties": {
"months": {
"description": "Periode en mois (3-36, defaut: 12)",
"type": "number"
},
"status": {
"description": "Filtrer par type (defaut: all)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_market_trends"
},
{
"description": "Obtenir les statistiques agregees par quartier (prix m\u00b2 moyen, nombre d'annonces)",
"inputSchema": {
"properties": {
"transaction": {
"description": "Filtrer par transaction",
"enum": [
"Vente",
"Location"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_quartier_stats"
},
{
"description": "Lister tous les quartiers disponibles avec leur ville",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_quartiers"
},
{
"description": "Lister toutes les villes disponibles",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_villes"
},
{
"description": "Creer un lead (contact client) pour prise de rendez-vous ou demande d'information",
"inputSchema": {
"properties": {
"listingId": {
"description": "ID du bien concerne (optionnel)",
"type": "number"
},
"name": {
"description": "Nom du contact (2-120 caracteres)",
"type": "string"
},
"phone": {
"description": "Telephone (8-24 caracteres, ex: 0612345678)",
"type": "string"
},
"source": {
"description": "Source du lead (defaut: mcp)",
"enum": [
"website",
"whatsapp_click",
"facebook",
"phone",
"other",
"mcp"
],
"type": "string"
}
},
"required": [
"name",
"phone"
],
"type": "object"
},
"name": "create_lead"
},
{
"description": "Trouver les annonces les plus similaires a un bien donne (pour evaluation ou estimation)",
"inputSchema": {
"properties": {
"listingId": {
"description": "ID du bien de reference",
"type": "number"
}
},
"required": [
"listingId"
],
"type": "object"
},
"name": "get_comparables"
},
{
"description": "Identifier les biens sous-evalues (opportunites d'investissement avec discount)",
"inputSchema": {
"properties": {
"minDiscountPct": {
"description": "Discount minimum en pourcentage (10-70, defaut: 15)",
"type": "number"
},
"minSample": {
"description": "Echantillon minimum par segment (12-300, defaut: 20)",
"type": "number"
},
"page": {
"description": "Page (defaut: 1)",
"type": "number"
},
"pageSize": {
"description": "Resultats par page (defaut: 20, max: 100)",
"type": "number"
},
"status": {
"description": "Filtrer par type (defaut: vente)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_investor_alerts"
},
{
"description": "Analyser les prix au m\u00b2 par quartier avec tendances et distribution",
"inputSchema": {
"properties": {
"location": {
"description": "Quartier ou ville specifique (optionnel)",
"type": "string"
},
"page": {
"description": "Page (defaut: 1)",
"type": "number"
},
"pageSize": {
"description": "Resultats par page (defaut: 20, max: 100)",
"type": "number"
},
"priceMax": {
"description": "Prix maximum (optionnel)",
"type": "number"
},
"priceMin": {
"description": "Prix minimum (optionnel)",
"type": "number"
},
"propertyType": {
"description": "Type de bien (optionnel, ex: Appartement, Villa)",
"type": "string"
},
"transaction": {
"description": "Type de transaction (defaut: Vente)",
"enum": [
"Vente",
"Location",
"Achat"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_price_analytics"
},
{
"description": "Obtenir le rendement locatif brut par quartier (comparatif achat vs location)",
"inputSchema": {
"properties": {
"quartier": {
"description": "Quartier specifique (optionnel, tous si omis)",
"type": "string"
}
},
"type": "object"
},
"name": "get_rental_yield"
},
{
"description": "Previsions de prix a 90 jours par quartier (regression lineaire)",
"inputSchema": {
"properties": {
"months": {
"description": "Periode d'analyse en mois (3-36, defaut: 12)",
"type": "number"
},
"quartier": {
"description": "Quartier specifique (optionnel, tous si omis)",
"type": "string"
},
"status": {
"description": "Filtrer par type (defaut: all)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_market_predictions"
},
{
"description": "Comparer deux quartiers cote-a-cote (prix m\u00b2, nombre d'annonces, volatilite)",
"inputSchema": {
"properties": {
"q1": {
"description": "Premier quartier (ex: Agdal)",
"type": "string"
},
"q2": {
"description": "Second quartier (ex: Hay Riad)",
"type": "string"
},
"status": {
"description": "Filtrer par type (defaut: all)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"required": [
"q1",
"q2"
],
"type": "object"
},
"name": "get_quartier_comparison"
},
{
"description": "Detecter les annonces avec des prix anormaux (IQR outliers, scores de severite)",
"inputSchema": {
"properties": {
"iqrMultiplier": {
"description": "Multiplicateur IQR (1.5-3.0, defaut: 2.0)",
"type": "number"
},
"minDeviationPct": {
"description": "Deviation minimum (10-90%, defaut: 30)",
"type": "number"
},
"minSample": {
"description": "Echantillon minimum (12-300, defaut: 20)",
"type": "number"
},
"page": {
"description": "Page (defaut: 1)",
"type": "number"
},
"pageSize": {
"description": "Resultats par page (defaut: 20, max: 100)",
"type": "number"
},
"status": {
"description": "Filtrer par type (defaut: all)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_suspicious_listings"
},
{
"description": "Indice de liquidite du marche par quartier (taux de rotation, stock, delai de vente)",
"inputSchema": {
"properties": {
"quartier": {
"description": "Quartier specifique (optionnel, tous si omis)",
"type": "string"
},
"status": {
"description": "Filtrer par type (defaut: all)",
"enum": [
"vente",
"location",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_liquidity"
},
{
"description": "Classement des agences immobilieres par volume d'annonces",
"inputSchema": {
"properties": {
"limit": {
"description": "Nombre d'agences (5-100, defaut: 20)",
"type": "number"
}
},
"type": "object"
},
"name": "get_agency_leaderboard"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2025-03-26",
"session_id_present": false,
"transport": "streamable-http"
}
},
"remote_url": "https://realestatecapitale.ma/mcp",
"server_card_payload": null,
"server_identifier": "github-allamiwayl-27/rabatrealestate"
}
Known versions
- No versions recorded.
Validation history
| Timestamp | Status | Score | Latency | Tools |
|---|---|---|---|---|
| Aug 09, 2026 02:43:05 PM UTC | Healthy | 63.5 | 3208.0 ms | 17 |
| Aug 09, 2026 02:41:36 AM UTC | Healthy | 37.8 | 2926.8 ms | 0 |
| Aug 08, 2026 02:39:34 PM UTC | Healthy | 35.6 | 3160.9 ms | 0 |
Validation timeline
| Validated | Summary | Score | Protocol | Auth mode | Tools | High-risk tools | Changes |
|---|---|---|---|---|---|---|---|
| Aug 09, 2026 02:43:05 PM UTC | Healthy | 63.5 | 2025-03-26 | oauth_supported | 17 | 0 | auth_mode_changed tool_snapshot_changed |
| Aug 09, 2026 02:41:36 AM UTC | Healthy | 37.8 | unknown | unknown | 0 | 0 | none |
| Aug 08, 2026 02:39:34 PM UTC | Healthy | 35.6 | unknown | unknown | 0 | 0 | none |
Recent validation runs
| Started | Status | Summary | Latency | Checks |
|---|---|---|---|---|
| Aug 09, 2026 02:43:02 PM UTC | Completed | Healthy | 3208.0 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, schema_divergence_probe, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| Aug 09, 2026 02:41:33 AM UTC | Completed | Healthy | 2926.8 ms | |
| Aug 08, 2026 02:39:31 PM UTC | Completed | Healthy | 3160.9 ms | |
Public server reputation
Incident & change feed
| Timestamp | Event | Details |
|---|---|---|
| Aug 09, 2026 02:43:05 PM UTC | Latest validation: healthy | Score 63.5 with status healthy. |
| Aug 09, 2026 02:43:05 PM UTC | Score changed | Score delta +25.7 versus the previous run. |
| Aug 09, 2026 02:43:05 PM UTC | Tool snapshot changed | Added 17, removed 0, and changed 0 tool contracts. |
| Aug 09, 2026 02:43:05 PM UTC | Auth mode changed | Auth mode moved from unknown to oauth_supported. |
| Aug 09, 2026 02:41:36 AM UTC | Score changed | Score delta +2.2 versus the previous run. |
Capabilities
- OAuth:
- DCR/CIMD:
- Prompts:
- Homepage: https://realestatecapitale.ma/mcp
- Docs: https://realestatecapitale.ma/mcp
- Support: https://github.com/allamiwayl-27/rabatrealestate
- Icon: https://avatars.githubusercontent.com/u/241724733?v=4
- Remote endpoint: https://realestatecapitale.ma/mcp
- Server card: https://realestatecapitale.ma/.well-known/mcp/server-card.json
Benchmark tasks
| Benchmark task | Status | Evidence |
|---|---|---|
| Discover tools | Passes |
|
| Read-only fetch flow | Degraded |
|
| OAuth-required connect | Passes |
|
| Safe write flow with confirmation | Degraded |
|
Utility coverage
Transport compliance drilldown
Issues: missing_session_id, missing_protocol_header, bad_protocol_not_rejected
Request association
Connector replay
Required-argument replay breaks
| Tool | Added required args | Removed required args |
|---|---|---|
| No required-argument replay breaks detected. | ||
Output-schema replay breaks
| Tool | Removed properties | Added properties |
|---|---|---|
| No output-schema replay breaks detected. | ||
Tool snapshot diff & changelog
Required-argument changes
| Tool | Added required args | Removed required args |
|---|---|---|
| No required-argument changes detected. | ||
Output-schema drift
| Tool | Previous properties | Latest properties |
|---|---|---|
| No output-schema drift detected. | ||
Validation diff
Regressed checks: openid_configuration, provenance_divergence_probe, transport_compliance_probe
Improved checks: connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, probe_noise_resilience, server_card, step_up_auth_probe, tool_snapshot_probe, tools_list
Newly assessed dimensions: none
No longer assessed dimensions: none
| Component | Previous | Latest | Delta |
|---|---|---|---|
trust_confidence_score | 1.0 | 2.0 | 1.0 |
Registry & provenance divergence
| Field | Registry | Live server card |
|---|---|---|
| Title | n/a | Real Estate Capitale MCP |
| Version | n/a | 1.0.0 |
| Homepage | n/a | n/a |
Active alerts
- Tool snapshot changed (high)
Tools were added, removed, or materially changed between the latest two validations. - Auth mode changed (high)
Auth mode changed from unknown to oauth_supported.
Aliases & registry graph
| Identifier | Source | Canonical | Score |
|---|---|---|---|
github-allamiwayl-27/rabatrealestate |
github_topic_registry | yes | 63.5 |
allamiwayl-27/rabatrealestate |
glama_registry | no | n/a |
Alias consolidation
Source disagreements
| Field | What differs | Observed values |
|---|---|---|
| Registry source | Multiple registries or registry sync paths claim this same canonical server. | github_topic_registry glama_registry |
| Remote URL | Aliases currently point at different MCP endpoints, which can indicate mirrors, stale registry data, or a real endpoint split. | https://glama.ai/mcp/servers/k9vgmzshux https://realestatecapitale.ma/mcp |
| Homepage | Registry entries disagree on the primary homepage for this server. | https://glama.ai/mcp/servers/k9vgmzshux https://realestatecapitale.ma/mcp |
| Registry identifier | Different registry-specific identifiers resolve to the same canonical server record here. | github_topic_registry:allamiwayl-27/rabatrealestate glama_registry:k9vgmzshux |
Fix it
Why this score?
Algorithmic score breakdown
Actionable remediation
| Severity | Remediation | Why it matters | Recommended action |
|---|---|---|---|
| High | Add confirmation and dry-run semantics for risky actions | High-risk write, delete, exec, or egress tools should communicate safeguards clearly. | Add an explicit confirm/dry-run parameter or two-step confirmation flow to write, delete, exec, and egress-capable tools before they can make destructive changes.Playbook
|
| High | Align session and protocol behavior with Streamable HTTP expectations | Clients increasingly rely on MCP-Protocol-Version, session teardown, and expired-session semantics. | Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.Playbook
|
| High | Resolve conflicting endpoints across registry aliases | Registry aliases for this canonical server currently resolve to different live MCP endpoints (https://glama.ai/mcp/servers/k9vgmzshux, https://realestatecapitale.ma/mcp). An agent following one registry entry reaches a different server than one following another. | Confirm which endpoint is canonical, correct or retire the stale registry entry, and re-sync so every alias agrees on one remote_url.Playbook
|
| High | Respond to auth mode changed | Auth mode changed from unknown to oauth_supported. | Document the new auth posture and confirm protected-resource and challenge metadata still match reality. |
| High | Respond to tool snapshot changed | Tools were added, removed, or materially changed between the latest two validations. | Publish a first-class changelog for tool additions, removals, and breaking schema changes.Playbook
|
| Medium | Adopt a current MCP protocol revision | Older protocol revisions reduce compatibility with newer clients and registry programs. | Advertise a current MCP protocol revision (2025-06-18 or later) in both the initialize response and the MCP-Protocol-Version header.Playbook
|
| Medium | Close connector-publishing gaps | Connector catalogs care about protocol recency, session behavior, auth clarity, and tool-surface stability. | |
| Medium | Publish OpenID configuration | OIDC metadata improves token validation and client compatibility. | Expose /.well-known/openid-configuration with issuer, jwks_uri, and supported grants.Playbook
|
| Medium | Support resumable HTTP sessions cleanly | Modern MCP clients increasingly expect resumable session behavior on streamable HTTP transports. | Persist session state keyed by Mcp-Session-Id and honor Last-Event-ID on GET reconnects so clients can resume a dropped Streamable HTTP session.Playbook
|
| Low | Expose modern utility surfaces like completions, pagination, or tasks | Utility coverage improves interoperability with larger clients and long-lived agent workflows. | Expose completions, pagination, and task metadata where supported so larger clients can plan and resume work safely.Playbook
|
| Low | Publish newer MCP capability signals | Roots, sampling, elicitation, structured outputs, and related metadata improve client understanding and ranking. | Advertise only the advanced capabilities (roots, sampling, elicitation) you have actually implemented end to end in the initialize capabilities object.Playbook
|
| Low | Publish or reconcile the server in the official MCP registry | Official registry presence improves discovery confidence and cross-source consistency. |
Point loss breakdown
| Component | Current | Points missing |
|---|---|---|
| Utility Coverage | 0/4 | -4.0 |
| Transport Compliance | 0/4 | -4.0 |
| Resource Contract | 0/4 | -4.0 |
| Request Association | 0/4 | -4.0 |
| Recovery Semantics | 0/4 | -4.0 |
| Prompt Contract | 0/4 | -4.0 |
| Dependency Supply Chain Signal | 0/4 | -4.0 |
| Advanced Capability Coverage | 0/4 | -4.0 |
| Trust Confidence | 2/4 | -2.0 |
| Spec Recency | 2/4 | -2.0 |
| Schema Completeness | 2/4 | -2.0 |
| Rate Limit Semantics | 2/4 | -2.0 |
Compatibility profiles
Connector URL: https://realestatecapitale.ma/mcp # Complete OAuth in the client when prompted. # Server: github-allamiwayl-27/rabatrealestate
{
"mcpServers": {
"rabatrealestate": {
"command": "npx",
"args": ["mcp-remote", "https://realestatecapitale.ma/mcp"]
}
}
}
smithery mcp add "https://realestatecapitale.ma/mcp"
curl -sS https://realestatecapitale.ma/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'
Governance
MCP TrustOps
TrustOps turns this report into operational controls: freshness SLAs, authenticated validation, semantic benchmarks, policy exports, alert subscriptions, badges, cost/compliance metadata, and runtime routing. Fresh trusted index decisions stay separate from long-tail inventory so stale scores do not masquerade as current evidence.
/v1/decideAlert subscription types
MCP Runtime hosting
Verify Hosted MCP turns a trusted server report into a managed remote MCP endpoint with GitHub deployment provenance, sandbox policy, encrypted secrets, release history, rollback, and audit/usage events.
/hosted/{namespace}/{name}/mcp| Deployment | Status | Endpoint | Release |
|---|---|---|---|
| No hosted runtime deployments yet. | |||
Authenticated validation sessions
Public validation is free. Authenticated validation is paid and proves scoped behavior, write-action safeguards, and authenticated tool execution.
/v1/verify/v1/ci/previewInstall snippets
Connector URL: https://realestatecapitale.ma/mcp # Complete OAuth in the client when prompted. # Server: github-allamiwayl-27/rabatrealestate
{
"mcpServers": {
"rabatrealestate": {
"command": "npx",
"args": ["mcp-remote", "https://realestatecapitale.ma/mcp"]
}
}
}
smithery mcp add "https://realestatecapitale.ma/mcp"
curl -sS https://realestatecapitale.ma/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'
Agent access & tool surface
tools/list, prompts/list, and resources/list checks.github-allamiwayl-27/rabatrealestate.