Redshift MCP Server
Enables AI agents to interact with Amazon Redshift databases using natural language, providing tools to execute SQL queries, list tables, describe schemas, retrieve sample data, and monitor connection status.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Redshift MCP Servershow me the first 10 rows from the users table"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Redshift MCP Server
A Model Context Protocol (MCP) server that enables AI agents to interact with Amazon Redshift using natural language.
Features
SQL Tools: Execute queries, list tables, describe schemas, get sample data.
Resources: Connection status, table list.
Sample Data: Pre-configured users, products, and orders tables.
Architecture: See DESIGN.md for system diagrams.
Related MCP server: Redshift MCP Server
🚀 Quick Start
For detailed instructions on Windows, macOS, and Linux, please refer to the SETUP.md guide.
Basic Steps (Local Testing):
Start Postgres:
docker run -d -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=password postgresInstall Deps:
pip install mcp redshift-connector pandas python-dotenv psycopg2-binary sqlalchemySeed Data:
python seed_redshift.pyTest:
python test_redshift_local.py
🔧 MCP Client Configuration
Add this to your MCP client configuration (e.g., Antigravity, Claude Code, or VS Code).
"redshift-mcp": {
"command": "py",
"args": ["redshift_mcp_server.py"],
"cwd": "c:/Users/deepa/OneDrive/Desktop/workspace/redis connection",
"env": {
"REDSHIFT_HOST": "localhost",
"REDSHIFT_PORT": "5432",
"REDSHIFT_DATABASE": "postgres",
"REDSHIFT_USER": "postgres",
"REDSHIFT_PASSWORD": "password"
}
}☁️ AWS Deployment
See AWS_DEPLOYMENT.md for deployment options.
Available Tools
5 toolsredshift_connection_statusB
Check the Redshift connection status.
Returns:
Connection status information
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Checks' and 'Returns connection status information', which implies a read-only, non-destructive operation, but doesn't specify what 'status information' includes (e.g., connectivity, latency, error details), whether it requires authentication, or any rate limits. For a tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two short sentences that are front-loaded: the first states the purpose, and the second clarifies the return. There's no wasted text, but it could be slightly more structured (e.g., bullet points for return details) without losing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 parameters) and the presence of an output schema (which should document return values), the description is minimally adequate. However, it lacks context about when to use it versus siblings, and without annotations, it doesn't fully disclose behavioral traits like error handling or authentication needs, leaving gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to add parameter semantics, so it appropriately avoids discussing inputs. Since there are no parameters, a baseline score of 4 is justified as the description doesn't introduce confusion or redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Check the Redshift connection status' with a specific verb ('Check') and resource ('Redshift connection status'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'redshift_query' or 'redshift_list_tables' in terms of when to use this specific connection check versus other Redshift operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether a connection must be established first), typical use cases (e.g., diagnostic checks before querying), or exclusions. With sibling tools like 'redshift_query' available, the lack of contextual guidance is a clear gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redshift_describe_tableB
Get the column definitions for a table.
Args:
table_name: Name of the table
schema: Schema name (default: "public")
Returns:
JSON description of columns
| Name | Required | Description | Default |
|---|---|---|---|
| table_name | Yes | ||
| schema | No | public |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves column definitions but lacks details on permissions, error handling, rate limits, or whether it's a read-only operation. This leaves gaps in understanding the tool's behavior beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise, using a clear purpose statement followed by bullet points for arguments and returns. Every sentence adds value without redundancy, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no annotations, but with an output schema), the description is reasonably complete. It covers the purpose, parameters, and return format. The output schema existence means the description doesn't need to detail return values, but it could benefit from more behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context beyond the input schema, which has 0% description coverage. It explains that 'table_name' is the name of the table and 'schema' is the schema name with a default of 'public', clarifying parameter purposes that aren't covered in the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('column definitions for a table'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'redshift_list_tables' or 'redshift_get_sample_data', which might offer related functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'redshift_list_tables' for listing tables or 'redshift_get_sample_data' for retrieving data samples, leaving the agent to infer usage context without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redshift_get_sample_dataC
Get sample rows from a table.
Args:
table_name: Name of the table
limit: Number of rows to return (default: 5)
schema: Schema name (default: "public")
Returns:
JSON sample data
| Name | Required | Description | Default |
|---|---|---|---|
| table_name | Yes | ||
| limit | No | ||
| schema | No | public |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool 'Get sample rows' and returns 'JSON sample data,' but fails to disclose critical traits such as whether it requires specific permissions, if it's read-only or has side effects, potential rate limits, or error handling. For a data retrieval tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose in the first sentence. The structured 'Args' and 'Returns' sections make it easy to scan, though the 'Returns' section is minimal ('JSON sample data'). There's no wasted text, but it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, 1 required) and the presence of an output schema (which handles return values), the description is somewhat complete but has gaps. It covers the basic purpose and parameters but lacks usage guidelines and behavioral details. With no annotations and an output schema, it's adequate for a simple read operation but could be more comprehensive for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds some meaning beyond the input schema by explaining parameters in the 'Args' section: 'table_name: Name of the table,' 'limit: Number of rows to return (default: 5),' and 'schema: Schema name (default: "public").' However, with 0% schema description coverage, the schema itself lacks descriptions, so the description compensates partially but doesn't provide deep semantic context like format constraints or examples. This meets the baseline for moderate value addition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get sample rows from a table.' It specifies the verb ('Get') and resource ('sample rows from a table'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'redshift_query' (which might also retrieve data) or 'redshift_describe_table' (which provides metadata), so it falls short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'redshift_query' for more complex queries or 'redshift_describe_table' for schema details, nor does it specify prerequisites or exclusions. This lack of context leaves the agent to infer usage based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redshift_list_tablesC
List all tables in a specific schema.
Args:
schema: The schema name (default: "public")
Returns:
JSON list of table names
| Name | Required | Description | Default |
|---|---|---|---|
| schema | No | public |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool lists tables but doesn't cover important aspects like whether it requires specific permissions, has rate limits, handles errors, or provides pagination for large result sets. This leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the core purpose stated first. The 'Args' and 'Returns' sections are structured but slightly redundant given the schema. It could be more concise by removing the explicit parameter listing since it adds little beyond the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter) and the presence of an output schema (which handles return values), the description is somewhat complete. However, it lacks behavioral details and usage guidelines, which are important even for simple tools, making it only minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal value beyond the input schema. It explains that 'schema' is the schema name with a default of 'public', which is already clear from the schema's 'default' and 'title' fields. With 0% schema description coverage, this doesn't fully compensate, but the single parameter is straightforward, keeping it at baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('List') and resource ('tables in a specific schema'), making it easy to understand what it does. However, it doesn't explicitly differentiate from sibling tools like 'redshift_describe_table' or 'redshift_query', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'redshift_describe_table' (for detailed table info) or 'redshift_query' (for custom queries), leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redshift_queryC
Execute a SQL query on Redshift and return results as JSON.
Args:
sql: The SQL query to execute
Returns:
JSON string of the query results or error message
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool executes a SQL query and returns results or errors, but lacks details on permissions needed, rate limits, query timeouts, transaction handling, or data modification effects (e.g., whether it can perform INSERT/UPDATE). For a database query tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the core purpose in the first sentence and additional details in a structured format (Args and Returns sections). There's no wasted text, though the structure could be more integrated (e.g., merging into prose). It efficiently conveys key information in three sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (executing arbitrary SQL on Redshift), the description is moderately complete. It covers the basic action and output, and an output schema exists (though not provided here), reducing the need to detail return values. However, with no annotations and incomplete behavioral details, it lacks context on safety, performance, and integration with sibling tools, leaving gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal semantic context for the single parameter 'sql', stating it's 'The SQL query to execute.' The input schema has 0% description coverage, so this provides basic meaning. However, it doesn't elaborate on SQL syntax requirements, supported Redshift features, or parameterization options. With one parameter and low schema coverage, the description compensates slightly but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Execute a SQL query on Redshift and return results as JSON.' It specifies the verb (execute), resource (SQL query on Redshift), and output format (JSON). However, it doesn't explicitly differentiate from sibling tools like redshift_describe_table or redshift_get_sample_data, which might also execute queries but for specific purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like redshift_describe_table for metadata queries or redshift_get_sample_data for data sampling, nor does it specify prerequisites such as requiring an active Redshift connection or appropriate permissions. Usage is implied only by the general purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
- First observed
redshift_connection_status - First observed
redshift_describe_table - First observed
redshift_get_sample_data - First observed
redshift_list_tables - First observed
redshift_query
TDQS
Each tool has a clearly distinct purpose with no overlap: connection status check, table description, data sampling, table listing, and query execution. The descriptions reinforce these distinct roles, making tool selection straightforward for an agent.
All tools follow a consistent 'redshift_' prefix with descriptive snake_case names (e.g., redshift_describe_table, redshift_query). This predictable pattern enhances readability and reduces cognitive load for users or agents.
With 5 tools, the server is well-scoped for basic Redshift database interactions, covering essential operations like connection, metadata, and querying. It could be slightly expanded to include more advanced features (e.g., data modification), but the current count is reasonable for its purpose.
The toolset covers core read-only operations (status, metadata, querying) but lacks data manipulation tools (e.g., insert, update, delete) and schema management (e.g., create table). This creates gaps for agents needing full CRUD capabilities, though basic exploration and querying are well-supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Query BigQuery, Snowflake, Redshift & Azure Synapse with natural language
Ask data questions in natural language. Get SQL, insights, and charts from your databases.
- OleanderOAuthdev.oleander
The all-in-one data stack for agents. Upload files, run SQL, evolve tables, and render charts.
Your Databricks Lakehouse in natural language: run SQL on your SQL warehouses, track long-running qu
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables LLMs and AI agents to securely query and interact with Amazon Redshift databases with configurable access modes (readonly, readwrite, admin) for safe data exploration and management.-
- FlicenseAqualityDmaintenanceEnables AI agents to interact with Amazon Redshift databases using natural language to execute queries, explore schemas, and retrieve sample data.5-
- AlicenseAqualityCmaintenanceIntegrates Redshift database query capabilities with vector-based knowledgebase tools for semantic search and RAG applications. It enables users to execute SQL queries, explore database schemas, and perform hybrid semantic searches on markdown files stored in S3.7MIT
- AlicenseAqualityDmaintenanceEnables AI agents to execute SQL queries and explore Snowflake databases using natural language, with schema discovery, table inspection, and readonly mode.11679MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DeepaRajareddy/redshift_mcp_server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server