MCP server: One MCP server.

Partle

@rubenaylaRun by its publisher: served from their own domain, namespace checked by the registry.MCP server · External

Search products in nearby stores. Agents can also list items for sale on a user's behalf.

Online shoppingv1.2.0Apache-2.0Python
Freeno charge per call

One address for any MCP client. No sign-in needed on this server.

What it does

9 read12 act

Grouped by tool name. At most: moves money, runs code or commands, deletes data, or sends messages for you.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Tools

21 · grouped by tool name · checked 11 Oct 2026

Read · 9Look things up

  • search_products
  • get_product
  • search_stores
  • get_store
  • get_stats
  • search_wanted
  • get_my_products
  • get_upload_url
  • get_my_inventory

Act · 12Change something

  • create_buy_request
  • submit_feedback
  • create_product
  • update_product
  • delete_product
  • delete_product_image
  • upload_product_image
  • add_inventory_item
  • update_inventory_item
  • delete_inventory_item
  • mark_for_sale
  • mark_sold
Try it in the Inspector
README4 min read

Partle Marketplace MCP Server

Verified on MseeP

Model Context Protocol server for the Partle marketplace — let your AI shop here: search products and stores, get prices and purchase links, or ask it to add a listing for you, all without leaving your assistant.

Live product and store coverage is available through the get_stats tool. Public catalogue reads need no auth. Writes and private inventory reads need OAuth or a pk_… API key.

Two ways to run it

Point your MCP client at:

https://partle.rubenayla.xyz/mcp/

That's it. Streamable HTTP transport, MCP spec 2025-06-18. Per-client install instructions: /documentation/mcp-setup/.

Local stdio (for clients that prefer installable servers, or for Glama / Smithery scoring)

bash
pip install partle-mcp
partle-mcp

Or with uvx (no install):

bash
uvx partle-mcp

Or with Docker:

bash
docker run --rm -i ghcr.io/rubenayla/partle-mcp

The stdio package proxies to the public REST API at https://partle.rubenayla.xyz, so you don't need a database or local backend.

Claude Desktop / Claude Code (stdio)

json
{
  "mcpServers": {
    "partle": {
      "command": "uvx",
      "args": ["partle-mcp"]
    }
  }
}

Tools (20 total)

Read (no auth)

ToolPurpose
search_productsSearch the catalog by name, price range, tags, store. Supports cross-language semantic search.
get_productFull record for one product by ID.
search_storesSearch/list stores by name or address.
get_storeFull record for one store by ID.
get_statsPlatform-wide totals.
search_wantedBrowse public buy requests at /wanted — things people are looking to buy but haven't found. Cross-reference against search_products to offer matches.

Write (authenticated)

Two ways to authenticate, in preference order:

  1. OAuth (recommended) — when you add Partle as a custom connector in claude.ai or any MCP client that supports OAuth, the client walks you through a one-click consent screen and attaches a bearer token automatically. Scopes: products:read, products:write, inventory:read, inventory:write. Revoke at /account → Connected apps. RFC 9728 metadata at /.well-known/oauth-protected-resource; RFC 7591 dynamic client registration at /oauth/register.
  2. API key (fallback) — pass an api_key parameter to any write tool. Generate at /account → API Keys. Use this when your client doesn't support OAuth (raw scripts, programmatic agents).

Products — public catalog listings.

ToolPurpose
create_productAdd a new listing. Set verified=false when an AI is proposing on behalf of an unconfirmed human.
update_productEdit a listing you own.
delete_productRemove a listing you own.
upload_product_imageAttach an image (base64 or URL).
delete_product_imageRemove an image from a product.
get_my_productsList products you've created.

The remote HTTP server also offers get_upload_url (re-fetches a signed upload URL for an existing product). Not exposed in this stdio package — use the remote server if you need it.

Inventory — private workshop tracking (owned / wanted / for_sale / sold / discarded). Private to the owner; does not appear on the public /wanted feed.

ToolPurpose
get_my_inventoryList your inventory items. Filterable by status, project, free text.
add_inventory_itemAdd a row in any lifecycle state.
update_inventory_itemPatch any field.
delete_inventory_itemPermanently remove a row.
mark_for_saleConvenience: flip an owned item to for_sale and set an asking price.
mark_soldConvenience: flip a for_sale item to sold.

Buy requests — public demand-side posts on /wanted. Independent of personal inventory.

ToolPurpose
create_buy_requestPost a public buy request (name, description, quantity, optional max_price and contact).

Feedback

ToolPurpose
submit_feedbackSend freeform feedback about your integration experience.

Public REST API

Same data, also reachable as plain HTTP for clients without MCP support:

  • GET /v1/public/products?q=cerrojo&limit=10 — search products
  • GET /v1/public/stores?q=Madrid&limit=10 — search stores
  • GET /v1/public/wanted?q=bolt&limit=10 — list open public buy requests
  • GET /v1/public/stats — platform totals
  • POST /v1/public/feedback — submit feedback

Base URL: https://partle.rubenayla.xyz. Rate-limited to 100 req/hour per IP.

Full docs: /documentation/ · OpenAPI: /openapi.json · Discovery: /.well-known/mcp.json.

Example

You: "Use Partle to find a drill under €50."

Claude: (calls search_products(query="drill", max_price=50))

Returns Blackspur 13pc High Speed Drill Bit Set at €4.99 (Lenehans, IE), Flotec Drill Pump 225 GPH at €17.14 (Kooyman Megastore, NL), and a few more — each with a partle_url to view the listing.

More examples in the setup guide.

License

Apache-2.0 — see LICENSE.

Similar modules

Browse Online shopping