MCP (Model Context Protocol) server for RAGStack knowledge bases. Enables AI assistants to search, chat, upload documents/media, and scrape your knowledge base. Get your GraphQL endpoint and API key from the RAGStack dashboard: Settings → API Key Edit ~/Library/Application Support/Claude/claudedesktopconfig.json (Mac) or %APPDATA%\Claude\claudedesktopconfig.json (Windows): Edit ~/.aws/amazonq/mcp.
Add this skill
npx mdskills install HatmanStack/ragstack-lambdaComprehensive MCP server with extensive RAG capabilities, clear tool descriptions, and excellent setup docs
MCP (Model Context Protocol) server for RAGStack knowledge bases. Enables AI assistants to search, chat, upload documents/media, and scrape your knowledge base.
# Using uvx (recommended - no install needed)
uvx ragstack-mcp
# Or install globally
pip install ragstack-mcp
Get your GraphQL endpoint and API key from the RAGStack dashboard: Settings → API Key
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"ragstack-kb": {
"command": "uvx",
"args": ["ragstack-mcp"],
"env": {
"RAGSTACK_GRAPHQL_ENDPOINT": "https://xxx.appsync-api.us-east-1.amazonaws.com/graphql",
"RAGSTACK_API_KEY": "da2-xxxxxxxxxxxx"
}
}
}
}
Edit ~/.aws/amazonq/mcp.json:
{
"mcpServers": {
"ragstack-kb": {
"command": "uvx",
"args": ["ragstack-mcp"],
"env": {
"RAGSTACK_GRAPHQL_ENDPOINT": "https://xxx.appsync-api.us-east-1.amazonaws.com/graphql",
"RAGSTACK_API_KEY": "da2-xxxxxxxxxxxx"
}
}
}
}
Open Settings → MCP Servers → Add Server, or edit .cursor/mcp.json:
{
"ragstack-kb": {
"command": "uvx",
"args": ["ragstack-mcp"],
"env": {
"RAGSTACK_GRAPHQL_ENDPOINT": "https://xxx.appsync-api.us-east-1.amazonaws.com/graphql",
"RAGSTACK_API_KEY": "da2-xxxxxxxxxxxx"
}
}
}
Edit .vscode/cline_mcp_settings.json:
{
"mcpServers": {
"ragstack-kb": {
"command": "uvx",
"args": ["ragstack-mcp"],
"env": {
"RAGSTACK_GRAPHQL_ENDPOINT": "https://xxx.appsync-api.us-east-1.amazonaws.com/graphql",
"RAGSTACK_API_KEY": "da2-xxxxxxxxxxxx"
}
}
}
}
Edit ~/.continue/config.json, add to mcpServers array:
{
"mcpServers": [
{
"name": "ragstack-kb",
"command": "uvx",
"args": ["ragstack-mcp"],
"env": {
"RAGSTACK_GRAPHQL_ENDPOINT": "https://xxx.appsync-api.us-east-1.amazonaws.com/graphql",
"RAGSTACK_API_KEY": "da2-xxxxxxxxxxxx"
}
}
]
}
Search for relevant documents in the knowledge base.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | Yes | - | The search query |
max_results | int | No | 5 | Maximum results to return |
Ask questions and get AI-generated answers with source citations.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | Yes | - | Your question |
conversation_id | string | No | null | ID to maintain conversation context |
Scrape a website into the knowledge base.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | Yes | - | Starting URL to scrape |
max_pages | int | No | 50 | Maximum pages to scrape |
max_depth | int | No | 3 | How deep to follow links (0 = start page only) |
scope | string | No | "HOSTNAME" | SUBPAGES, HOSTNAME, or DOMAIN |
include_patterns | list[str] | No | null | Only scrape URLs matching these glob patterns |
exclude_patterns | list[str] | No | null | Skip URLs matching these glob patterns |
scrape_mode | string | No | "AUTO" | AUTO, FAST (HTTP only), or FULL (browser) |
cookies | string | No | null | Cookie string for authenticated sites |
force_rescrape | bool | No | false | Re-scrape even if content unchanged |
Scope values:
SUBPAGES - Only URLs under the starting pathHOSTNAME - All pages on the same subdomainDOMAIN - All subdomains of the domainScrape mode values:
AUTO - Try fast mode, fall back to full for SPAsFAST - HTTP only, faster but may miss JavaScript contentFULL - Uses headless browser, handles all JavaScriptCheck the status of a scrape job.
| Parameter | Type | Required | Description |
|---|---|---|---|
job_id | string | Yes | The scrape job ID |
List recent scrape jobs.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit | int | No | 10 | Maximum jobs to return |
Get a presigned URL to upload a document or media file.
| Parameter | Type | Required | Description |
|---|---|---|---|
filename | string | Yes | Name of the file (e.g., 'report.pdf', 'meeting.mp4') |
Supported formats:
Video/audio files are transcribed using AWS Transcribe and segmented for search.
Get a presigned URL to upload an image (step 1 of image upload workflow).
| Parameter | Type | Required | Description |
|---|---|---|---|
filename | string | Yes | Name of the image file (e.g., 'photo.jpg') |
Supported formats: JPEG, PNG, GIF, WebP, AVIF, BMP, TIFF
Generate an AI caption for an uploaded image using a vision model (step 2, optional).
| Parameter | Type | Required | Description |
|---|---|---|---|
s3_uri | string | Yes | S3 URI returned by upload_image_url |
Finalize an image upload and trigger indexing (step 3).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
image_id | string | Yes | - | Image ID from upload_image_url |
caption | string | No | null | Primary caption |
user_caption | string | No | null | User-provided caption |
ai_caption | string | No | null | AI-generated caption |
Get all current RAGStack configuration settings organized by category.
Returns settings for:
Note: Read-only. To modify settings, use the admin dashboard (Cognito auth required).
These tools help understand and optimize metadata extraction and filtering.
Get statistics about metadata keys extracted from documents.
Returns key names, data types, occurrence counts, sample values, and status.
Get AI-generated filter examples for metadata-based search queries.
Returns filter patterns with name, description, use case, and JSON filter syntax.
Filter syntax reference:
$eq, $ne, $gt, $gte, $lt, $lte, $in, $nin, $exists$and, $or{"topic": {"$eq": "genealogy"}}Get the complete metadata key library with all discovered keys.
Returns all keys available for filtering with data types and sample values.
Check if a proposed metadata key is similar to existing keys.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
key_name | string | Yes | - | Proposed key name to check |
threshold | float | No | 0.8 | Similarity threshold (0.0-1.0) |
Use this before adding documents with new keys to avoid duplicates.
Trigger metadata analysis to discover keys and generate filter examples.
Note: This is a long-running operation (1-2 minutes). It samples up to 1000 vectors and uses LLM analysis.
Run this after ingesting new documents or when filter generation isn't working as expected.
Once configured, just ask your AI assistant naturally:
Search & Chat:
Web Scraping:
Document, Image & Media Upload:
Metadata Analysis:
Configuration:
| Variable | Required | Description |
|---|---|---|
RAGSTACK_GRAPHQL_ENDPOINT | Yes | Your RAGStack GraphQL API URL |
RAGSTACK_API_KEY | Yes | Your RAGStack API key |
# Clone and install
cd src/ragstack-mcp
uv sync
# Run locally
uv run ragstack-mcp
# Build package
uv build
# Publish to PyPI
uv publish
MIT
Install via CLI
npx mdskills install HatmanStack/ragstack-lambdaRAGStack MCP Server is a free, open-source AI agent skill. MCP (Model Context Protocol) server for RAGStack knowledge bases. Enables AI assistants to search, chat, upload documents/media, and scrape your knowledge base. Get your GraphQL endpoint and API key from the RAGStack dashboard: Settings → API Key Edit ~/Library/Application Support/Claude/claudedesktopconfig.json (Mac) or %APPDATA%\Claude\claudedesktopconfig.json (Windows): Edit ~/.aws/amazonq/mcp.
Install RAGStack MCP Server with a single command:
npx mdskills install HatmanStack/ragstack-lambdaThis downloads the skill files into your project and your AI agent picks them up automatically.
RAGStack MCP Server works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Codex, Gemini Cli, Amp, Roo Code, Goose, Opencode, Trae, Qodo, Command Code. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.