MCP server for RAGStack knowledge base - search, chat, upload, and scrape
Project description
RAGStack MCP Server
MCP (Model Context Protocol) server for RAGStack knowledge bases. Enables AI assistants to search, chat, upload, and scrape your knowledge base.
Installation
# Using uvx (recommended - no install needed)
uvx ragstack-mcp
# Or install globally
pip install ragstack-mcp
Configuration
Get your GraphQL endpoint and API key from the RAGStack dashboard: Settings → API Key
Claude Desktop
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"
}
}
}
}
Amazon Q CLI
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"
}
}
}
}
Cursor
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"
}
}
}
VS Code + Cline
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"
}
}
}
}
VS Code + Continue
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"
}
}
]
}
Available Tools
search_knowledge_base
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 |
chat_with_knowledge_base
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 |
start_scrape_job
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 domain
Scrape 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 JavaScript
get_scrape_job_status
Check the status of a scrape job.
| Parameter | Type | Required | Description |
|---|---|---|---|
job_id |
string | Yes | The scrape job ID |
list_scrape_jobs
List recent scrape jobs.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit |
int | No | 10 | Maximum jobs to return |
upload_document_url
Get a presigned URL to upload a document.
| Parameter | Type | Required | Description |
|---|---|---|---|
filename |
string | Yes | Name of the file (e.g., 'report.pdf') |
Usage Examples
Once configured, just ask your AI assistant naturally:
- "Search my knowledge base for authentication best practices"
- "What does our documentation say about API rate limits?"
- "Scrape the React docs at react.dev/reference"
- "Check the status of my scrape job"
- "Upload a new document called quarterly-report.pdf"
Environment Variables
| Variable | Required | Description |
|---|---|---|
RAGSTACK_GRAPHQL_ENDPOINT |
Yes | Your RAGStack GraphQL API URL |
RAGSTACK_API_KEY |
Yes | Your RAGStack API key |
Development
# Clone and install
cd src/ragstack-mcp
uv sync
# Run locally
uv run ragstack-mcp
# Build package
uv build
# Publish to PyPI
uv publish
License
MIT
Project details
Release history Release notifications | RSS feed
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 ragstack_mcp-0.1.1.dev4.tar.gz.
File metadata
- Download URL: ragstack_mcp-0.1.1.dev4.tar.gz
- Upload date:
- Size: 51.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a73b793c8f04406e7c80e098079c0cb4c07bb1a14e94abede5cf9ae356fe16fd
|
|
| MD5 |
180a3ebbfd1a853fff706a73fe243186
|
|
| BLAKE2b-256 |
63c4671af257469f488c86c38c7fe49868deb1161427821d19f2d64076092d69
|
Provenance
The following attestation bundles were made for ragstack_mcp-0.1.1.dev4.tar.gz:
Publisher:
publish-mcp.yml on HatmanStack/RAGStack-Lambda
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ragstack_mcp-0.1.1.dev4.tar.gz -
Subject digest:
a73b793c8f04406e7c80e098079c0cb4c07bb1a14e94abede5cf9ae356fe16fd - Sigstore transparency entry: 773806196
- Sigstore integration time:
-
Permalink:
HatmanStack/RAGStack-Lambda@0b6da08dd90951d6392bdbda22d5adb9bff6fadc -
Branch / Tag:
refs/heads/main - Owner: https://github.com/HatmanStack
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-mcp.yml@0b6da08dd90951d6392bdbda22d5adb9bff6fadc -
Trigger Event:
push
-
Statement type:
File details
Details for the file ragstack_mcp-0.1.1.dev4-py3-none-any.whl.
File metadata
- Download URL: ragstack_mcp-0.1.1.dev4-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
365c340b25af0d60082458250e8ba6151002e7dca09aa43bb02e9ae05535318d
|
|
| MD5 |
75abb6bcd85dca1e9ac3c3560d22e895
|
|
| BLAKE2b-256 |
316e94cce3303ca2023e25f18369dc6f8a7b3d31096aab862353f57eb7a72af2
|
Provenance
The following attestation bundles were made for ragstack_mcp-0.1.1.dev4-py3-none-any.whl:
Publisher:
publish-mcp.yml on HatmanStack/RAGStack-Lambda
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ragstack_mcp-0.1.1.dev4-py3-none-any.whl -
Subject digest:
365c340b25af0d60082458250e8ba6151002e7dca09aa43bb02e9ae05535318d - Sigstore transparency entry: 773806199
- Sigstore integration time:
-
Permalink:
HatmanStack/RAGStack-Lambda@0b6da08dd90951d6392bdbda22d5adb9bff6fadc -
Branch / Tag:
refs/heads/main - Owner: https://github.com/HatmanStack
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-mcp.yml@0b6da08dd90951d6392bdbda22d5adb9bff6fadc -
Trigger Event:
push
-
Statement type: