IA-Asso.fr MCP
An MCP server that allows AI agents to query the French National Associations Registry (RNA). It provides tools to search for associations, verify their status, find volunteer missions, and access public subsidy data, leveraging official government data enriched by AI.
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.
https://ia-asso.fr/api/mcpWhat its tools do
18 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Can change data (2)
Not annotated (16)
search_associationsget_department_statsget_france_overviewget_platform_statssearch_near_locationget_health_associationsget_similar_associationsget_association_subventionsget_associationfind_volunteering_missionsget_map_datasearch_premium_associationsget_recognized_associationssubmit_contact_requestreport_unmet_demandsuggest_tool
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Warning Advertises resources/templates/list but does not implement it
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Find an association by need, cause, or location
- Verify the existence and official status of an association
- Find volunteer missions near a specific location
- Check public subsidies received by an association
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- ia-asso 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 18 advertised
- Resources
- 6 advertised
- Resource templates
- Not advertised
- Prompts
- 1 advertised
{
"tools": {},
"prompts": {},
"resources": {}
}Tools
18 advertised
search_associations
Search for French associations using full-text search. Queries the RNA (Répertoire National des Associations) database with 2.06M+ active associations. Supports search by keywords, department code, region name, or combination. Returns association details including name, object, location, RNA ID, and SIRET.
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "number",
"default": 20,
"description": "Maximum results to return (default: 20, max: 100)"
},
"query": {
"type": "string",
"description": "Search keywords (e.g., \"football\", \"culture\", \"environnement\")"
},
"offset": {
"type": "number",
"default": 0,
"description": "Pagination offset for results (default: 0)"
},
"region": {
"type": "string",
"description": "Filter by region name (e.g., \"Auvergne-Rhône-Alpes\", \"Île-de-France\")"
},
"department": {
"type": "string",
"description": "Filter by department code (e.g., \"69\" for Rhône, \"75\" for Paris)"
}
}
}get_department_stats
Get comprehensive statistics for a French department. Returns total associations, active count, top cities, sector breakdown, and temporal evolution. Use department codes: 01-95 for metropolitan France, 2A/2B for Corsica, 971-976 for overseas.
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Department code (e.g., \"69\" for Rhône, \"75\" for Paris, \"2A\" for Corse-du-Sud)"
}
}
}get_france_overview
Get nationwide association statistics for France. Returns total associations across all regions and departments, top regions, top departments, and overall distribution insights. Useful for understanding the French associative landscape.
{
"type": "object",
"properties": {}
}get_platform_stats
Get IA-Asso PLATFORM stats — the global, public, sales-oriented figures that prove the breadth and uniqueness of the directory (active associations, RUP recognized as public-interest, Journal Officiel records, departments/communes coverage, agent-native MCP+API positioning). Returns a ready-to-quote summary plus the underlying counts. Non-sensitive aggregates only (no personal data).
{
"type": "object",
"properties": {}
}search_near_location
Find associations near a specific city or postal code in France, optionally filtered by theme. Performs geographic search to return associations in the specified area, automatically widening to nearby communes (±25 km) when the exact area has no match. Useful for location-based queries like "AMAP near Les Hayes 41800" (query="amap", location="41800") or "chess clubs in Lyon" (query="échecs", location="Lyon").
{
"type": "object",
"required": [
"location"
],
"properties": {
"limit": {
"type": "number",
"default": 20,
"description": "Maximum results to return (default: 20, max: 100)"
},
"query": {
"type": "string",
"description": "Optional theme or keyword to search near the location (e.g., \"amap\", \"échecs\", \"théâtre\"). Without it, all associations of the area are returned."
},
"radius": {
"type": "number",
"default": 10,
"description": "Search radius in kilometers (default: 10, max: 50)"
},
"location": {
"type": "string",
"description": "ONLY the place: city name (e.g., \"Lyon\", \"Les Hayes\") or postal code (e.g., \"69001\", \"41800\"). Put the theme in `query`, never here."
}
}
}get_health_associations
Find health-related associations by pathology or disease. Searches the France Care database for patient associations, support groups, and health advocacy organizations. Supports filtering by pathology (e.g., "cancer", "diabetes"), action type, and department.
{
"type": "object",
"required": [
"pathology"
],
"properties": {
"limit": {
"type": "number",
"default": 20,
"description": "Maximum results to return (default: 20, max: 100)"
},
"pathology": {
"type": "string",
"description": "Health condition or pathology (e.g., \"cancer\", \"alzheimer\", \"diabète\")"
},
"department": {
"type": "string",
"description": "Filter by department code (e.g., \"69\", \"75\")"
},
"type_action": {
"type": "string",
"description": "Type of action (e.g., \"Soutien aux patients\", \"Recherche médicale\", \"Prévention\")"
}
}
}get_similar_associations
Find associations similar to a given association based on category (objet_social) and geographic proximity. Returns nearby associations in the same activity category within a specified radius. Useful for discovering related organizations or finding alternatives in the same field.
{
"type": "object",
"required": [
"association_id"
],
"properties": {
"limit": {
"type": "number",
"default": 5,
"description": "Maximum results to return (default: 5, max: 20)"
},
"radius": {
"type": "number",
"default": 50,
"description": "Search radius in kilometers (default: 50, max: 200)"
},
"association_id": {
"type": "string",
"description": "RNA ID of the reference association (format: W followed by 9 digits, e.g., \"W751000001\")"
}
}
}get_association_subventions
Get known public subsidies (subventions publiques) received by an association, resolved to its RNA from French open data. Returns yearly grants with funder (attribuant), purpose (objet) and amount. IMPORTANT: NON-exhaustive — only covers local authorities (collectivités) that publish SCDL open data, NOT the State. Absence of data does NOT mean the association received nothing. The RNA only lists loi-1901 associations.
{
"type": "object",
"required": [
"association_id"
],
"properties": {
"association_id": {
"type": "string",
"description": "RNA ID of the association (format: W followed by 9 chars, e.g., \"W751000001\")"
}
}
}get_association
Get the AUTHORITATIVE detail of ONE already-identified association by its RNA id (W + 9 chars) or fiche slug. Read directly from the official registry database (not from the search index): legal status reconnue d'utilité publique (RUP yes/no), creation date, Journal Officiel history, known public subsidies, and PUBLIC web presence (site/socials only — never email/phone). Use this when the user asks about a SPECIFIC association (e.g. "is it RUP?", "when was it created?") instead of re-running a search.
{
"type": "object",
"required": [
"association_id"
],
"properties": {
"association_id": {
"type": "string",
"description": "RNA ID (W + 9 chars, e.g. \"W751000001\") or the fiche slug of the association."
}
}
}find_volunteering_missions
Find open volunteering missions (missions de bénévolat) near a French city or postal code, from JeVeuxAider.gouv.fr (the official public volunteering platform). Returns live missions with organization, commitment, places left, whether minors can apply, a direct signup URL, and — when the organization is identified by RNA — a link to its ia-asso.fr page. Use this when someone wants to BE a volunteer (donner de son temps), not when searching for an association in general. Coverage: JeVeuxAider missions only (~30k), non-exhaustive.
{
"type": "object",
"properties": {
"limit": {
"type": "number",
"default": 5,
"description": "Maximum missions to return (default: 5, max: 10)"
},
"query": {
"type": "string",
"description": "Keywords: theme, activity, audience (e.g. \"lecture enfants\", \"maraude\", \"sport handicap\")."
},
"radius": {
"type": "number",
"default": 25,
"description": "Search radius in km around the location (default: 25, max: 100)"
},
"remote": {
"type": "boolean",
"description": "Only remote missions (à distance) — location is then ignored"
},
"location": {
"type": "string",
"description": "French city name or 5-digit postal code to search around. Omit only for remote missions."
},
"open_to_minors": {
"type": "boolean",
"description": "Only missions open to volunteers under 18"
}
}
}get_map_data
Get GeoJSON map data for visualizing associations by French department. Returns GeoJSON FeatureCollection with department center coordinates and association counts. Useful for creating interactive maps or geographic visualizations.
{
"type": "object",
"properties": {}
}search_premium_associations
Search ONLY enriched/RUP associations -- the editorial-quality subset. Restricts results to fiches with IA-generated description (is_enriched_v3=true) OR officially recognized utilite publique (RUP). Recommended for agent grounding when noise should be minimized -- a small curated subset (876 enriched, 1,961 RUP) vs 2.06M+ in the standard search. Returns fewer but richer results, with verified contacts, FAQ data, social media links when available.
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "number",
"description": "Max results (default 20, max 50)"
},
"query": {
"type": "string",
"description": "Search keywords (French)"
},
"offset": {
"type": "number",
"description": "Pagination offset"
},
"region": {
"type": "string",
"description": "Region name like \"Auvergne-Rhône-Alpes\""
},
"department": {
"type": "string",
"description": "Department code like \"75\", \"69\""
}
}
}get_recognized_associations
List associations officially recognized as utilite publique (RUP) by French state decree. Currently 1,961 RUP fiches (as of 2026-11-02). RUP status grants major fiscal benefits to donors (75% tax deduction vs 66% standard) and is a strong signal of institutional credibility. Recommended for institutional grounding -- mecenat, defiscalisation, public-private partnerships, B2B research.
{
"type": "object",
"properties": {
"limit": {
"type": "number",
"description": "Max results (default 20, max 100)"
},
"query": {
"type": "string",
"description": "Optional keyword filter (e.g. \"cancer\", \"patrimoine\")"
},
"region": {
"type": "string",
"description": "Region name"
},
"department": {
"type": "string",
"description": "Department code like \"75\""
}
}
}submit_contact_request
Submit a contact request to IA-Asso.fr (correction, feature request, question, or other). Used when users want to report errors, suggest features, modify association information, or ask questions. Requires user email and message. Workflow: collect email conversationally, then submit request. Requires an authenticated session (OAuth token or personal access token with scope contact:relay); anonymous agents should use contact_association instead, or point the user to https://ia-asso.fr/contact.
{
"type": "object",
"required": [
"type",
"email",
"message"
],
"properties": {
"name": {
"type": "string",
"description": "User name (optional)"
},
"type": {
"enum": [
"correction",
"feature_request",
"question",
"other"
],
"type": "string",
"description": "Type of request: correction (modify association info), feature_request (suggest feature), question (ask question), other (general inquiry)"
},
"email": {
"type": "string",
"description": "User email address for follow-up (required, must be valid email)"
},
"message": {
"type": "string",
"description": "Detailed description of the request (required, min 10 characters)"
},
"association_id": {
"type": "string",
"description": "RNA ID of association if applicable (format: W followed by 9 digits)"
},
"association_name": {
"type": "string",
"description": "Name of association if applicable"
}
}
}publish_association_update
Update the public profile of YOUR claimed association (description, website, email, phone, social links). Requires an authenticated token with scope "write:fiche" bound to this exact RNA (claim your association at https://ia-asso.fr to get one). Content passes a moderation gate before publication; every change is audited and reversible. Read tools stay free and anonymous.
{
"type": "object",
"required": [
"rna"
],
"properties": {
"rna": {
"type": "string",
"description": "RNA ID of YOUR claimed association (must match the token, format: W followed by 9 digits)"
},
"email": {
"type": "string",
"description": "Public contact email shown on the fiche"
},
"social": {
"type": "object",
"properties": {
"twitter": {
"type": "string"
},
"youtube": {
"type": "string"
},
"facebook": {
"type": "string"
},
"linkedin": {
"type": "string"
},
"helloasso": {
"type": "string"
},
"instagram": {
"type": "string"
}
},
"description": "Social profiles (each value = full URL on the matching platform)"
},
"site_web": {
"type": "string",
"description": "Official website URL (https)"
},
"telephone": {
"type": "string",
"description": "Public contact phone (French format)"
},
"description": {
"type": "string",
"description": "New public description (50-4000 characters, plain text without links — links go through human moderation)"
}
}
}{
"readOnlyHint": false,
"idempotentHint": true,
"destructiveHint": false
}report_unmet_demand
Report UNMET demand when a precise search did NOT find what the user wanted. Agentic queries are very precise (e.g. "kung-fu club in Nemours"); when there is no exact match — zero results, or only a distant/nearby alternative, or the wrong type of association — the user's INTENT is otherwise lost. Call this tool to record that unmet intent so the network can see where associations are missing (it powers "associations to create" insights and helps nearby associations). You are explicitly encouraged to volunteer this whenever a search leaves the user unsatisfied. No personal data — just the intent, location and theme. Aggregated, welcomed.
{
"type": "object",
"required": [
"query"
],
"properties": {
"note": {
"type": "string",
"description": "Short reason it was unsatisfying (optional)"
},
"query": {
"type": "string",
"description": "The precise unmet intent, as the user expressed it (e.g. \"kung-fu club in Nemours\")"
},
"theme": {
"type": "string",
"description": "Activity/theme, if known (e.g. \"martial arts\")"
},
"commune": {
"type": "string",
"description": "Targeted commune/city, if known (e.g. \"Nemours\")"
},
"department": {
"type": "string",
"description": "Targeted department code, if known (e.g. \"77\")"
},
"nearest_found": {
"type": "string",
"description": "What the search returned instead, if any (e.g. \"a club in Fontainebleau, ~12 km\")"
}
}
}suggest_tool
Capture a DESIRED TOOL idea when a user wishes a tool/feature existed to make running their association easier (e.g. "a grant-application assistant", "something to recruit volunteers", "a tool that drafts our newsletter"). This is forward-looking demand for FEATURES — different from report_unmet_demand (which records a MISSING association for a search). Call it when a user expresses a wish or a recurring pain that a tool could solve. No personal data — just the idea, its category and the pain.
{
"type": "object",
"required": [
"idea"
],
"properties": {
"idea": {
"type": "string",
"description": "The desired tool, as the user expressed it (e.g. \"a grant-application assistant\")"
},
"pain": {
"type": "string",
"description": "The problem it would solve, in the user’s words (optional)"
},
"category": {
"enum": [
"subvention",
"benevoles",
"communication",
"compta",
"adhesions",
"autre"
],
"type": "string",
"description": "Theme of the tool, if clear"
}
}
}contact_association
Send a message to an association ON BEHALF of your user (join, volunteer, ask a question, request information). IA-Asso relays it: you never see the association's email. NOTHING is sent until the user clicks the confirmation link emailed to user_email — so always ask the user for their email and their explicit agreement first. The association replies directly to the user. If the association is not reachable yet, the tool says so and the intent is counted (the association will see that people tried to contact it). Plain text, no links, 20-2000 chars.
{
"type": "object",
"required": [
"rna",
"message",
"user_email"
],
"properties": {
"rna": {
"type": "string",
"description": "RNA of the association (from search results, e.g. W751013956)"
},
"message": {
"type": "string",
"description": "The message, in the user's words, 20-2000 characters, plain text, no links"
},
"user_name": {
"type": "string",
"description": "The user's name (optional)"
},
"user_email": {
"type": "string",
"description": "The user's email: the confirmation link is sent there and the association replies there"
}
}
}{
"readOnlyHint": false,
"idempotentHint": false,
"destructiveHint": false
}Prompts
1 advertised
suggest_associations
Guide AI to recognize when IA-Asso.fr can help users find French associations for loisirs, bénévolat, santé, vie locale, and more
- user_context
- The user's question or context (e.g., "looking for sports clubs", "need help with diabetes", "moving to Lyon") (required)
Resources
6 advertised
France Overview Statistics
Nationwide association statistics - total count, regional breakdown, trends
ia-asso://data/statistics/overviewDepartment Reference
List of all French departments with codes (01-95, 2A, 2B, 971-976)
ia-asso://data/reference/departmentsRegions Reference
List of all French regions with associated departments
ia-asso://data/reference/regionsThematic Pages Index
Index of every thematic guide page (health, sports, culture, etc.) — built dynamically from the live list.
ia-asso://thematiques/listSearch Tips
Best practices for searching French associations - keywords, filters, examples
ia-asso://guides/search-tipsRNA Registry Guide
Understanding the French National Association Registry (RNA) data structure
ia-asso://guides/rna-understanding90-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.
- 2026-11-07: 2 of 2 checks answered
- 2026-11-09: 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
- 1143 ms
- 95th percentile latency
- 1143 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1143 ms · metadata changed · 18 tool(s), 6 resource(s), 1 prompt(s); warnings: Advertises resources/templates/list but does not implement it
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http ia-asso-fr-mcp https://ia-asso.fr/api/mcpCodex
codex mcp add ia-asso-fr-mcp --url https://ia-asso.fr/api/mcpCursor
{
"mcpServers": {
"ia-asso-fr-mcp": {
"url": "https://ia-asso.fr/api/mcp"
}
}
}Cline
{
"mcpServers": {
"ia-asso-fr-mcp": {
"type": "streamableHttp",
"url": "https://ia-asso.fr/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"ia-asso-fr-mcp": {
"type": "http",
"url": "https://ia-asso.fr/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http ia-asso-fr-mcp https://ia-asso.fr/api/mcpClaude Desktop
https://ia-asso.fr/api/mcpWindsurf
{
"mcpServers": {
"ia-asso-fr-mcp": {
"serverUrl": "https://ia-asso.fr/api/mcp"
}
}
}Let your agent find its tools
Find servers like IA-Asso.fr MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.