OneMCP documentation

Your apps, your APIs, any MCP server · 41 tools included · 16 official FR/EU sources · v0.6.0

Installation

Claude Desktop / Claude Code

// ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "onemcp": {
      "command": "npx",
      "args": ["-y", "@altura_ma/onemcp"]
    }
  }
}

Hosted mode (API key)

{
  "mcpServers": {
    "onemcp": {
      "url": "https://api.onemcp.fr/mcp",
      "headers": { "Authorization": "Bearer mk_live_xxx" }
    }
  }
}
🤖 ChatGPT Custom Actions

3 steps to connect OneMCP to a custom GPT.

1. Get an API key

Sign up at onemcp.fr/#signup — 1,000 free calls/month, no credit card. Keep the key shown (it will not be visible again).

2. Import the spec into GPT Builder

In ChatGPT → Explore GPTs → Create → Configure → Actions → Import from URL, paste:

https://api.onemcp.fr/openapi-gpt.json

Auth: API Key, header name Authorization, value Bearer mk_live_xxx.

3. Add the system instructions

You have access to OneMCP via the call_onemcp_tool action.
Use it for any query about French companies,
addresses, public procurement, real estate, EU VAT, or patents.
Parameter: {"tool":"company_search","params":{"query":"..."}}

Full guide with prompt examples →

🔌 Connectors & Vault

Beyond the 41 official France/EU tools, connect your own third-party tools from your dashboard → Your data sources. Every credential is encrypted (AES-256-GCM) and isolated per account — never shared, never logged in clear text.

Native Lemlist & Apollo.io tools

Add the connector, and tools appear automatically in tools/list, namespaced <connector>__<tool>.

lemlist__*9 tools
list_campaigns, get_campaign, list_campaign_leads, add_lead_to_campaign, remove_lead_from_campaign, pause_lead, resume_lead, get_lead, list_activities (track responses).
apollo__*5 tools
search_people, search_organizations, enrich_person, enrich_organization, add_contact_to_sequence.
whatsapp__*4 tools
send_text, send_media (image/document/video), send_voice (voice message), get_media (download received attachment by id). Send-only — requires your own WhatsApp Business Account and permanent System User token (Meta for Developers).

Any REST API

Any connector with a base_url (catalogue or custom) exposes a generic tool <connector>__http_request — method, path, query, body of your choosing. Ideal for a service with no dedicated native tools (HubSpot, Airtable, Stripe, Brevo, Slack, Notion, GitHub, Linear, Firecrawl, Apify…).

Universal MCP proxy

Register the URL of an already-hosted third-party MCP server (Notion, GitHub Copilot, Apollo, Stripe, Linear…) — its tools are merged into your /mcp, namespaced and cached for 5 minutes.

OAuth2 — 1-click connection

Some connectors (e.g. Google Drive) use OneMCP's OAuth app — click "Connect", authorize, done. For others, bring your own OAuth2 app (client_id/secret) via the custom connector form.

OAuth2 on /mcp (ChatGPT Apps, Codex)

In addition to mk_live_..., /mcp accepts standard OAuth2 authentication (RFC 7591/8414) — required for the OpenAI Apps portal's "OAuth" mode. Both modes work in parallel, no migration needed for your existing keys.

🔑 BYOK Keys (optional)

These connectors require your own keys. All offer free access with signup.

