Koskamo

mcp-rncp MCP

Open-source MCP server providing read-only access to French RNCP and RS certification data from France compétences. It allows agents to search certifications, check validity and habilitation status, list skill blocks, and compare certifications using natural language queries, with all responses sourced and dated.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

mcp-rncp MCP logo, by Arnaud AldebertCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-06Published by Arnaud Aldebert
MCP endpoint (Streamable HTTP)
https://mcp-rncp.com/mcp
Vendor documentation

What its tools do

9 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

9 of 9 have a description · 9 of 9 declare behavior hints · 5 of 8 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search for active professional certifications by level or domain
  • Check if a specific RNCP certification is currently active
  • Verify if a SIRET is authorized to train or evaluate
  • List skill blocks required for EDOF declaration

Source and maintenance

Community listingRegistry 0.1.4
Maintenance checked

Protocol and capabilities

Server
mcp-rncp 0.1.4
MCP protocol negotiated in check
2025-11-25
Tools
9 advertised
Resources
2 advertised
Resource templates
0 advertised
Prompts
2 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "prompts": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Read-only access to the French RNCP and RS registers of professional certifications (France compétences open data). Numbers may be given as 'RNCP35419', '35419' or 'RS5000'. Always relay the `source` and `data_updated_at` fields to the user and link `url_fiche`. Use get_data_status when freshness matters, check_validity before recommending a certification, list_blocs for EDOF declarations, check_habilitation for a SIRET.

Tools

9 advertised

search_certifications — Search RNCP / RS certifications
Advertised by the server during the last successful anonymous check.
Advertised read-only

Full-text search (BM25 + French synonyms) over the French national registers of professional certifications: RNCP (diplomas, titles, CQP) and RS (specific register: skills certificates, habilitations). Filter by register, level (3-8), NSF or ROME code. Returns ranked matches with status and expiry date; use get_certification for details. Example (FR): « Quelles certifications de niveau 6 en cybersécurité sont actives ? »

search_certifications input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "query"
  ],
  "properties": {
    "nsf": {
      "type": "string",
      "maxLength": 4,
      "description": "NSF code or prefix, e.g. '326' (IT)"
    },
    "rome": {
      "type": "string",
      "maxLength": 5,
      "description": "ROME code, e.g. 'M1805'"
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 20,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "description": "Free text, French (e.g. 'développeur web', 'gestion paie')"
    },
    "niveau": {
      "type": "integer",
      "maximum": 8,
      "minimum": 3,
      "description": "Qualification level 3 (CAP) to 8 (doctorate); RS entries have no level"
    },
    "repertoire": {
      "enum": [
        "RNCP",
        "RS"
      ],
      "type": "string",
      "description": "Restrict to one register"
    },
    "actives_only": {
      "type": "boolean",
      "default": true,
      "description": "Only certifications currently registered (default true)"
    }
  }
}
search_certifications annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_certification — Get a certification sheet
Advertised by the server during the last successful anonymous check.
Advertised read-only

Full structured sheet of one RNCP or RS certification: title, level, status and expiry, certifier(s), activities, attested skills, NSF/ROME/Formacode codes, access routes, legal texts, replacements, statistics, official URL. Long texts are truncated to 4000 chars unless full=true. Example (FR): « Donne-moi la fiche RNCP 35419 et ses compétences attestées. »

get_certification input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "numero"
  ],
  "properties": {
    "full": {
      "type": "boolean",
      "default": false,
      "description": "Return untruncated long texts"
    },
    "numero": {
      "type": "string",
      "maxLength": 40,
      "minLength": 1,
      "description": "Certification number: \"RNCP35419\", \"35419\", \"rncp 35419\", \"RS5000\" or a francecompetences.fr URL"
    }
  }
}
get_certification annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_blocs — List skill blocs (blocs de compétences)
Advertised by the server during the last successful anonymous check.
Advertised read-only

