# Connecteur MCP

Le connecteur expose vos projets NessFlow à un assistant compatible MCP. Il appelle les mêmes droits que l’API publique, pour l’équipe choisie à la connexion.

## Se connecter

`https://mcp.nessflow.com/mcp`

- **Claude** : Paramètres, Connecteurs, Ajouter un connecteur personnalisé, puis collez l’adresse et connectez-vous à NessFlow.
- **ChatGPT** : Paramètres, Applications et connecteurs, Créer, puis collez l’adresse et connectez-vous à NessFlow.
- **Le Chat** : Intelligence, Connecteurs, Ajouter un connecteur, MCP personnalisé, puis collez l’adresse.
- **Cursor** : Ajoutez le serveur depuis les réglages MCP, ou par le lien d’installation de l’onglet Assistant IA de NessFlow.
- **VS Code** : Commande « MCP : ajouter un serveur », type HTTP, puis l’adresse ; ou le lien d’installation de NessFlow.
- **Claude Code** : Une commande dans le terminal :

## Droits, devis et journal

À la connexion, vous choisissez l’équipe et les droits : lecture, pilotage, dépense. Toute action qui consomme l’offre rend d’abord un devis avec un identifiant de confirmation ; l’assistant ne l’exécute qu’en le renvoyant. Chaque action est journalisée, et la connexion se révoque depuis NessFlow.

## Catalogue d’outils

Généré depuis le serveur. Une connexion ne voit que les outils que ses droits, son offre et ses modules permettent. Les descriptions sont en anglais : ce sont celles que l’assistant reçoit.