INSEE_CLIENT_ID / INSEE_CLIENT_SECRET
INSEE Sirene — api.insee.fr/catalogue
INPI_USERNAME / INPI_PASSWORD
INPI RNE (bylaws, UBO) — data.inpi.fr
COMPANIES_HOUSE_API_KEY
EPO_CLIENT_KEY / EPO_CLIENT_SECRET
EPO OPS patents — developers.epo.org
FRANCE_TRAVAIL_CLIENT_ID / FRANCE_TRAVAIL_CLIENT_SECRET
Job listings — francetravail.io/data/api
PISTE_CLIENT_ID / PISTE_CLIENT_SECRET
Légifrance + Judilibre — piste.gouv.fr
🧭 Meta / Routing 2 tools
mcp_guideFree
Natural-language routing. Describe your intent and get the recommended tool back with example parameters.
intentlang
{ "tool": "mcp_guide", "params": { "intent": "find public contracts for a city hall" } }
sources_listFree
Lists all sources with licenses, cache TTL, and configuration status (BYOK keys present or not).
No parameters
🏢 Companies 8 tools
company_deep_profileFree
Full profile in 1 call: identity + BODACC + public contracts + LEI + geographic risks in parallel. Returns _request_id to trace the logs.
sireninclude_legalinclude_contractsinclude_leiinclude_riskscontracts_limit
{ "siren": "552032534", "contracts_limit": 10 }
company_searchFree
Full-text search of French companies. Returns total_results, has_more for pagination.
queryper_pagepage
{ "query": "BNP Paribas", "per_page": 10 }
company_getFree
Full record by SIREN (9 digits) or SIRET (14 digits). Includes officers, establishments, financials.
identifier
{ "identifier": "552032534" }
company_enrichFree
Due diligence: BODACC + Géorisques + LEI in parallel for a given SIREN.
siren
company_batchFree
Lookup of 1 to 20 SIRENs in a single call. Individual results with found/error by SIREN.
sirens[]include_bodacc
{ "sirens": ["552032534", "542107651"] }
company_financial_historyFree
Financial history: revenue, net income, headcount over available years.
siren
company_sireneBYOK INSEE
Official INSEE Sirene record. Updated daily. Period history via periodesUniteLegale.
siren
company_rneBYOK INPI
INPI RNE: bylaws, filings, annual accounts, beneficial owners (UBO). KYC/AML source.
siren
company_ukBYOK Companies House
Official registry of UK companies. Search by name or Companies House number.
identifier
{ "identifier": "00445790" }
📍 Geocoding & Risks 5 tools
address_searchFree
Geocode a text address to GPS coordinates. Source: Base Adresse Nationale (BAN).
qlimit
{ "q": "20 avenue de Ségur, Paris" }
address_reverseFree
Reverse geocoding: GPS coordinates to a normalized postal address.
latlon
{ "lat": 48.8584, "lon": 2.2945 }
address_risksFree
Natural and technological risks at an address via Géorisques: flooding, earthquakes, ICPE sites, ground movement…
address
{ "address": "20 avenue de Ségur, Paris" }
address_validateFree
Validates and normalizes a French address via the Base Adresse Nationale. Returns the official address, GPS coordinates, confidence score, and INSEE code.
address
{ "address": "20 avenue de Ségur Paris" }
address_batchFree
Geocodes up to 50 French addresses in a single call via BAN. Returns for each address: normalized address, GPS coordinates, INSEE code, and confidence score.
addresses
{ "addresses": ["20 avenue de Ségur Paris", "1 place du Capitole Toulouse"] }
🗺️ Administrative Boundaries 8 tools
admin_commune_searchFree
Look up a French municipality by name, postal code, or département code.
nomcode_postalcode_departementlimit
{ "nom": "Lyon" }
admin_commune_getFree
Full record of a municipality by INSEE code: population, coordinates, département, region.
code
{ "code": "75056" }
admin_departement_listFree
List of the 101 French départements. Filterable by region code.
code_region
admin_departement_communesFree
All municipalities in a département with population and INSEE codes.
codelimit
{ "code": "69" }
admin_region_listFree
List of the 18 French regions with capitals and codes.
No parameters
admin_epci_listFree
List of EPCIs (inter-municipal bodies) by département.
code_departement
{ "code_departement": "69" }
admin_epci_communesFree
Member municipalities of an EPCI by inter-municipal body code.
code
{ "code": "200046977" }
commune_statsFree
Full statistics for a municipality: administrative data, DVF real estate transactions, and DECP public contracts. Aggregates 3 sources in a single call.
insee_coderealestate_limitcontracts_limit
{ "insee_code": "75056" }
🏠 Real Estate 2 tools
realestate_transactionsFree
DVF (Demande de Valeur Foncière) transactions from the last 5 years. By INSEE code or postal code. Filters: property type, price_min/price_max.
insee_codepostal_codetype_bienprice_minprice_maxlimit
{ "postal_code": "75008", "type_bien": "Appartement", "price_min": 200000 }
realestate_statsFree
Median, average, min, and max price per m² for a municipality. Segmented by House / Apartment. Based on DVF data.
insee_codesample_size
{ "insee_code": "75056", "sample_size": 200 }
🌍 Identity & VAT 4 tools
vat_validateFree
Intra-community VAT validation via VIES for all 27 EU countries. Real time.
vat_number
{ "vat_number": "FR76552032534" }
lei_searchFree
Search an entity's global LEI (Legal Entity Identifier) by name.
legal_namelimit
{ "legal_name": "BNP Paribas" }
lei_lookupFree
Full record by LEI code (GLEIF).
lei
{ "lei": "R0MUWSFPU8MPRO8K5P83" }
company_vat_checkFree
Derives the intra-community VAT number from a French SIREN and validates it in real time via VIES (EU). Returns the VAT number, legal name, and VIES address.
siren
{ "siren": "552032534" }
💡 Patents 2 tools · BYOK EPO
patents_searchBYOK EPO
Global patent search via EPO Espacenet using CQL syntax. Fields: ti (title), ab (abstract), pa (applicant), in (inventor), cl (IPC classification).
querylimit
{ "query": "ti=machine learning AND pa=BNP" }
patent_getBYOK EPO
Full record of a patent by EPO publication number.
countrydoc_numberkind
{ "country": "EP", "doc_number": "1000000", "kind": "A1" }
💼 Jobs 2 tools · BYOK France Travail
jobs_searchBYOK France Travail
France Travail job listings. Filters: keywords, location, contract type (permanent/fixed-term/temp).
keywordslocationcontract_typelimit
{ "keywords": "développeur TypeScript", "location": "Paris" }
rome_searchBYOK France Travail
ROME codes by occupation title. Useful for qualifying job listings or candidate profiles.
query
{ "query": "développeur logiciel" }
📜 Public Procurement 2 tools
public_contracts_searchFree
DECP public contracts. Filters: awardee (SIREN), buyer (SIRET), CPV code, département, date range, minimum amount.
siren_titulairesiret_acheteurcode_cpvdepartementdate_frommontant_minlimit
{ "siren_titulaire": "552032534", "limit": 20 }
area_business_intelligenceFree
Territorial economic intelligence: active companies + public contracts + real estate transactions + admin data by département or municipality.
departementinsee_codecompanies_limitcontracts_limitrealestate_limit
{ "departement": "75" }
ℹ️ Sources 1 tool
sources_listFree
Lists the 16 sources with ID, license, cache TTL, and real-time configuration status.
No parameters