{"_id":"@altura_ma/onemcp","_rev":"3-939646bcf8643b8fcd16ce8f6cb830f1","name":"@altura_ma/onemcp","dist-tags":{"latest":"0.5.0"},"versions":{"0.2.0":{"name":"@altura_ma/onemcp","version":"0.2.0","keywords":["mcp","model-context-protocol","claude","anthropic","ai-tools","france","siren","siret","insee","inpi","business-data","open-data"],"author":{"name":"money-maker"},"license":"MIT","_id":"@altura_ma/onemcp@0.2.0","maintainers":[{"name":"altura_ma","email":"drisswtz@gmail.com"}],"bin":{"onemcp":"dist/index.js"},"dist":{"shasum":"0029d698cfde01621a9a612a3a6964e813a75960","tarball":"https://registry.npmjs.org/@altura_ma/onemcp/-/onemcp-0.2.0.tgz","fileCount":139,"integrity":"sha512-gPnyKyCGPZS7bVx2QJChISEnThP244K+OqA5rIHh5cmxwVkIXFzLMqw4liMKlugk3fsuBEvffCJYht6sGDYjzQ==","signatures":[{"sig":"MEYCIQC62nC0A+Vp0w0zrfb4sqwBl/nmep8mBfDeFlFmbpmIQgIhAIv+y88z3gtC2xxJewOXp25RZkzbfFdackvsY9mQdhqn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270923},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"e728bf96f7c46ed286317a6d0142fb3cfaa918d6","scripts":{"dev":"tsx watch src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","start":"node dist/index.js","inspector":"npx @modelcontextprotocol/inspector node dist/index.js","start:http":"node dist/http.js","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"altura_ma","email":"drisswtz@gmail.com"},"_npmVersion":"10.9.7","description":"OneMCP — MCP server unifié pour les données business publiques France & Europe","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0","@cloudflare/workers-types":"^4.20260507.1"},"_npmOperationalInternal":{"tmp":"tmp/onemcp_0.2.0_1778210497836_0.9782092164948402","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@altura_ma/onemcp","version":"0.3.0","keywords":["mcp","model-context-protocol","claude","anthropic","ai-tools","france","siren","siret","insee","inpi","business-data","open-data"],"author":{"name":"money-maker"},"license":"MIT","_id":"@altura_ma/onemcp@0.3.0","maintainers":[{"name":"altura_ma","email":"drisswtz@gmail.com"}],"bin":{"onemcp":"dist/index.js"},"dist":{"shasum":"2a2cb456f35482929f48e601a216d9a3d60d3b71","tarball":"https://registry.npmjs.org/@altura_ma/onemcp/-/onemcp-0.3.0.tgz","fileCount":155,"integrity":"sha512-T+6vs5g3YTHgZXFK5FPwEX43YYypKviVGZjd+KgZB/dIlN2RZDtTNE4iluDc3psCHJgGJ7UbnqqdtOmLYca9vA==","signatures":[{"sig":"MEYCIQC2eFhfdeQQez0p7y7aSDaKQATKx726JDrfzHDgDs92AgIhAOw6RbNB1Qa4liYl65p3hK1HixWP9LTYV2DNjPql1io9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":307168},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"2e5afcf93cb3721fd2b3d28cced69da83012c84d","scripts":{"dev":"tsx watch src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","start":"node dist/index.js","inspector":"npx @modelcontextprotocol/inspector node dist/index.js","start:http":"node dist/http.js","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"altura_ma","email":"drisswtz@gmail.com"},"_npmVersion":"10.9.7","description":"OneMCP — MCP server unifié pour les données business publiques France & Europe","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0","@cloudflare/workers-types":"^4.20260507.1"},"_npmOperationalInternal":{"tmp":"tmp/onemcp_0.3.0_1778941852416_0.46267973363005677","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@altura_ma/onemcp","version":"0.5.0","description":"OneMCP — MCP server unifié pour les données business publiques France & Europe","type":"module","bin":{"onemcp":"dist/index.js"},"main":"dist/index.js","scripts":{"build":"tsc","dev":"tsx watch src/index.ts","start":"node dist/index.js","start:http":"node dist/http.js","test":"vitest run","test:watch":"vitest","lint":"tsc --noEmit && tsc --noEmit -p tsconfig.worker.json","typecheck:worker":"tsc --noEmit -p tsconfig.worker.json","inspector":"npx @modelcontextprotocol/inspector node dist/index.js","check-env":"tsx scripts/check-env.ts","prepublishOnly":"npm run build && npm test"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"keywords":["mcp","model-context-protocol","claude","anthropic","ai-tools","france","siren","siret","insee","inpi","business-data","open-data"],"author":{"name":"Altura-ma"},"license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^1.0.4","zod":"^3.23.8"},"devDependencies":{"@cloudflare/workers-types":"^4.20260507.1","@types/node":"^22.10.0","tsx":"^4.19.2","typescript":"^5.7.2","vitest":"^2.1.8","wrangler":"^4.100.0"},"engines":{"node":">=20"},"_id":"@altura_ma/onemcp@0.5.0","gitHead":"bcd9a10263a09a6efb73c315ce38a8f387ca95a5","types":"./dist/index.d.ts","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-xyKur/AeZTCXjBJkqMSbw/u9csAOZjbozQcnw3aTwK+PBGksZMzr/Xo9Th/iSw75eYzy1cGRG20NXOaRtnUZpw==","shasum":"c37a9692295f3f6aa9ecb0a048273f806ce7b12b","tarball":"https://registry.npmjs.org/@altura_ma/onemcp/-/onemcp-0.5.0.tgz","fileCount":203,"unpackedSize":448840,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCYk6vO7VfFOaGNVrOM4Mdh1RKJCJq/Jig0AbSuRonNNgIhAI0FbPqO1gwx+dYcTuceTAABj8xYl0djoujV0QHNHJEJ"}]},"_npmUser":{"name":"altura_ma","email":"drisswtz@gmail.com"},"directories":{},"maintainers":[{"name":"altura_ma","email":"drisswtz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/onemcp_0.5.0_1781611189825_0.7721715930761472"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-08T03:21:37.740Z","modified":"2026-06-16T11:59:50.099Z","0.2.0":"2026-05-08T03:21:37.975Z","0.3.0":"2026-05-16T14:30:52.573Z","0.5.0":"2026-06-16T11:59:49.986Z"},"author":{"name":"Altura-ma"},"license":"MIT","keywords":["mcp","model-context-protocol","claude","anthropic","ai-tools","france","siren","siret","insee","inpi","business-data","open-data"],"description":"OneMCP — MCP server unifié pour les données business publiques France & Europe","maintainers":[{"name":"altura_ma","email":"drisswtz@gmail.com"}],"readme":"# OneMCP\n\n> Serveur MCP unifié pour les données business publiques France & Europe.\n> Un seul connecteur, des dizaines de sources officielles, agrégation gratuite (sources sans auth) ou avec vos clés.\n> [onemcp.fr](https://onemcp.fr)\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![Node](https://img.shields.io/badge/node-%3E%3D20-brightgreen)]()\n\n**v0.5.0 — 41 tools, 16 sources**\n\n## Pourquoi\n\nLes agents IA ont besoin de données business françaises fiables. Aujourd'hui :\n- Pappers, SocieteInfo, Infonet sont **payants** et juste des wrappers de l'open data public.\n- Les APIs officielles (INSEE, INPI, BODACC, BAN, etc.) sont **gratuites** mais éclatées, formats hétérogènes, OAuth différents.\n\n**Ce serveur agrège tout ça en un seul connecteur MCP avec un schéma canonique unique.**\n\n## Quick Start\n\n### 1. npx (le plus simple)\n\n```bash\nnpx -y @altura_ma/onemcp\n```\n\n### 2. Claude Desktop / Claude Code\n\n```json\n{\n  \"mcpServers\": {\n    \"business-fr\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@altura_ma/onemcp\"]\n    }\n  }\n}\n```\n\nFichiers de config :\n- macOS : `~/Library/Application Support/Claude/claude_desktop_config.json`\n- Windows : `%APPDATA%\\Claude\\claude_desktop_config.json`\n- Claude Code : `claude mcp add business-fr -- npx -y @altura_ma/onemcp`\n\n### 3. API hébergée (Streamable HTTP)\n\n```json\n{\n  \"mcpServers\": {\n    \"business-fr\": {\n      \"url\": \"https://api.onemcp.fr/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer mk_live_xxx\"\n      }\n    }\n  }\n}\n```\n\n## Endpoints publics\n\n- `https://api.onemcp.fr/openapi.json` — spec REST complète\n- `https://api.onemcp.fr/openapi-gpt.json` — spec compacte Custom GPT\n- `https://api.onemcp.fr/status.json` — statut machine-readable\n- `https://api.onemcp.fr/status/checks` — checks détaillés\n- `https://api.onemcp.fr/api/user/keys` — gestion des clés du tenant (auth clé)\n- `https://api.onemcp.fr/api/keys` — admin keys\n\n## Gestion des clés API\n\n- Dashboard utilisateur : `https://onemcp.fr/dashboard`\n- Console admin : `https://onemcp.fr/keys`\n- Guide repo : `docs/api-keys.md`\n\nVous pouvez maintenant :\n- créer des clés nommées\n- régénérer, désactiver, réactiver, supprimer une clé\n- définir un quota mensuel par clé, en plus du quota global du tenant\n\n## Tools par groupe\n\n| Groupe | Tools | Description |\n|---|---|---|\n| **Méta** | `mcp_guide`, `sources_list` | Routing + liste des sources |\n| **Entreprise** | `company_search`, `company_get`, `company_enrich`, `company_batch`, `company_deep_profile` | Recherche, fiche, enrichissement, batch, profil complet |\n| **Layer 2 (BYOK)** | `company_sirene`, `company_rne`, `company_uk` | INSEE, INPI RNE, UK Companies House |\n| **Légal** | `legal_announcements_search`, `legal_procedures_check` | BODACC, procédures collectives |\n| **Textes légaux (BYOK)** | `law_search`, `jurisprudence_search`, `code_table_of_contents` | Légifrance, jurisprudence |\n| **Géo** | `address_search`, `address_reverse`, `address_risks` | BAN, Géorisques |\n| **Géo admin** | `admin_commune_search`, `admin_commune_get`, `admin_departement_list`, `admin_departement_communes`, `admin_region_list`, `admin_epci_list`, `admin_epci_communes` | Communes, départements, régions, EPCIs |\n| **Immobilier** | `realestate_transactions` | DVF — transactions par commune/code postal |\n| **Identité** | `vat_validate`, `lei_lookup`, `lei_search` | VIES, GLEIF |\n| **Brevets** | `patents_search`, `patent_get` | EPO Open Patent Services |\n| **Emploi (BYOK)** | `jobs_search`, `rome_search` | France Travail |\n| **Marchés publics** | `public_contracts_search` | DECP — données essentielles contrats publics |\n| **Intelligence zone** | `area_business_intelligence` | Analyse business d'une zone géographique |\n\n**Total : 41 tools**\n\n## BYOK (Bring Your Own Keys)\n\nCertains connecteurs nécessitent des credentials. Configurez-les en variables d'environnement :\n\n| Connecteur | Variables | Docs |\n|---|---|---|\n| **INSEE Sirene** | `INSEE_CLIENT_ID`, `INSEE_CLIENT_SECRET` | [api.insee.fr](https://api.insee.fr) |\n| **INPI RNE** | `INPI_USERNAME`, `INPI_PASSWORD` | [data.inpi.fr](https://data.inpi.fr) |\n| **UK Companies House** | `COMPANIES_HOUSE_API_KEY` | [developer.company-information.service.gov.uk](https://developer.company-information.service.gov.uk) |\n| **Légifrance (PISTE)** | `PISTE_CLIENT_ID`, `PISTE_CLIENT_SECRET` | [piste.gouv.fr](https://piste.gouv.fr) |\n| **France Travail** | `FRANCE_TRAVAIL_CLIENT_ID`, `FRANCE_TRAVAIL_CLIENT_SECRET` | [francetravail.io](https://francetravail.io/data/api) |\n| **EPO Patents** | `EPO_OPS_KEY`, `EPO_OPS_SECRET` | [ops.epo.org](https://ops.epo.org) |\n\nVérifiez votre configuration :\n\n```bash\nnpm run check-env\n```\n\n## Développement\n\n```bash\ngit clone <repo-url>\ncd onemcp\nnpm install\nnpm run check-env  # vérifier les credentials optionnels\nnpm run build\nnpm test\n\n# Local dev avec stdio\nnpm run dev\n\n# HTTP mode (Streamable HTTP)\nPORT=3000 npm run start:http\n\n# Inspector officiel pour tester les tools\nnpm run inspector\n\n# Smoke test tous les connecteurs\n./scripts/smoke-test.sh\n```\n\n## Schéma canonique\n\nToutes les réponses retournent un format normalisé avec champ `provenance` :\n\n```ts\n{\n  siren: \"552032534\",\n  legal_name: \"ANTHROPIC\",\n  active: true,\n  headquarter: { siret, address: { ... } },\n  officers: [...],\n  financials: [...],\n  provenance: [\n    {\n      source: \"recherche-entreprises\",\n      source_url: \"...\",\n      fetched_at: \"2026-05-06T22:00:00Z\",\n      license: \"Licence Ouverte 2.0 (Etalab)\"\n    }\n  ],\n  _raw: { ... }  // données brutes de la source\n}\n```\n\n## Sources couvertes (16 sources)\n\n| Source | Type | Auth | Licence |\n|---|---|---|---|\n| **Recherche d'entreprises (DINUM)** | SIREN/SIRET, dirigeants, finances | Non | Licence Ouverte 2.0 |\n| **BODACC** | Annonces légales, procédures collectives | Non | Licence Ouverte 2.0 |\n| **BAN** | Géocodage adresses françaises | Non | LO 2.0 / ODbL |\n| **Géorisques** | Risques naturels/technologiques | Non | Licence Ouverte 2.0 |\n| **DVF** | Transactions immobilières (5 ans) | Non | Licence Ouverte 2.0 |\n| **VIES (UE)** | Validation TVA intracommunautaire | Non | Données publiques EU |\n| **GLEIF** | Identifiants LEI mondiaux | Non | CC0 1.0 |\n| **Geo-France (IGN)** | Communes, départements, régions | Non | Licence Ouverte 2.0 |\n| **DECP** | Marchés publics, contrats | Non | Licence Ouverte 2.0 |\n| **EPO OPS** | Brevets européens | BYOK | EPO OPS Terms |\n| **INSEE Sirene** | Registre officiel entreprises | BYOK | Licence Ouverte 2.0 |\n| **INPI RNE** | Registre national entreprises + UBO | BYOK | Licence Ouverte 2.0 |\n| **Légifrance (PISTE)** | Codes, lois, jurisprudence | BYOK | LO 2.0 |\n| **France Travail** | Offres d'emploi, codes ROME | BYOK | France Travail CGU |\n| **UK Companies House** | Entreprises britanniques | BYOK | OGL v3 |\n| **GLEIF LEI** | Identifiants LEI + relations groupe | Non | CC0 1.0 |\n\n## Conformité\n\n- **RGPD** : ce serveur n'expose que des données publiques. Les données personnelles (dirigeants) sont systématiquement minimisées (date de naissance tronquée à `YYYY-MM`). Documenter votre base légale (intérêt légitime) et l'origine des données auprès des personnes concernées (RGPD Art. 14).\n- **Licences sources** : préservées dans chaque réponse (champ `provenance.license`). Mention obligatoire dans toute réutilisation.\n\n## Architecture\n\nVoir [`docs/architecture.md`](docs/architecture.md).\n\n## Licence\n\nMIT.\n","readmeFilename":"README.md"}