MCPサーバー

IA-Asso.fr — French Associations Registry

io.github.wellknownmcp/ia-asso

このMCPでできること

Searches and profiles French associations, including recognized public-interest organizations, subsidies, volunteering opportunities, geographic statistics, and user-approved contact requests.

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"}}}
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 (Ã\xa0 distance) â\x80\x94 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_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.'}}}
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_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_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_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': {}}
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': {}}
get_recognized_associations
List associations officially recognized as utilite publique (RUP) by French state decree. Currently 1,966 RUP fiches (as of 2026-09-23). 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"'}}}
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")'}}}
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 â\x80\x94 links go through human moderation)'}}}
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")'}}}
search_associations
Search for French associations using full-text search. Queries the RNA (Répertoire National des Associations) database with 2.03M+ 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", "Ã\x8ele-de-France")'}, 'department': {'type': 'string', 'description': 'Filter by department code (e.g., "69" for Rhône, "75" for Paris)'}}}
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.'}}}
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 (834 enriched, 1,966 RUP) vs 2.03M+ 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"'}}}
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.
入力スキーマ
{'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'}}}
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â\x80\x99s words (optional)'}, 'category': {'enum': ['subvention', 'benevoles', 'communication', 'compta', 'adhesions', 'autre'], 'type': 'string', 'description': 'Theme of the tool, if clear'}}}
変更
get_recognized_associations
2026年9月25日2:59
変更
get_recognized_associations
2026年9月21日2:56
追加
contact_association
2026年9月17日12:53
追加
suggest_tool
2026年9月17日12:53
追加
report_unmet_demand
2026年9月17日12:53
追加
publish_association_update
2026年9月17日12:53
追加
submit_contact_request
2026年9月17日12:53
追加
get_recognized_associations
2026年9月17日12:53
追加
search_premium_associations
2026年9月17日12:53
追加
get_map_data
2026年9月17日12:53
追加
find_volunteering_missions
2026年9月17日12:53
追加
get_association
2026年9月17日12:53
追加
get_association_subventions
2026年9月17日12:53
追加
get_similar_associations
2026年9月17日12:53
追加
get_health_associations
2026年9月17日12:53
追加
search_near_location
2026年9月17日12:53
追加
get_platform_stats
2026年9月17日12:53
追加
get_france_overview
2026年9月17日12:53
追加
get_department_stats
2026年9月17日12:53
追加
search_associations
2026年9月17日12:53