Guides, housing, jobs, events and communities for foreigners living in France, in 6 languages.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Find housing listings on Pionra by city, budget, and room count.
Locale for returned URLs and text: fr, en, zh, ar, pt or es. Optional — detected from the query when omitted.
Find housing listings on Pionra by city, budget, and room count.
| Argument | Type | Description |
|---|---|---|
| city | string | |
| lang | string | Locale for returned URLs and text: fr, en, zh, ar, pt or es. Optional — detected from the query when omitted. |
| limit | integer | |
| max_price | number | |
| min_rooms | number |
{
"type": "object",
"properties": {
"city": {
"type": "string"
},
"lang": {
"enum": [
"fr",
"en",
"zh",
"ar",
"pt",
"es"
],
"type": "string",
"description": "Locale for returned URLs and text: fr, en, zh, ar, pt or es. Optional — detected from the query when omitted."
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"max_price": {
"type": "number"
},
"min_rooms": {
"type": "number"
}
},
"additionalProperties": false
}Find job listings on Pionra by city, language, and contract type.
| Argument | Type | Description |
|---|---|---|
| city | string | |
| lang | string | Locale for returned URLs and text: fr, en, zh, ar, pt or es. Optional — detected from the query when omitted. |
| limit | integer | |
| contract | string | Optional contract type such as CDI, CDD, stage, alternance, freelance, or interim. |
| language | string | Language code expected in the listing, for example fr or en. |
{
"type": "object",
"properties": {
"city": {
"type": "string"
},
"lang": {
"enum": [
"fr",
"en",
"zh",
"ar",
"pt",
"es"
],
"type": "string",
"description": "Locale for returned URLs and text: fr, en, zh, ar, pt or es. Optional — detected from the query when omitted."
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"contract": {
"type": "string",
"description": "Optional contract type such as CDI, CDD, stage, alternance, freelance, or interim."
},
"language": {
"type": "string",
"description": "Language code expected in the listing, for example fr or en."
}
},
"additionalProperties": false
}Get a Pionra community hub plus recent posts for a given country code.
| Argument | Type | Description |
|---|---|---|
| lang | string | Locale for returned URLs and text: fr, en, zh, ar, pt or es. Optional — detected from the query when omitted. |
| limit | integer | |
| country_code* | string | Two-letter ISO country code, for example CN or MA. |
{
"type": "object",
"required": [
"country_code"
],
"properties": {
"lang": {
"enum": [
"fr",
"en",
"zh",
"ar",
"pt",
"es"
],
"type": "string",
"description": "Locale for returned URLs and text: fr, en, zh, ar, pt or es. Optional — detected from the query when omitted."
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"country_code": {
"type": "string",
"description": "Two-letter ISO country code, for example CN or MA."
}
},
"additionalProperties": false
}Fetch a full Pionra guide (Markdown body) by public id, or the best-matching guide for a search query. The text is returned in the requested locale when a translation exists.
| Argument | Type | Description |
|---|---|---|
| id | string | Optional guide public id. |
| lang | string | Locale for returned URLs and text: fr, en, zh, ar, pt or es. Optional — detected from the query when omitted. |
| query | string | Optional text query when the id is unknown. |
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Optional guide public id."
},
"lang": {
"enum": [
"fr",
"en",
"zh",
"ar",
"pt",
"es"
],
"type": "string",
"description": "Locale for returned URLs and text: fr, en, zh, ar, pt or es. Optional — detected from the query when omitted."
},
"query": {
"type": "string",
"description": "Optional text query when the id is unknown."
}
},
"additionalProperties": false
}List Pionra country communities that match a query.
| Argument | Type | Description |
|---|---|---|
| lang | string | Locale for returned URLs and text: fr, en, zh, ar, pt or es. Optional — detected from the query when omitted. |
| limit | integer | |
| query | string | Optional community, country, or diaspora query. |
{
"type": "object",
"properties": {
"lang": {
"enum": [
"fr",
"en",
"zh",
"ar",
"pt",
"es"
],
"type": "string",
"description": "Locale for returned URLs and text: fr, en, zh, ar, pt or es. Optional — detected from the query when omitted."
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"description": "Optional community, country, or diaspora query."
}
},
"additionalProperties": false
}Publish a guide, question, blog post, classified listing, marketplace item, or service offer to Pionra (enters the moderation queue before going live). Supports GUIDE, QUESTION, BLOG, ANNONCE, MARCHE, and SERVICE. Requires an API key sent as an `Authorization: Bearer pionra_sk_...` header — generate one at https://pionra.world/settings/developer. Same auth + rate limits as POST /api/ai/publish.
| Argument | Type | Description |
|---|---|---|
| city | string | Optional free-form city label for ANNONCE, MARCHE, or SERVICE posts. |
| tags | array | Optional tags. |
| type* | string | Post type. |
| price | number | Optional price amount. |
| title* | string | Post title, 5–200 characters. |
| category* | string | Active Pionra category slug (must be permitted by the API key). |
| language* | string | Content language. |
| cityScope | string | Optional city slug to scope the post. |
| expiresAt |
List upcoming Pionra events, optionally filtered by city and date.
| Argument | Type | Description |
|---|---|---|
| city | string | |
| date | string | Optional ISO date string. |
| lang | string | Locale for returned URLs and text: fr, en, zh, ar, pt or es. Optional — detected from the query when omitted. |
| limit | integer |
{
"type": "object",
"properties": {
"city": {
"type": "string"
},
"date": {
"type": "string",
"description": "Optional ISO date string."
},
"lang": {
"enum": [
"fr",
"en",
"zh",
"ar",
"pt",
"es"
],
"type": "string",
"description": "Locale for returned URLs and text: fr, en, zh, ar, pt or es. Optional — detected from the query when omitted."
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1
}
},
"additionalProperties": false
}Search Pionra guides, housing, jobs, communities, events, and directory pages with citation-ready links.
| Argument | Type | Description |
|---|---|---|
| lang | string | Locale for returned URLs and text: fr, en, zh, ar, pt or es. Optional — detected from the query when omitted. |
| limit | integer | |
| query* | string | Natural-language search query. |
| intent | string | Optional result focus. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"lang": {
"enum": [
"fr",
"en",
"zh",
"ar",
"pt",
"es"
],
"type": "string",
"description": "Locale for returned URLs and text: fr, en, zh, ar, pt or es. Optional — detected from the query when omitted."
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"description": "Natural-language search query."
},
"intent": {
"enum": [
"all",
"housing",
"jobs",
"community",
"visa"
],
"type": "string",
"description": "Optional result focus."
}
},
"additionalProperties": false
}| string |
| Optional ISO date or date-time when the post should expire. |
| jobRemote | string | Optional remote mode label, for example onsite, hybrid, or remote. |
| coverEmoji | string | Optional cover emoji, up to 16 characters. |
| negotiable | boolean | Optional negotiable flag for classified-style posts. |
| cover_emoji | string | Alias for coverEmoji. |
| housingType | string | Optional housing type, for example studio, chambre, or colocation. |
| bodyMarkdown* | string | Post body in Markdown, 20–20000 characters. |
| countryScope | string | Optional ISO country code to scope the post. |
| housingRooms | number | Optional room count. Stored as an integer. |
| housing_city | string | Alias for city. |
| housing_rent | number | Alias for price. |
| jobSalaryMax | number | Optional maximum salary. Stored as an integer. |
| jobSalaryMin | number | Optional minimum salary. Stored as an integer. |
| locationCity | string | Optional location label shown on the post; defaults to city. |
| metroStation | string | Optional nearby metro or transit station. |
| coverImageUrl | string | Optional cover image. Must be a public https:// URL to an image (jpeg/png/webp/gif/avif, max 8MB). Pionra fetches it server-side and stores it as the post cover; takes precedence over coverEmoji. |
| housing_metro | string | Alias for metroStation. |
| priceCurrency | string | Optional ISO currency code. Defaults to EUR for ANNONCE, MARCHE, and SERVICE. |
| housingDeposit | number | Optional housing deposit amount. |
| housingSurface | number | Optional housing surface area. Stored as an integer. |
| cover_image_url | string | Alias for coverImageUrl. |
| jobContractType | string | Optional job or service contract type. |
| housingFurnished | boolean | Optional furnished flag. |
| housingAvailableFrom | string | Optional ISO date or date-time when the housing becomes available. |
| housing_available_at | string | Alias for housingAvailableFrom. |
{
"type": "object",
"required": [
"type",
"category",
"title",
"bodyMarkdown",
"language"
],
"properties": {
"city": {
"type": "string",
"description": "Optional free-form city label for ANNONCE, MARCHE, or SERVICE posts."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional tags."
},
"type": {
"enum": [
"GUIDE",
"QUESTION",
"BLOG",
"ANNONCE",
"MARCHE",
"SERVICE"
],
"type": "string",
"description": "Post type."
},
"price": {
"type": "number",
"description": "Optional price amount."
},
"title": {
"type": "string",
"description": "Post title, 5–200 characters."
},
"category": {
"type": "string",
"description": "Active Pionra category slug (must be permitted by the API key)."
},
"language": {
"enum": [
"fr",
"en",
"zh",
"ar",
"pt",
"es"
],
"type": "string",
"description": "Content language."
},
"cityScope": {
"type": "string",
"description": "Optional city slug to scope the post."
},
"expiresAt": {
"type": "string",
"description": "Optional ISO date or date-time when the post should expire."
},
"jobRemote": {
"type": "string",
"description": "Optional remote mode label, for example onsite, hybrid, or remote."
},
"coverEmoji": {
"type": "string",
"description": "Optional cover emoji, up to 16 characters."
},
"negotiable": {
"type": "boolean",
"description": "Optional negotiable flag for classified-style posts."
},
"cover_emoji": {
"type": "string",
"description": "Alias for coverEmoji."
},
"housingType": {
"type": "string",
"description": "Optional housing type, for example studio, chambre, or colocation."
},
"bodyMarkdown": {
"type": "string",
"description": "Post body in Markdown, 20–20000 characters."
},
"countryScope": {
"type": "string",
"description": "Optional ISO country code to scope the post."
},
"housingRooms": {
"type": "number",
"description": "Optional room count. Stored as an integer."
},
"housing_city": {
"type": "string",
"description": "Alias for city."
},
"housing_rent": {
"type": "number",
"description": "Alias for price."
},
"jobSalaryMax": {
"type": "number",
"description": "Optional maximum salary. Stored as an integer."
},
"jobSalaryMin": {
"type": "number",
"description": "Optional minimum salary. Stored as an integer."
},
"locationCity": {
"type": "string",
"description": "Optional location label shown on the post; defaults to city."
},
"metroStation": {
"type": "string",
"description": "Optional nearby metro or transit station."
},
"coverImageUrl": {
"type": "string",
"format": "uri",
"description": "Optional cover image. Must be a public https:// URL to an image (jpeg/png/webp/gif/avif, max 8MB). Pionra fetches it server-side and stores it as the post cover; takes precedence over coverEmoji."
},
"housing_metro": {
"type": "string",
"description": "Alias for metroStation."
},
"priceCurrency": {
"type": "string",
"description": "Optional ISO currency code. Defaults to EUR for ANNONCE, MARCHE, and SERVICE."
},
"housingDeposit": {
"type": "number",
"description": "Optional housing deposit amount."
},
"housingSurface": {
"type": "number",
"description": "Optional housing surface area. Stored as an integer."
},
"cover_image_url": {
"type": "string",
"format": "uri",
"description": "Alias for coverImageUrl."
},
"jobContractType": {
"type": "string",
"description": "Optional job or service contract type."
},
"housingFurnished": {
"type": "boolean",
"description": "Optional furnished flag."
},
"housingAvailableFrom": {
"type": "string",
"description": "Optional ISO date or date-time when the housing becomes available."
},
"housing_available_at": {
"type": "string",
"description": "Alias for housingAvailableFrom."
}
},
"additionalProperties": false
}