A Model Context Protocol (MCP) server that provides search functionality for AWS Lambda Powertools documentation across multiple runtimes.
Follow the installation instructions please follow the Model Context Protocol Quickstart For Claude Desktop users. You will need to add a section tothe MCP configuration file as follows:
{
"mcpServers": {
"powertools": {
"command": "npx",
"args": [
"-y",
"@serverless-dna/powertools-mcp"
]
}
}
}
This project implements an MCP server that enables Large Language Models (LLMs) to search through AWS Lambda Powertools documentation. It uses lunr.js for efficient local search capabilities and provides results that can be summarized and presented to users.
- MCP-compliant server for integration with LLMs
- Local search using lunr.js indexes
- Support for multiple runtimes:
- Python
- TypeScript
- Java
- .NET
- Version-specific documentation search (defaults to latest)
# Install dependencies
pnpm install
# Build the project
pnpm build
The server can be run as an MCP server that communicates over stdio:
npx -y @serverless-dna/powertools-mcp
The server provides a search_docs
tool with the following parameters:
-
search
: The search query string -
runtime
: The Powertools runtime to search (python, typescript, java, dotnet) -
version
: Optional version string (defaults to 'latest')
-
src/
: Source code-
index.ts
: Main server implementation -
searchIndex.ts
: Search index management
-
-
indexes/
: Pre-built lunr.js search indexes for each runtime -
dist/
: Compiled output
pnpm build
pnpm test
During development you can run the MCP Server with Claude Desktop using the following configuration.
The configuration below shows running in windows claude desktop while developing using the Windows Subsystem for Linux (WSL). Mac or Linux environments you can run in a similar way.
The output is a bundled file which enables Node installed in windows to run the MCP server since all dependencies are bundled.
{
"mcpServers": {
"powertools": {
"command": "node",
"args": [
"\\\\wsl$\\Ubuntu\\home\\walmsles\\dev\\serverless-dna\\powertools-mcp\\dist\\bundle.js"
]
}
}
}
- The server loads pre-built lunr.js indexes for each supported runtime
- When a search request is received, it:
- Loads the appropriate index based on runtime and version (currently fixed to latest)
- Performs the search using lunr.js
- Returns the search results as JSON
- The LLM can then use these results to find relevant documentation pages
MIT License
Copyright (c) 2025 Michael Walmsley, ServerlessDNA.com