Skip to content

janellearita/opensearch-launchpad

 
 

Repository files navigation

OpenSearch Launchpad

An MCP-powered assistant that guides you from initial requirements to a running OpenSearch search setup. It collects a sample document, gathers preferences, plans a search architecture, and executes the plan — creating indices, ML models, ingest pipelines, and a local search UI — with optional deployment to Amazon OpenSearch Service or Serverless.


Install in Kiro

OpenSearch Launchpad Power — Add this power source URL in Kiro to get started.

  1. Open Kiro
  2. Go to Powers panel
  3. Click Add Power and paste:
    https://github.com/opensearch-project/opensearch-launchpad/tree/main/kiro/opensearch-launchpad
    
  4. Kiro reads POWER.md and connects the MCP server automatically — no local clone required.

Prerequisites

  • Python 3.11+ and uv installed
  • Docker installed and running (Download Docker)
  • For AWS deployment (optional): AWS credentials configured — see AWS Setup

What It Does

OpenSearch Launchpad walks you through five phases to build a production-ready search solution:

Phase What happens
1. Sample Document Provide a sample document (built-in IMDB dataset, local file, URL, existing index, or paste JSON)
2. Preferences Set your budget, performance priority, query pattern, and deployment preferences
3. Plan An AI planner designs your search architecture (BM25, semantic, hybrid, or agentic)
4. Execute Automatically creates OpenSearch indices, ML models, ingest pipelines, and a search UI locally
4.5 Evaluate (Optional) Evaluate search quality and iterate on the architecture
5. Deploy (Optional) Deploy to Amazon OpenSearch Service or Amazon OpenSearch Serverless

Quick Start

After installing the power, try:

"I want to build a semantic search app with 10M docs"

Kiro will guide you through each phase interactively.


AWS Setup (Optional)

Phase 5 deploys your local search solution to AWS. This is optional — Phases 1–4 work entirely locally.

1. Add AWS MCP Servers

Add these servers to the power's mcp.json configuration in Kiro:

{
  "mcpServers": {
    "awslabs.aws-api-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.aws-api-mcp-server@latest"],
      "env": { "FASTMCP_LOG_LEVEL": "ERROR" }
    },
    "aws-docs": {
      "command": "uvx",
      "args": ["awslabs.aws-documentation-mcp-server@latest"],
      "env": { "FASTMCP_LOG_LEVEL": "ERROR" }
    },
    "opensearch-mcp-server": {
      "command": "uvx",
      "args": ["opensearch-mcp-server-py@latest"],
      "env": { "FASTMCP_LOG_LEVEL": "ERROR" }
    }
  }
}

2. Configure AWS Credentials

aws configure

Or set environment variables:

export AWS_ACCESS_KEY_ID="your-access-key"
export AWS_SECRET_ACCESS_KEY="your-secret-key"
export AWS_REGION="us-east-1"

3. Required IAM Permissions

Your AWS user/role needs permissions for:

  • OpenSearch Service — create/manage domains and serverless collections
  • IAM — create and manage roles for OpenSearch
  • Bedrock — invoke models (for semantic and agentic search)

Troubleshooting

spawn uvx ENOENT or Docker not found

Some MCP clients cannot find uvx or docker from the JSON config environment.

Fix: Locate the full paths and add them to env.PATH in your MCP config:

which uvx      # e.g. /Users/you/.local/bin/uvx
which docker   # e.g. /usr/local/bin/docker

Then in Kiro: Cmd+Shift+PKiro: Open user MCP config (JSON) and update:

{
  "mcpServers": {
    "opensearch-launchpad": {
      "command": "uvx",
      "args": ["opensearch-launchpad@latest"],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR",
        "PATH": "/usr/local/bin:/usr/bin:/bin:/Users/you/.local/bin"
      }
    }
  }
}

Contributing

See the Developer Guide for local development setup, MCP server internals, tool reference, and the release process.

License

This project is licensed under the Apache License, Version 2.0. See LICENSE.txt for details.

About

Kiro Power for OpenSearch

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 96.9%
  • JavaScript 1.7%
  • CSS 1.3%
  • HTML 0.1%