- `nessflow_whoami` (read, Starter) : Describe the NessFlow account this connection acts for: the team, its plan, the rights granted to this connection, what it can effectively do once the team settings apply (connection.effective_access, connection.can_spend), the rate limit left, and every plan quota (used, limit, remaining). Use it first, and whenever a refusal mentions a plan limit. A quota limit of null means unlimited; 0 means not included in the plan.
- `nessflow_operations_list` (read, Starter) : List what is running right now for the team: crawls in progress (with their stage and their progress as pages crawled out of the page budget), exports, recommendation runs. Use it to know whether a crawl can be launched (one active crawl per team) or to follow a long task. The list is capped; meta.total gives the full count.
- `nessflow_projects_list` (read, Starter) : List the projects of the team (one website each), with their identifier, URL and latest completed crawl. Use it to find the project_id other tools need. Paginated: pass meta.next_cursor as cursor for the next page.
- `nessflow_project_get` (read, Starter) : Read one project: its website URL, domain, whether it is locked (read only) and its latest completed crawl. Requires the project_id (UUID) returned by the project list.
- `nessflow_project_scorecard_get` (read, Starter) : Read the health score of a project and its five pillars (technical, content and AI-answer readiness, accessibility, acquisition, crawlability). A pillar can be not measured: report it as such, never as zero.
- `nessflow_campaigns_list` (read, Starter) : List the campaigns of a project: reusable crawl settings (start URL, page budget, schedule). A crawl is always launched from a campaign. Paginated with meta.next_cursor.
- `nessflow_campaign_get` (read, Starter) : Read one campaign: its start URL, page budget, crawl options and schedule. Requires the campaign_id (UUID) returned by the campaign list.
- `nessflow_crawls_list` (read, Starter) : List the crawls of a project, newest first, with their status and dates. Use it to find the latest finished crawl or a baseline to compare with. Paginated with meta.next_cursor.
- `nessflow_crawl_get` (read, Starter) : Read one crawl: status, current stage, pages crawled out of the page budget, dates. A crawl still running is reported as such; read it again later instead of waiting. Requires the crawl_id (UUID).
- `nessflow_issues_list` (read, Starter) : List the issue occurrences found by a crawl, one per affected page, filterable by severity, category or exact issue name. Start from the issue summary to pick a name, then list its occurrences. Paginated with meta.next_cursor.
- `nessflow_issues_summary_get` (read, Starter) : Summarise the issues of a crawl: totals by severity and one group per issue type with its number of occurrences. Occurrences that only describe a protection page (blocked, challenge) are counted apart, never in the totals.
- `nessflow_pages_list` (read, Starter) : List the pages a crawl visited, filterable by HTTP status class and internal or external. Each page carries its URL, status, title and key measures. Paginated with meta.next_cursor.
- `nessflow_page_get` (read, Starter) : Read what a crawl measured on one page, given its exact URL: status, title, meta description, H1, word count, canonical, response time, size, links, images and the issues found on it. Use the URL as listed by the page list.
- `nessflow_crawl_pagespeed_get` (read, Starter) : Read the PageSpeed results measured during a crawl: the average and the results per page and strategy (mobile, desktop). A strategy that could not be measured is reported as not measured, never as a zero score.
- `nessflow_crawl_geo_get` (read, Starter) : Read how readable the website is for AI answer engines (GEO): the score and its axes, AI crawler access, llms.txt, structured data, editorial signals and improvement hints. A score built on few measurable axes says so in its axes.
- `nessflow_crawl_accessibility_get` (read, Starter) : Read the accessibility audit of a crawl: score, pages analysed out of the total, failing rules, conformance by principle, contrast pairs, hints and the checks that need a human. Use it to explain which fixes would remove the most violations.
- `nessflow_crawl_eeat_get` (read, Starter) : Read the trust foundation report (E-E-A-T) of a crawl: the axes expected for this business, which are present, missing or not measurable, and the evidence pages.
- `nessflow_crawl_structure_get` (read, Starter) : Read the internal linking structure of a crawl: depth from the home page, orphan pages, pages with few inbound links, and link scores (ranks, not grades). A truncated crawl reports its figures as not comparable.
- `nessflow_crawls_compare` (read, Starter) : Compare a crawl with a baseline crawl of the same project (baseline is a crawl UUID): the summary of changes, status codes, issues and pages that appeared, disappeared or changed. Pick the baseline from the crawl list.
- `nessflow_recommendations_get` (read, Starter) : Read the AI recommendations of a project: global actions ranked by impact and effort, with the signals they come from, and per-page actions. Generated from the latest audits; reading them costs nothing.
- `nessflow_export_get` (read, Starter) : Read the state of an export (Excel or PDF): pending, ready or expired. When ready, it carries the download address on the NessFlow API, which needs an API token: tell the user to download the file from the exports of the NessFlow app rather than fetching it.
- `nessflow_positions_get` (read, Starter) : Read the rank tracking of a project over a period: tracked keywords, their positions and trend. Not in the top 100 is a measured fact; a keyword not yet checked is not measured. Rankings carry a trend, never a score.
- `nessflow_search_console_get` (read, Starter) : Read the Search Console data of a project over a period: performance (clicks, impressions, average position) and indexation. Requires the project to have connected its Search Console property.
- `nessflow_backlinks_get` (read, Pro) : Read the latest backlink profile snapshot of a project, for the target it was measured on. Available when the backlink module is active for the project.
- `nessflow_security_get` (read, Starter) : Read the latest passive security scan of a project: score, counts by severity and findings. Passive detection only: nothing is scanned for vulnerabilities or attacked.
- `nessflow_logs_get` (read, Starter) : Read the server log analysis of a project over a period: totals and daily series of crawler visits, and the days missing from the collection. No IP address is ever returned.
- `nessflow_project_create` (write, Pro) : Create a project for a website the team wants to audit. It uses one project slot of the plan, so the first call returns a quote; call again with the confirmation to create it. The new project still needs a campaign before a crawl can run.
- `nessflow_project_update` (destructive, Pro) : Rename a project or change its website URL. Changing the URL erases what described the previous site (profile, priority URLs), so the first call returns a quote and nothing changes until it is confirmed.
- `nessflow_campaign_create` (write, Pro) : Create a campaign on a project: the start URL, the page budget, the crawl depth and the options (JavaScript rendering, PageSpeed, accessibility, external links) a crawl will use, and an optional schedule. Credentials for a protected site are set on the NessFlow screen, never here.
- `nessflow_campaign_update` (write, Pro) : Change the settings or the schedule of a campaign. The next crawl uses the new settings; past crawls keep theirs. Credentials for a protected site are set on the NessFlow screen, never here.
- `nessflow_campaign_delete` (destructive, Pro) : Delete a campaign, stopping its crawl if one is running. This cannot be undone, so the first call returns a quote; call again with the confirmation to delete. An assistant can delete a few campaigns per day at most.
- `nessflow_crawl_launch` (billed, Pro) : Launch a crawl of a campaign. It fetches the website and uses the plan, so the first call returns a quote; call again with the confirmation to launch. One crawl runs at a time per team. Returns at once with the crawl identifier; read its state again later.
- `nessflow_crawl_stop` (write, Pro) : Stop a running crawl now. What was already crawled is kept and marked as truncated, so it is not compared with complete crawls. Stopping is never refused for billing reasons.
- `nessflow_recommendations_generate` (billed, Pro) : Generate new AI recommendations for a project from its latest audits. It uses one generation of the monthly allowance, so the first call returns a quote; call again with the confirmation. Runs in the background: read the recommendations again later.
- `nessflow_export_create` (write, Pro) : Request a full export of a finished crawl, as an Excel workbook or a PDF report. Runs in the background and returns the export identifier; read the export again later to get its download link.
- `nessflow_keywords_track` (billed, Pro) : Start tracking keywords for a project: their position will be checked every day. Each keyword uses one slot of the plan, so the first call returns a quote; call again with the confirmation.
- `nessflow_keywords_untrack` (write, Pro) : Stop tracking keywords for a project and free their slots. Their history is kept. Freeing slots is never refused for billing reasons.
- `nessflow_keywords_pause` (write, Pro) : Pause the daily check of tracked keywords and free their slots, keeping them in the list and their history. Resuming them later uses slots again.
- `nessflow_keywords_resume` (billed, Pro) : Resume the daily check of paused keywords. Each keyword uses one slot of the plan again, so the first call returns a quote; call again with the confirmation.
- `nessflow_keyword_check_now` (billed, Pro) : Check the position of one tracked keyword now instead of waiting for the daily check. It uses one live check of the daily allowance, so the first call returns a quote; call again with the confirmation. The result arrives in the background.

