{"name":"io.github.cmendezs/mcp-facture-electronique-fr","slug":"cmendezs-mcp-facture-electronique-fr","title":"Facture Électronique France","description":"MCP server for French e-invoicing (XP Z12-013). Manages invoices, validation and compliance.","url":"https://mcp.market/server/cmendezs-mcp-facture-electronique-fr","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":15,"stars":0,"forks":1,"downloads_week":null,"last_push_at":"2026-09-12T09:16:42.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/cmendezs/mcp-facture-electronique-fr","website":null,"version":"0.9.1","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"mcp-facture-electronique-fr","version":"0.9.1","transport":{"type":"stdio"}}],"tools":[{"name":"check_ppf_annuaire_health","description":"Check the availability of the PPF Annuaire service (GET /healthcheck). Use before a directory-management session to ensure the service is reachable.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_directory_line","description":"Create a directory line (electronic invoice receiving address) (POST /ligne-annuaire).","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_routing_code","description":"Create a routing code (POST /code-routage).","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_webhook","description":"","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_directory_line","description":"Delete a directory line (DELETE /ligne-annuaire/id-instance:{id-instance}).","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_webhook","description":"Delete (unsubscribe from) a webhook. After deletion, the AP will stop sending notifications to the callback URL.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_company_by_id_instance","description":"Look up a legal unit by directory instance ID (GET /siren/id-instance:{id-instance}).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_company_by_siren","description":"Look up a legal unit by SIREN (GET /siren/code-insee:{siren}).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_directory_line","description":"Look up a directory line by directory instance ID (GET /ligne-annuaire/id-instance:{id-instance}).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_directory_line_by_code","description":"Look up a directory line by addressing code (GET /ligne-annuaire/code:{identifiant-adressage}).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_establishment_by_id_instance","description":"Look up an establishment by directory instance ID (GET /siret/id-instance:{id-instance}).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_establishment_by_siret","description":"Look up an establishment by SIRET (GET /siret/code-insee:{siret}).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_flow","description":"Retrieve a flow by its identifier. docType allows choosing between JSON metadata (Metadata), the original document (Original), the converted document (Converted), or the readable representation (ReadableView). By default, returns the JSON metadata (status, dates, identifiers).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_routing_code_by_id_instance","description":"Look up a routing code by directory instance ID (GET /code-routage/id-instance:{id-instance}).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_routing_code_by_siret_and_code","description":"Look up a routing code by SIRET and code (GET /code-routage/siret:{siret}/code:{identifiant-routage}).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_webhook","description":"Retrieve the full details of a webhook subscription: callback URL, authentication mode, signature configuration, and metadata filters (flow type, direction, processing rule, ack status).","write_action":false,"price_micros":0,"input_schema":null},{"name":"healthcheck_flow","description":"Check the availability of the Approved Platform's Flow Service. Returns the operational status of the service (ok/degraded/unavailable). Use before an invoice submission session to ensure the AP is reachable.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_webhooks","description":"List all webhook subscription IDs owned by the current OAuth2 token holder.","write_action":false,"price_micros":0,"input_schema":null},{"name":"replace_directory_line","description":"Fully replace a directory line (PUT /ligne-annuaire/id-instance:{id-instance}).","write_action":false,"price_micros":0,"input_schema":null},{"name":"replace_routing_code","description":"Fully replace a routing code (PUT /code-routage/id-instance:{id-instance}). Unlike update_routing_code, all fields are required and replace the existing object entirely.","write_action":false,"price_micros":0,"input_schema":null},{"name":"run_check_5","description":"CHECK 5 — FR-specific structural and completeness checks.","write_action":true,"price_micros":0,"input_schema":null},{"name":"search_company","description":"Search legal units (SIRENs) in the PPF Annuaire (POST /siren/recherche).","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_directory_line","description":"Search directory lines (electronic invoice receiving addresses) (POST /ligne-annuaire/recherche).","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_establishment","description":"Search establishments (SIRETs) in the PPF Annuaire (POST /siret/recherche).","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_flows","description":"Search flows (invoices, statuses, e-reportings) in the Approved Platform by criteria: flow type, status, processingRule, period, trackingId. Pagination via updatedAfter: use the 'nextUpdatedAfter' field from the response as the updated_after parameter value to get the next page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_routing_code","description":"Search routing codes (POST /code-routage/recherche).","write_action":false,"price_micros":0,"input_schema":null},{"name":"submit_flow","description":"","write_action":true,"price_micros":0,"input_schema":null},{"name":"submit_lifecycle_status","description":"","write_action":true,"price_micros":0,"input_schema":null},{"name":"submit_payment_report","description":"","write_action":true,"price_micros":0,"input_schema":null},{"name":"submit_transaction_report","description":"","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_directory_line","description":"Partially update a directory line (PATCH /ligne-annuaire/id-instance:{id-instance}). Only provided fields are modified.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_routing_code","description":"Partially update a routing code (PATCH /code-routage/id-instance:{id-instance}). Only provided fields are modified.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_webhook","description":"Update a webhook subscription's technical parameters (authentication, signature, custom headers). Metadata filters (flow type, direction) cannot be changed; delete and recreate the webhook instead.","write_action":true,"price_micros":0,"input_schema":null},{"name":"validate_ereporting_xml","description":"Validate a DGFiP e-reporting (Flux 10) FRR XML payload.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate_facturx","description":"Validate a Factur-X CII XML document against its profile's Schematron ruleset.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-19T20:08:15.657Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T20:08:15.607Z","components":{"code":{"score":25,"max":25,"notes":["22 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 7 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"mcp-facture-electronique-fr","version":"0.9.1","found":true,"license":"Apache-2.0","dependencyCount":13,"publishedAt":"2026-09-12T08:37:48.758285Z"}],"repo":{"found":true,"owner":"cmendezs","repo":"mcp-facture-electronique-fr","archived":false,"pushedAt":"2026-09-12T09:16:42Z","stars":0,"forks":1,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/4614797?v=4","ownerCreatedAt":"2013-06-04T20:17:28Z","license":"Apache-2.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/4614797?v=4&s=128","source":"registry"},"presence":{"stars":0,"forks":1,"downloadsWeek":null,"license":"Apache-2.0","lastPushAt":"2026-09-12T09:16:42.000Z","score":15}}}},"grade_history":[],"reviews":[]}