Blocs de compétences of an RNCP certification (code RNCPxxxxxBCyy, title, skills, assessment methods), in the order and wording expected by EDOF / Mon Compte Formation forms. RS certifications have no blocs. Example (FR): « Liste les blocs de compétences du RNCP 37674 à renseigner dans EDOF. »

list_blocs input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "numero"
  ],
  "properties": {
    "numero": {
      "type": "string",
      "maxLength": 40,
      "minLength": 1,
      "description": "Certification number: \"RNCP35419\", \"35419\", \"rncp 35419\", \"RS5000\" or a francecompetences.fr URL"
    }
  }
}
list_blocs annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
check_validity — Check registration validity
Advertised by the server during the last successful anonymous check.
Advertised read-only

Is this certification currently registered (active) and until when? Returns status, expiry date, remaining days, delivery deadline, replacement certification(s) and an estimated CPF eligibility (a registered active certification is eligible in principle; the training organism must still be habilitated and referenced). Example (FR): « Le RNCP 35419 est-il encore actif ? Jusqu'à quand ? »

check_validity input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "numero"
  ],
  "properties": {
    "numero": {
      "type": "string",
      "maxLength": 40,
      "minLength": 1,
      "description": "Certification number: \"RNCP35419\", \"35419\", \"rncp 35419\", \"RS5000\" or a francecompetences.fr URL"
    }
  }
}
check_validity annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
check_habilitation — Check a training organism's habilitation
Advertised by the server during the last successful anonymous check.
Advertised read-only

Is a given SIRET (or SIREN) habilitated for a certification, and for which role: 'former' (train), 'evaluer' (organise assessment) or both? Also detects when the SIRET is the certifier itself. Habilitation is effective only if the certification is active AND the partner state is 'Actif'. Example (FR): « Le SIRET 80875076400025 est-il habilité sur le RNCP 35419 ? »

check_habilitation input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "numero",
    "siret"
  ],
  "properties": {
    "siret": {
      "type": "string",
      "maxLength": 20,
      "minLength": 9,
      "description": "SIRET (14 digits) or SIREN (9 digits, matches all establishments)"
    },
    "numero": {
      "type": "string",
      "maxLength": 40,
      "minLength": 1,
      "description": "Certification number: \"RNCP35419\", \"35419\", \"rncp 35419\", \"RS5000\" or a francecompetences.fr URL"
    }
  }
}
check_habilitation annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_partenaires — List habilitated partners
Advertised by the server during the last successful anonymous check.
Advertised read-only

Training organisms habilitated on a certification (name, SIRET, role former/evaluer/both, state, dates). Paginated; filter by SIRET/SIREN prefix. Example (FR): « Quels organismes sont habilités sur le RNCP 37674 ? »

list_partenaires input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "numero"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 50,
      "maximum": 100,
      "minimum": 1
    },
    "numero": {
      "type": "string",
      "maxLength": 40,
      "minLength": 1,
      "description": "Certification number: \"RNCP35419\", \"35419\", \"rncp 35419\", \"RS5000\" or a francecompetences.fr URL"
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "maximum": 9007199254740991,
      "minimum": 0
    },
    "actifs_only": {
      "type": "boolean",
      "default": true
    },
    "siret_prefix": {
      "type": "string",
      "maxLength": 14,
      "description": "SIRET/SIREN prefix filter"
    }
  }
}
list_partenaires annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
compare_certifications — Compare two certifications
Advertised by the server during the last successful anonymous check.
Advertised read-only

Side-by-side comparison of two certifications: level, status, certifiers, NSF/ROME overlap, number of blocs and lexical overlap of blocs (Jaccard on skill terms) and, for each bloc of A, the closest bloc of B (overlap coefficient). Example (FR): « Compare le RNCP 36490 et le RNCP 37873. »