## Exemples

- **Comprendre ce qui a changé depuis le dernier audit** : Compare le dernier audit de {project} au précédent. Sépare les régressions réelles, le bruit, et ce que tu ne peux pas trancher faute de mesure. Pour chaque régression réelle, donne la page la plus touchée.
- **Préparer le compte rendu client** : Prépare le compte rendu mensuel de {project} pour mon client : ce qui a progressé, ce qui a régressé, ce qui n’est pas encore mesurable. Dix lignes maximum, chaque chiffre avec son dénominateur.
- **Prioriser les correctifs** : Quels sont les dix correctifs qui feraient le plus monter le score de santé de {project} pour le moins d’effort ? Pour chacun : le pilier touché, le nombre de pages, et un exemple d’URL.
- **Vérifier qu’une correction a marché** : J’ai corrigé les balises title des fiches produit. Relance l’audit de {campaign}, dis-moi d’abord ce que ça va consommer, puis rappelle-moi quand on pourra conclure si la correction a marché.
- **Trouver les pages orphelines qui ont du trafic** : Quelles pages de {project} sont orphelines ou à plus de quatre clics de l’accueil, et lesquelles reçoivent pourtant du trafic Search Console ?
- **Bâtir le plan d’action du mois** : Construis le plan d’action SEO de {project} pour ce mois-ci à partir de ses recommandations : trois chantiers au maximum, classés par impact et effort, avec le pilier du score de santé que chacun fait progresser.
- **Savoir quels robots IA peuvent lire le site** : Quels robots des moteurs de réponse IA ont le droit de lire {project}, lesquels sont bloqués, et la règle qui les bloque est-elle voulue ou accidentelle ?
- **Mesurer la lisibilité par les moteurs IA** : Mon site est-il lisible par les moteurs de réponse IA ? Donne le score GEO de {project}, les trois blocages principaux, et la page la plus exemplaire à imiter.
- **Faire le tour du portefeuille** : Fais le tour de tous mes projets : lequel a le plus baissé depuis son dernier audit, et pourquoi ? Ignore ceux dont l’audit est trop récent pour conclure.

## Erreurs propres au connecteur

- `confirmation.invalid` : Confirmation inconnue, expirée ou émise pour une autre connexion : demandez un nouveau devis.
- `confirmation.mismatch` : Cette confirmation a été émise pour d'autres arguments : demandez un nouveau devis.
- `mcp.spend_not_granted` : Cette connexion n'a pas reçu le droit d'engager des dépenses de votre offre.
- `mcp.destructive_cap` : Plafond quotidien de suppressions par un assistant atteint.
- `mcp.disabled_by_team` : Votre équipe a fermé le connecteur aux assistants.
- `mcp.client_not_allowed` : Votre équipe n'autorise pas cet assistant.
- `mcp.input_not_available` : Ce réglage ne se pose pas par un assistant : il se règle dans NessFlow.
- `mcp.pkce_required` : Cette demande d’autorisation exige PKCE avec la méthode S256.
