MCP Server

AnyGett

com.anygett/anygett
Commerce & Retail Public & reachable MCP 2025-11-25

What this MCP does

Searches, creates, updates, and deletes marketplace listings for products, services, jobs, and resumes.

create_offer
Create Offer
Create a new offer in the AnyGett database. Requires a valid category_id from list_categories. Returns: { status: "created", offer_id: "<uuid>", created_by: "<agent-identifier>" } SPECIFIC ATTRIBUTES by offer_type: - product: { condition: "new"|"used"|"refurbished", brand?, sku?, weight_kg?, shipping? } - service: { service_type: "design"|"development"|"consulting"|"marketing"|..., delivery_time_days?, revisions_included?, portfolio_url? } - job: { employment_type: "full_time"|"part_time"|"contract"|"internship", remote_policy?: "fully_remote"|"hybrid"|"office_only", requirements?: { skills: [] } } - resume: { desired_position?, skills?: { technical: [], soft: [] }, experience?: [], availability?: { status: "active_looking"|"passive" } } GEO SCOPE examples: - Worldwide: { "type": "worldwide" } - Countries: { "type": "countries", "countries": ["US", "DE"], "description": "Ships to US and Germany" } CONTACT METHOD example: { "email": "contact@example.com", "telegram": "@username", "preferred": "telegram" }
Open world
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['offer_type', 'title', 'description', 'category_id'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'External URL (product page, job posting, portfolio, etc.)'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Descriptive tags, e.g. ["design", "logo", "branding"]'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Offer title (1â\x80\x93200 characters)'}, 'currency': {'type': 'string', 'default': 'USD', 'maxLength': 3, 'minLength': 3, 'description': 'ISO 4217 currency code, 3 letters: "USD", "EUR", "GBP", "RUB", etc.'}, 'geo_scope': {'type': 'object', 'required': ['type'], 'properties': {'type': {'enum': ['worldwide', 'countries', 'regions', 'local'], 'type': 'string', 'description': '"worldwide" | "countries" | "regions" | "local"'}, 'countries': {'type': 'array', 'items': {'type': 'string', 'maxLength': 2, 'minLength': 2}, 'description': 'ISO 3166-1 alpha-2 country codes, e.g. ["US", "DE", "GB"]'}, 'description': {'type': 'string', 'description': 'Human-readable geo description'}}, 'description': 'Geographic scope. Example: { "type": "worldwide" } or { "type": "countries", "countries": ["US"] }'}, 'price_max': {'type': 'number', 'minimum': 0, 'description': 'Maximum price for price ranges. Must be >= price_min if both provided.'}, 'price_min': {'type': 'number', 'minimum': 0, 'description': 'Price or minimum price (non-negative number)'}, 'expires_at': {'type': 'string', 'description': 'Offer expiry date in ISO 8601 format, e.g. "2026-12-31T23:59:59Z"'}, 'offer_type': {'enum': ['product', 'service', 'job', 'resume'], 'type': 'string', 'description': 'Type of offer: "product" | "service" | "job" | "resume"'}, 'category_id': {'type': 'string', 'description': 'Category ID from list_categories. Call list_categories first to get valid values.'}, 'description': {'type': 'string', 'maxLength': 5000, 'minLength': 1, 'description': 'Detailed offer description (1â\x80\x935000 characters)'}, 'contact_method': {'type': 'object', 'properties': {'email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}, 'phone': {'type': 'string'}, 'website': {'type': 'string', 'format': 'uri'}, 'telegram': {'type': 'string', 'description': 'Telegram handle, e.g. "@username"'}, 'preferred': {'type': 'string', 'description': 'Preferred contact: "email" | "phone" | "telegram" | "website"'}}, 'description': 'Contact details for this offer'}, 'specific_attributes': {'type': 'object', 'description': 'Type-specific structured attributes. See tool description for fields by offer_type.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}}
delete_offer
Delete Offer
Permanently delete an offer by UUID. WARNING: This action is irreversible. The offer will be removed from the database entirely. Consider using update_offer with status: "archived" instead if you want to hide the offer without deleting it. Returns { status: "deleted", offer_id: "<uuid>" } on success. Returns error with code "NOT_FOUND" if the offer doesn't exist. This permanently removes the offer. Prefer update_offer with status archived to hide without deleting.
Destructive Open world
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'confirm'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID of the offer to permanently delete. Get from search_offers results.'}, 'confirm': {'type': 'boolean', 'const': True, 'description': 'Must be exactly true to confirm deletion. Omitted or false is rejected.'}}}
get_offer_details
Get Offer Details
Get complete details of a specific offer by its UUID. Returns a single offer object with all fields (including contact_method, specific_attributes, geo_scope). Returns an error object with code "NOT_FOUND" if the ID doesn't exist.
Read only Open world Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': "UUID of the offer, e.g. '550e8400-e29b-41d4-a716-446655440000'. Get UUIDs from search_offers results."}}}
list_categories
List Categories
List all available offer categories with their IDs, slugs, and icons. Returns category records used as category_id when creating offers. Each item includes: id, slug, name_en, icon, sort_order.
Read only Open world Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
search_offers
Search Offers
Search for active offers in the AnyGett database. Returns a JSON array of matching offers with all fields parsed. Returns an empty array if no offers match. FILTERS (all optional): - query: full-text search in title + description - offer_type: "product" | "service" | "job" | "resume" - category_id: get valid IDs from list_categories - price_min / price_max: filter by price range (uses price_min field of offers) - currency: ISO 4217 code, e.g. "USD", "EUR" - limit: 1–50 results (default 10)
Read only Open world Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'number', 'default': 10, 'description': 'Number of results to return (1â\x80\x9350, default 10)'}, 'query': {'type': 'string', 'description': 'Keyword to match offer title or description'}, 'currency': {'type': 'string', 'description': 'ISO 4217 currency code, e.g. "USD", "EUR", "RUB"'}, 'price_max': {'type': 'number', 'description': "Maximum price filter (inclusive, matches against offer's price_min)"}, 'price_min': {'type': 'number', 'description': 'Minimum price filter (inclusive)'}, 'offer_type': {'enum': ['product', 'service', 'job', 'resume'], 'type': 'string', 'description': 'Filter by offer type: "product" | "service" | "job" | "resume"'}, 'category_id': {'type': 'string', 'description': 'Category ID to filter by. Get valid IDs from list_categories tool first.'}}}
update_offer
Update Offer
Partially update an existing offer by UUID. Only the fields you provide are changed — omitted fields keep their current values. Returns { status: "updated", offer_id: "<uuid>" } on success. Returns error with code "NOT_FOUND" if the offer doesn't exist. COMMON USE CASES: - Archive an offer: { id: "...", status: "archived" } - Update price: { id: "...", price_min: 200 } - Refresh expiry: { id: "...", expires_at: "2027-01-01T00:00:00Z" } - Add tags: { id: "...", tags: ["new-tag"] } Offer UUIDs come from search_offers or create_offer.
Destructive Open world Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID of the offer to update. Get from search_offers results.'}, 'url': {'type': 'string', 'format': 'uri'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Replaces the entire tags array'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'status': {'enum': ['active', 'archived', 'draft'], 'type': 'string', 'description': '"active" (visible) | "archived" (hidden) | "draft" (not published)'}, 'currency': {'type': 'string', 'maxLength': 3, 'minLength': 3}, 'geo_scope': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'price_max': {'type': 'number', 'minimum': 0}, 'price_min': {'type': 'number', 'minimum': 0}, 'expires_at': {'type': 'string', 'description': 'ISO 8601 expiry date. Set to null string to clear.'}, 'offer_type': {'enum': ['product', 'service', 'job', 'resume'], 'type': 'string'}, 'category_id': {'type': 'string', 'description': 'New category ID. Get valid IDs from list_categories.'}, 'description': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'contact_method': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'specific_attributes': {'type': 'object', 'description': 'Replaces the entire specific_attributes object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}}
Added
delete_offer
Sept. 27, 2026, 2:40 a.m.
Added
update_offer
Sept. 27, 2026, 2:40 a.m.
Added
create_offer
Sept. 27, 2026, 2:40 a.m.
Added
list_categories
Sept. 27, 2026, 2:40 a.m.
Added
get_offer_details
Sept. 27, 2026, 2:40 a.m.
Added
search_offers
Sept. 27, 2026, 2:40 a.m.