OpenSearch Solution Architect MCP server — guides you from requirements to a running search setup
Project description
OpenSearch Launchpad
An AI-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.
Works with Claude Code, Cursor, Kiro, and any agent that supports the Agent Skills specification.
Available Skills
| Skill | Category | Description |
|---|---|---|
| opensearch-launchpad | General | Get started with OpenSearch. Guides you through semantic, hybrid, neural, and agentic search setup with local execution and optional AWS deployment. |
More skills coming soon — contributions welcome! See Contributing a New Skill.
Install a Skill
Install any skill into your project using npx skills:
npx skills add opensearch-project/opensearch-launchpad
This discovers skills under skills/ and symlinks them into your agent's skill directory (.claude/skills/, .cursor/skills/, etc.). Works with Claude Code, Cursor, OpenCode, Codex, and many more.
Install options
# Install to a specific agent
npx skills add opensearch-project/opensearch-launchpad -a claude-code
# Install globally (available across all projects)
npx skills add opensearch-project/opensearch-launchpad -g
# Install to all detected agents
npx skills add opensearch-project/opensearch-launchpad --all
# List available skills before installing
npx skills add opensearch-project/opensearch-launchpad --list
After installing, try:
"I want to build a semantic search app with 10M docs"
Your agent reads the skill instructions and runs the scripts directly — no MCP server required.
Install in Kiro (Kiro Power)
OpenSearch Launchpad Power — Add this power source URL in Kiro to get started.
- Open Kiro
- Go to Powers panel
- Click Add Power and paste:
https://github.com/opensearch-project/opensearch-launchpad/tree/main/kiro/opensearch-launchpad - Kiro reads
POWER.mdand connects the MCP server automatically — no local clone required.
How It Works
| Path | IDEs | How it connects |
|---|---|---|
| Agent Skill | Claude Code, Cursor, Kiro, OpenCode, Codex | Agent reads SKILL.md and runs scripts directly via the terminal |
| Kiro Power | Kiro | Kiro runs the MCP server (opensearch-launchpad) which exposes phase tools |
The Agent Skill path uses standalone scripts with zero dependency on the MCP server or opensearch_orchestrator package. The Kiro Power path is maintained for backward compatibility with existing Kiro Power installations.
Prerequisites
- Python 3.11+ and
uvinstalled - 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 query pattern (keyword, semantic, hybrid, agentic) and deployment preference |
| 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, just describe what you want to build:
"Help me build a hybrid search app for my product catalog"
The agent guides you through each phase interactively.
Repo Structure
skills/ # All agent skills
opensearch-launchpad/ # Get started with OpenSearch
SKILL.md # Skill instructions (< 500 lines)
scripts/ # Execution scripts
references/ # Loaded on demand per phase
search-relevance/ # Future: query tuning, ranking, evaluation
log-analytics/ # Future: log ingestion, parsing, dashboards
observability/ # Future: traces, metrics, monitoring
kiro/ # Kiro Power integrations
opensearch_orchestrator/ # MCP server (Kiro Power path only)
tests/ # All tests
Contributing
We welcome new skills! See the Developer Guide for step-by-step instructions on creating a skill, the SKILL.md template, conventions, testing, and the release process.
AWS Setup (Optional)
Phase 5 of opensearch-launchpad 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-knowledge-mcp-server": {
"command": "uvx",
"args": ["fastmcp", "run", "https://knowledge-mcp.global.api.aws"],
"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+P → Kiro: 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"
}
}
}
}
License
This project is licensed under the Apache License, Version 2.0. See LICENSE.txt for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file opensearch_launchpad-0.1.3.tar.gz.
File metadata
- Download URL: opensearch_launchpad-0.1.3.tar.gz
- Upload date:
- Size: 2.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb18e6aecdd38373c70f5b0d55a33516c39dfe0efa0ac1d0dd52dabe2658cb6b
|
|
| MD5 |
73e34eace614ab6627c105e4c57f2bf0
|
|
| BLAKE2b-256 |
e8d8df8b2ed92ada272e377d5583d581fbe9373101f189931a5fbb216cdbb3cf
|
Provenance
The following attestation bundles were made for opensearch_launchpad-0.1.3.tar.gz:
Publisher:
release-drafter.yml on opensearch-project/opensearch-launchpad
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opensearch_launchpad-0.1.3.tar.gz -
Subject digest:
fb18e6aecdd38373c70f5b0d55a33516c39dfe0efa0ac1d0dd52dabe2658cb6b - Sigstore transparency entry: 1201488877
- Sigstore integration time:
-
Permalink:
opensearch-project/opensearch-launchpad@17808b14925b0a615799671dfcc6e4c7114177fb -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/opensearch-project
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-drafter.yml@17808b14925b0a615799671dfcc6e4c7114177fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file opensearch_launchpad-0.1.3-py3-none-any.whl.
File metadata
- Download URL: opensearch_launchpad-0.1.3-py3-none-any.whl
- Upload date:
- Size: 2.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64b2c0893c110762a263d33c6ecdae544a3e47fe3c690e8bc3ec5cbd2b15aa1a
|
|
| MD5 |
9c7cdf27915b25f87f11fc8c115b9720
|
|
| BLAKE2b-256 |
3471c2d08c9b899bdc119010a15f7d93f96a1df57dee73a9c4fee94dd028ae7b
|
Provenance
The following attestation bundles were made for opensearch_launchpad-0.1.3-py3-none-any.whl:
Publisher:
release-drafter.yml on opensearch-project/opensearch-launchpad
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
opensearch_launchpad-0.1.3-py3-none-any.whl -
Subject digest:
64b2c0893c110762a263d33c6ecdae544a3e47fe3c690e8bc3ec5cbd2b15aa1a - Sigstore transparency entry: 1201488905
- Sigstore integration time:
-
Permalink:
opensearch-project/opensearch-launchpad@17808b14925b0a615799671dfcc6e4c7114177fb -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/opensearch-project
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-drafter.yml@17808b14925b0a615799671dfcc6e4c7114177fb -
Trigger Event:
push
-
Statement type: