Picksly MCP
An official MCP server by Picksly that allows AI agents to retrieve tech product recommendations, detailed model specifications, and price comparisons based on user profiles and budgets. It provides tools to find the best choices in categories like smartphones and laptops, view individual model sheets with scores and dated prices, and compare two models side-by-side.
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://picksly.fr/api/mcpWhat you can do with it
- Find the best smartphone for a specific budget and profile
- Retrieve detailed scores and offers for a specific tech model
- Compare two tech models side-by-side with notes and prices
Source and maintenance
Protocol and capabilities
- Server
- picksly 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 3 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
3 advertised
meilleurs_choix — Top-rated models for a buyer profile
Highest-rated models of a category for a buyer profile and an optional maximum budget, with current price, merchant, purchase link and the Picksly page explaining the score.
{
"type": "object",
"required": [
"categorie"
],
"properties": {
"pays": {
"type": "string",
"description": "ISO country code of the buyer (FR, US, GB, DE, ES, IT, NL, BE, PT, and most others mapped to the nearest store). Default FR."
},
"langue": {
"enum": [
"fr",
"en",
"es",
"de",
"it",
"pt",
"nl"
],
"type": "string",
"description": "Language of the Picksly page links. Default: the page decides."
},
"nombre": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "How many models (default 3)."
},
"profil": {
"enum": [
"budget",
"smart",
"premium"
],
"type": "string",
"description": "budget, smart (default) or premium."
},
"categorie": {
"enum": [
"telephones",
"tablettes",
"ordinateurs-portables",
"montres-connectees",
"montres-sport"
],
"type": "string",
"description": "Product category page: telephones = smartphones, tablettes = tablets, ordinateurs-portables = laptops, montres-connectees = smartwatches, montres-sport = sport watches."
},
"budget_max": {
"type": "number",
"minimum": 1,
"description": "Maximum price in the market currency."
},
"reconditionne": {
"type": "boolean",
"description": "Only refurbished offers."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"categorie",
"profil",
"marche",
"devise",
"budget_max",
"modeles",
"classement_complet",
"mention"
],
"properties": {
"devise": {
"type": "string"
},
"marche": {
"type": "string"
},
"profil": {
"enum": [
"budget",
"smart",
"premium"
],
"type": "string"
},
"mention": {
"type": "string",
"description": "Affiliate disclosure."
},
"modeles": {
"type": "array",
"items": {
"type": "object",
"required": [
"rang",
"marque",
"modele",
"annee",
"note_profil",
"note_globale",
"offre",
"fiche"
],
"properties": {
"rang": {
"type": "integer"
},
"annee": {
"type": [
"string",
"null"
]
},
"fiche": {
"type": [
"string",
"null"
]
},
"offre": {
"type": [
"object",
"null"
],
"required": [
"etat",
"prix",
"devise",
"marchand",
"prix_releve_le",
"lien_achat"
],
"properties": {
"etat": {
"enum": [
"neuf",
"reconditionne"
],
"type": "string",
"description": "neuf = new, reconditionne = refurbished."
},
"prix": {
"type": "number"
},
"devise": {
"type": "string"
},
"marchand": {
"type": "string",
"description": "Store selling the offer."
},
"lien_achat": {
"type": "string",
"description": "Affiliate link to the store page, through picksly.fr."
},
"prix_releve_le": {
"type": [
"string",
"null"
],
"description": "Date (YYYY-MM-DD) the price was last read at the store."
}
}
},
"marque": {
"type": "string"
},
"modele": {
"type": "string"
},
"note_profil": {
"type": "number"
},
"note_globale": {
"type": [
"number",
"null"
],
"description": "Score 0–100, null when not enough is measured."
}
}
}
},
"remarque": {
"type": "string"
},
"categorie": {
"type": "string"
},
"budget_max": {
"type": [
"number",
"null"
]
},
"classement_complet": {
"type": "string",
"description": "Picksly page with the full ranking."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}fiche_modele — Scores and offers of one model
Scores (overall and per buyer profile), per-criterion scores, selected new and refurbished offers, for one model found by name (e.g. "Galaxy S25", "iPhone 16 Pro").
{
"type": "object",
"required": [
"categorie",
"modele"
],
"properties": {
"pays": {
"type": "string",
"description": "ISO country code of the buyer (FR, US, GB, DE, ES, IT, NL, BE, PT, and most others mapped to the nearest store). Default FR."
},
"langue": {
"enum": [
"fr",
"en",
"es",
"de",
"it",
"pt",
"nl"
],
"type": "string",
"description": "Language of the Picksly page links. Default: the page decides."
},
"modele": {
"type": "string",
"maxLength": 120,
"minLength": 2,
"description": "Model name, brand optional."
},
"categorie": {
"enum": [
"telephones",
"tablettes",
"ordinateurs-portables",
"montres-connectees",
"montres-sport"
],
"type": "string",
"description": "Product category page: telephones = smartphones, tablettes = tablets, ordinateurs-portables = laptops, montres-connectees = smartwatches, montres-sport = sport watches."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"categorie",
"marche",
"devise",
"marque",
"modele",
"annee",
"notes",
"criteres",
"offres",
"fiche",
"mention"
],
"properties": {
"annee": {
"type": [
"string",
"null"
]
},
"fiche": {
"type": "string",
"description": "Picksly page of the model, explaining how its scores are calculated."
},
"notes": {
"type": "object",
"required": [
"globale",
"budget",
"smart",
"premium"
],
"properties": {
"smart": {
"type": [
"number",
"null"
],
"description": "Score 0–100, null when not enough is measured."
},
"budget": {
"type": [
"number",
"null"
],
"description": "Score 0–100, null when not enough is measured."
},
"globale": {
"type": [
"number",
"null"
],
"description": "Score 0–100, null when not enough is measured."
},
"premium": {
"type": [
"number",
"null"
],
"description": "Score 0–100, null when not enough is measured."
}
}
},
"devise": {
"type": "string"
},
"marche": {
"type": "string"
},
"marque": {
"type": "string"
},
"modele": {
"type": "string"
},
"offres": {
"type": "array",
"items": {
"type": "object",
"required": [
"etat",
"prix",
"devise",
"marchand",
"prix_releve_le",
"lien_achat"
],
"properties": {
"etat": {
"enum": [
"neuf",
"reconditionne"
],
"type": "string",
"description": "neuf = new, reconditionne = refurbished."
},
"prix": {
"type": "number"
},
"devise": {
"type": "string"
},
"marchand": {
"type": "string",
"description": "Store selling the offer."
},
"lien_achat": {
"type": "string",
"description": "Affiliate link to the store page, through picksly.fr."
},
"prix_releve_le": {
"type": [
"string",
"null"
],
"description": "Date (YYYY-MM-DD) the price was last read at the store."
}
}
}
},
"mention": {
"type": "string",
"description": "Affiliate disclosure."
},
"criteres": {
"type": "object",
"description": "Per-criterion scores 0–100 (performance, battery…).",
"additionalProperties": {
"type": "number"
}
},
"remarque": {
"type": "string"
},
"categorie": {
"type": "string"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}comparer_modeles — Compare two models
Side-by-side scores and prices of two models of the same category, the better one for each buyer profile, and the Picksly comparison page.
{
"type": "object",
"required": [
"categorie",
"modele_a",
"modele_b"
],
"properties": {
"pays": {
"type": "string",
"description": "ISO country code of the buyer (FR, US, GB, DE, ES, IT, NL, BE, PT, and most others mapped to the nearest store). Default FR."
},
"langue": {
"enum": [
"fr",
"en",
"es",
"de",
"it",
"pt",
"nl"
],
"type": "string",
"description": "Language of the Picksly page links. Default: the page decides."
},
"modele_a": {
"type": "string",
"maxLength": 120,
"minLength": 2
},
"modele_b": {
"type": "string",
"maxLength": 120,
"minLength": 2
},
"categorie": {
"enum": [
"telephones",
"tablettes",
"ordinateurs-portables",
"montres-connectees",
"montres-sport"
],
"type": "string",
"description": "Product category page: telephones = smartphones, tablettes = tablets, ordinateurs-portables = laptops, montres-connectees = smartwatches, montres-sport = sport watches."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"categorie",
"marche",
"devise",
"a",
"b",
"meilleur_par_profil",
"comparaison",
"mention"
],
"properties": {
"a": {
"type": "object",
"required": [
"marque",
"modele",
"annee",
"notes",
"criteres",
"offres",
"fiche"
],
"properties": {
"annee": {
"type": [
"string",
"null"
]
},
"fiche": {
"type": "string",
"description": "Picksly page of the model, explaining how its scores are calculated."
},
"notes": {
"type": "object",
"required": [
"globale",
"budget",
"smart",
"premium"
],
"properties": {
"smart": {
"type": [
"number",
"null"
],
"description": "Score 0–100, null when not enough is measured."
},
"budget": {
"type": [
"number",
"null"
],
"description": "Score 0–100, null when not enough is measured."
},
"globale": {
"type": [
"number",
"null"
],
"description": "Score 0–100, null when not enough is measured."
},
"premium": {
"type": [
"number",
"null"
],
"description": "Score 0–100, null when not enough is measured."
}
}
},
"marque": {
"type": "string"
},
"modele": {
"type": "string"
},
"offres": {
"type": "array",
"items": {
"type": "object",
"required": [
"etat",
"prix",
"devise",
"marchand",
"prix_releve_le",
"lien_achat"
],
"properties": {
"etat": {
"enum": [
"neuf",
"reconditionne"
],
"type": "string",
"description": "neuf = new, reconditionne = refurbished."
},
"prix": {
"type": "number"
},
"devise": {
"type": "string"
},
"marchand": {
"type": "string",
"description": "Store selling the offer."
},
"lien_achat": {
"type": "string",
"description": "Affiliate link to the store page, through picksly.fr."
},
"prix_releve_le": {
"type": [
"string",
"null"
],
"description": "Date (YYYY-MM-DD) the price was last read at the store."
}
}
}
},
"criteres": {
"type": "object",
"description": "Per-criterion scores 0–100 (performance, battery…).",
"additionalProperties": {
"type": "number"
}
},
"remarque": {
"type": "string"
}
}
},
"b": {
"type": "object",
"required": [
"marque",
"modele",
"annee",
"notes",
"criteres",
"offres",
"fiche"
],
"properties": {
"annee": {
"type": [
"string",
"null"
]
},
"fiche": {
"type": "string",
"description": "Picksly page of the model, explaining how its scores are calculated."
},
"notes": {
"type": "object",
"required": [
"globale",
"budget",
"smart",
"premium"
],
"properties": {
"smart": {
"type": [
"number",
"null"
],
"description": "Score 0–100, null when not enough is measured."
},
"budget": {
"type": [
"number",
"null"
],
"description": "Score 0–100, null when not enough is measured."
},
"globale": {
"type": [
"number",
"null"
],
"description": "Score 0–100, null when not enough is measured."
},
"premium": {
"type": [
"number",
"null"
],
"description": "Score 0–100, null when not enough is measured."
}
}
},
"marque": {
"type": "string"
},
"modele": {
"type": "string"
},
"offres": {
"type": "array",
"items": {
"type": "object",
"required": [
"etat",
"prix",
"devise",
"marchand",
"prix_releve_le",
"lien_achat"
],
"properties": {
"etat": {
"enum": [
"neuf",
"reconditionne"
],
"type": "string",
"description": "neuf = new, reconditionne = refurbished."
},
"prix": {
"type": "number"
},
"devise": {
"type": "string"
},
"marchand": {
"type": "string",
"description": "Store selling the offer."
},
"lien_achat": {
"type": "string",
"description": "Affiliate link to the store page, through picksly.fr."
},
"prix_releve_le": {
"type": [
"string",
"null"
],
"description": "Date (YYYY-MM-DD) the price was last read at the store."
}
}
}
},
"criteres": {
"type": "object",
"description": "Per-criterion scores 0–100 (performance, battery…).",
"additionalProperties": {
"type": "number"
}
},
"remarque": {
"type": "string"
}
}
},
"devise": {
"type": "string"
},
"marche": {
"type": "string"
},
"mention": {
"type": "string",
"description": "Affiliate disclosure."
},
"categorie": {
"type": "string"
},
"comparaison": {
"type": "string",
"description": "Picksly page comparing the two models."
},
"meilleur_par_profil": {
"type": "object",
"required": [
"budget",
"smart",
"premium"
],
"properties": {
"smart": {
"type": [
"string",
"null"
],
"description": "Model with the higher score for this profile, \"egalite\" when equal, null when one score is missing."
},
"budget": {
"type": [
"string",
"null"
],
"description": "Model with the higher score for this profile, \"egalite\" when equal, null when one score is missing."
},
"premium": {
"type": [
"string",
"null"
],
"description": "Model with the higher score for this profile, \"egalite\" when equal, null when one score is missing."
}
}
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
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
- 575 ms
- 95th percentile latency
- 575 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 575 ms · metadata changed · 3 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http picksly-mcp https://picksly.fr/api/mcpCodex
codex mcp add picksly-mcp --url https://picksly.fr/api/mcpCursor
{
"mcpServers": {
"picksly-mcp": {
"url": "https://picksly.fr/api/mcp"
}
}
}Cline
{
"mcpServers": {
"picksly-mcp": {
"type": "streamableHttp",
"url": "https://picksly.fr/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"picksly-mcp": {
"type": "http",
"url": "https://picksly.fr/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http picksly-mcp https://picksly.fr/api/mcpClaude Desktop
{
"mcpServers": {
"picksly-mcp": {
"url": "https://picksly.fr/api/mcp"
}
}
}Windsurf
{
"mcpServers": {
"picksly-mcp": {
"serverUrl": "https://picksly.fr/api/mcp"
}
}
}Let your agent find its tools
Find servers like Picksly MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other commerce servers
Do you run Picksly MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.