Sofala MCP
An official MCP server for the Sofala marketplace that enables AI agents to list items from photos, search for goods, message sellers, make offers, and manage deals with handover codes, supporting both authenticated and public read-only access.
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://sofala.market/mcp/publicWhat you can do with it
- List items for sale using a photo and description
- Search marketplace listings by category and location
- Message sellers and negotiate offers
- Manage deals and confirm handovers
Source and maintenance
Protocol and capabilities
- Server
- sofala.market 1.1.0+064fc4aa
- MCP protocol
- 2025-06-18
- Tools
- 5 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
5 advertised
get_sofala_overview — About Sofala
What Sofala is, how selling and buying work, fees, payments, safety and ratings. Use it to answer questions about Sofala.
{
"type": "object",
"properties": [],
"additionalProperties": false
}{
"title": "About Sofala",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_categories — Categories
All Sofala categories with their slugs (for search_listings and create_listing): top level, subcategories and, where buyers look for something specific, a third level. Then call get_category for the one you pick.
{
"type": "object",
"properties": [],
"additionalProperties": false
}{
"title": "Categories",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_category — Category details
One category: where it sits, its subcategories, and its attributes (item specifics) with their allowed values, units and suggestions, and which ones a listing must have. Call it before create_listing, and to search by attributes.
{
"type": "object",
"required": [
"category"
],
"properties": {
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "For real estate: the country, whose rules (energy rating, licences, disclosures) apply."
},
"category": {
"type": "string",
"maxLength": 60,
"description": "Category slug from list_categories."
}
},
"additionalProperties": false
}{
"title": "Category details",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_listings — Search listings
Search the live listings. Give a few words, and filters when the person mentioned them. Returns a few well-matched results; compare them for the person rather than listing everything. Prices are in each listing's own currency.
{
"type": "object",
"properties": {
"city": {
"type": "string",
"maxLength": 80
},
"near": {
"type": "object",
"required": [
"lat",
"lng"
],
"properties": {
"lat": {
"type": "number"
},
"lng": {
"type": "number"
},
"radius_km": {
"type": "number",
"maximum": 1000,
"minimum": 1
}
},
"description": "Only listings with a map pin within radius_km (default 25) of this point."
},
"page": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"sort": {
"enum": [
"relevance",
"newest",
"price_low",
"price_high",
"nearest"
],
"type": "string",
"description": "nearest needs near."
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Default 10."
},
"query": {
"type": "string",
"maxLength": 200,
"description": "Words to look for, e.g. \"bamboo armchair\"."
},
"region": {
"type": "string",
"maxLength": 80,
"description": "State, province or district (matches part of it)."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO country code."
},
"category": {
"type": "string",
"maxLength": 60,
"description": "Category slug from list_categories (top level includes its subcategories)."
},
"delivery": {
"enum": [
"pickup",
"shipping"
],
"type": "string",
"description": "Only listings offering this."
},
"condition": {
"type": "array",
"items": {
"enum": [
"new",
"like_new",
"good",
"fair",
"for_parts"
],
"type": "string"
},
"maxItems": 5
},
"max_price": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Highest price."
},
"min_price": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Lowest price."
},
"attributes": {
"type": "object",
"description": "Filters on attributes from get_category, such as {\"make\": \"BMW\", \"year\": {\"min\": 2015}, \"fuel\": [\"diesel\", \"hybrid\"]} or {\"grading\": \"psa\", \"grade\": {\"min\": 9}}: enum and text take a value or a list (text matches part of the value), numbers {\"min\": , \"max\": } or one value, yes/no true or false, fits_years one year (parts that fit it), serial {\"max\": } (print run).",
"additionalProperties": true
},
"postal_code": {
"type": "string",
"maxLength": 12,
"description": "Postal code or its start, such as 1100 or SW1A."
}
},
"additionalProperties": false
}{
"title": "Search listings",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_listing — Listing details
Everything about one listing: description, photos, delivery and payment, and the seller with their ratings.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"minimum": 1,
"description": "Listing id from search_listings."
}
},
"additionalProperties": false
}{
"title": "Listing details",
"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
- 998 ms
- 95th percentile latency
- 998 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 998 ms · metadata changed · 5 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http sofala-mcp https://sofala.market/mcp/publicCodex
codex mcp add sofala-mcp --url https://sofala.market/mcp/publicCursor
{
"mcpServers": {
"sofala-mcp": {
"url": "https://sofala.market/mcp/public"
}
}
}Cline
{
"mcpServers": {
"sofala-mcp": {
"type": "streamableHttp",
"url": "https://sofala.market/mcp/public",
"disabled": false
}
}
}VS Code
{
"servers": {
"sofala-mcp": {
"type": "http",
"url": "https://sofala.market/mcp/public"
}
}
}Gemini CLI
gemini mcp add --transport http sofala-mcp https://sofala.market/mcp/publicClaude Desktop
{
"mcpServers": {
"sofala-mcp": {
"url": "https://sofala.market/mcp/public"
}
}
}Windsurf
{
"mcpServers": {
"sofala-mcp": {
"serverUrl": "https://sofala.market/mcp/public"
}
}
}Let your agent find its tools
Find servers like Sofala 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 Sofala 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.