{
  "specVersion": "0.3",
  "host": {
    "name": "Locanoo",
    "domain": "locanoo.ca",
    "url": "https://locanoo.ca",
    "description": "Logiciel québécois de gestion locative : immeubles, logements, locataires, baux, signature électronique, loyers et rapports fiscaux (RL-31).",
    "contact": "mailto:info@locanoo.ca",
    "documentation": "https://locanoo.ca/documentation",
    "termsOfService": "https://locanoo.ca/conditions-utilisation",
    "privacyPolicy": "https://locanoo.ca/politique-confidentialite",
    "languages": ["fr-CA", "en-CA"]
  },
  "entries": [
    {
      "id": "urn:air:locanoo.ca:mcp:locanoo-gestion-logiciel",
      "displayName": "Serveur MCP Locanoo",
      "description": "Serveur MCP (streamable HTTP) protégé par OAuth 2.1 donnant accès en lecture aux immeubles, baux et paiements du compte de l'utilisateur connecté.",
      "namespace": "mcp",
      "type": "application/json",
      "url": "https://locanoo.ca/.well-known/mcp/server-card.json",
      "authentication": {
        "type": "oauth2",
        "protectedResourceMetadata": "https://locanoo.ca/.well-known/oauth-protected-resource",
        "instructions": "https://locanoo.ca/auth.md"
      },
      "representativeQueries": [
        "Liste mes immeubles Locanoo",
        "Quels baux se terminent bientôt ?",
        "Quels loyers sont en retard ce mois-ci ?",
        "Montre les paiements du logement 3 de mon immeuble"
      ]
    },
    {
      "id": "urn:air:locanoo.ca:openapi:public-api",
      "displayName": "API publique Locanoo (OpenAPI 3.1)",
      "description": "Spécification OpenAPI des points de terminaison publics de Locanoo, dont l'inscription à l'infolettre.",
      "namespace": "openapi",
      "type": "application/openapi+json",
      "url": "https://locanoo.ca/openapi.json",
      "representativeQueries": [
        "Quels endpoints publics Locanoo expose-t-il ?",
        "Comment s'inscrire à l'infolettre Locanoo par API ?",
        "Où est le schéma OpenAPI de Locanoo ?"
      ]
    },
    {
      "id": "urn:air:locanoo.ca:skills:agent-skills-index",
      "displayName": "Index des compétences d'agent Locanoo",
      "description": "Index de découverte des compétences (Agent Skills Discovery RFC v0.2.0) décrivant comment un agent utilise Locanoo.",
      "namespace": "skills",
      "type": "application/json",
      "url": "https://locanoo.ca/.well-known/agent-skills/index.json",
      "representativeQueries": [
        "Quelles compétences d'agent Locanoo publie-t-il ?",
        "Comment un agent doit-il interagir avec Locanoo ?",
        "Où trouver le SKILL.md de Locanoo ?"
      ]
    },
    {
      "id": "urn:air:locanoo.ca:auth:oauth-authorization-server",
      "displayName": "Métadonnées OAuth 2.1 / OIDC",
      "description": "Métadonnées du serveur d'autorisation (RFC 8414) avec enregistrement dynamique de clients et bloc agent_auth pour l'enrôlement d'agents.",
      "namespace": "auth",
      "type": "application/json",
      "url": "https://locanoo.ca/.well-known/oauth-authorization-server",
      "representativeQueries": [
        "Comment un agent s'authentifie-t-il auprès de Locanoo ?",
        "Où est l'émetteur OAuth de Locanoo ?",
        "Locanoo supporte-t-il l'enregistrement dynamique de clients ?"
      ]
    },
    {
      "id": "urn:air:locanoo.ca:webmcp:browser-tools",
      "displayName": "Outils WebMCP du site Locanoo",
      "description": "Outils exposés dans le navigateur via navigator.modelContext : liste des pages publiques, navigation, recherche du blogue et inscription à l'infolettre.",
      "namespace": "webmcp",
      "type": "application/json",
      "data": {
        "api": "navigator.modelContext.provideContext",
        "availableOn": "https://locanoo.ca",
        "tools": [
          {
            "name": "list_locanoo_pages",
            "description": "Lister les pages publiques du site avec titre et description."
          },
          {
            "name": "navigate_locanoo",
            "description": "Naviguer vers une page publique du site."
          },
          {
            "name": "search_locanoo_blog",
            "description": "Rechercher des articles publiés du blogue par mot-clé."
          },
          {
            "name": "subscribe_locanoo_newsletter",
            "description": "Inscrire une adresse courriel à l'infolettre (consentement requis)."
          }
        ]
      },
      "representativeQueries": [
        "Quels outils navigateur Locanoo expose-t-il aux agents ?",
        "Cherche un article du blogue Locanoo sur les baux",
        "Inscris-moi à l'infolettre Locanoo",
        "Amène-moi à la page des tarifs Locanoo"
      ]
    },
    {
      "id": "urn:air:locanoo.ca:docs:documentation",
      "displayName": "Documentation et centre d'aide",
      "description": "Documentation produit, centre d'aide et statut des services de Locanoo, en HTML lisible par un agent.",
      "namespace": "docs",
      "type": "text/html",
      "url": "https://locanoo.ca/documentation",
      "representativeQueries": [
        "Comment créer un bail dans Locanoo ?",
        "Comment fonctionne le relevé RL-31 dans Locanoo ?",
        "Les services Locanoo sont-ils en ligne ?"
      ]
    }
  ]
}