compare_certifications input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "numero_a",
    "numero_b"
  ],
  "properties": {
    "numero_a": {
      "type": "string",
      "maxLength": 40,
      "minLength": 1,
      "description": "Certification number: \"RNCP35419\", \"35419\", \"rncp 35419\", \"RS5000\" or a francecompetences.fr URL"
    },
    "numero_b": {
      "type": "string",
      "maxLength": 40,
      "minLength": 1,
      "description": "Certification number: \"RNCP35419\", \"35419\", \"rncp 35419\", \"RS5000\" or a francecompetences.fr URL"
    }
  }
}
compare_certifications annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
changes_since — Recent changes in the registers
Advertised by the server during the last successful anonymous check.
Advertised read-only

Certifications created, updated, deactivated, reactivated or removed since a date (history starts at the first ingestion run). Filter by change type, register or NSF code. Example (FR): « Quelles fiches informatique (NSF 326) ont changé depuis le 1er juillet ? »

changes_since input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "since"
  ],
  "properties": {
    "nsf": {
      "type": "string",
      "maxLength": 4
    },
    "type": {
      "enum": [
        "created",
        "updated",
        "deactivated",
        "reactivated",
        "removed"
      ],
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "default": 50,
      "maximum": 100,
      "minimum": 1
    },
    "since": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "ISO date YYYY-MM-DD"
    },
    "repertoire": {
      "enum": [
        "RNCP",
        "RS"
      ],
      "type": "string"
    }
  }
}
changes_since annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_data_status — Data freshness and coverage
Advertised by the server during the last successful anonymous check.
Advertised read-only

Source dataset date, ingestion run, counts (total/active/RNCP/RS/blocs/partners) and age of the data in days. Call this to tell the user how fresh the answers are. Example (FR): « De quand datent les données RNCP ? »

get_data_status input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
get_data_status annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

2 advertised

rediger_offre_edof — Rédiger une offre EDOF (FR)

Advertised by the server during the last successful anonymous check.

Drafts the pedagogical objectives, programme outline and blocs section of an EDOF / Mon Compte Formation offer from an RNCP sheet. Args: numero, public (target audience), duree (hours).

numero
RNCP number, e.g. RNCP37674 (required)
public
Target audience, e.g. 'demandeurs d'emploi en reconversion'
duree
Training duration, e.g. '400 heures'
verifier_certification — Vérifier une certification (FR)

Advertised by the server during the last successful anonymous check.

Compliance check before selling or funding a training: validity, expiry, replacement, blocs, and (optionally) whether a SIRET is habilitated. Args: numero, siret (optional).

numero
RNCP or RS number (required)
siret
SIRET of the training organism to check

Resources

2 advertised

glossaire — Glossaire RNCP / RS (FR)

Advertised by the server during the last successful anonymous check.

Definitions of RNCP/RS concepts: registers, levels, blocs, habilitations, CPF, EDOF, NSF/ROME.

glossaire URI
rncp://glossaire

MIME type: text/markdown

about — About this server: source, licence, freshness, limits

Advertised by the server during the last successful anonymous check.

Data provenance (France compétences via data.gouv.fr), licence, last update, coverage and known limits.

about URI
rncp://about

MIME type: text/markdown

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
2405 ms
95th percentile latency
2405 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 2405 ms · metadata changed · 9 tool(s), 2 resource(s), 0 resource template(s), 2 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http mcp-rncp-mcp https://mcp-rncp.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add mcp-rncp-mcp --url https://mcp-rncp.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable mcp-rncp-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "mcp-rncp-mcp": {
      "url": "https://mcp-rncp.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "mcp-rncp-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp-rncp.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start mcp-rncp-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "mcp-rncp-mcp": {
      "type": "http",
      "url": "https://mcp-rncp.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http mcp-rncp-mcp https://mcp-rncp.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mcp-rncp.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "mcp-rncp-mcp": {
      "serverUrl": "https://mcp-rncp.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like mcp-rncp MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.