Skip to main content
Glama
DeepaRajareddy

Redshift MCP Server

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):

  1. Start Postgres: docker run -d -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=password postgres

  2. Install Deps: pip install mcp redshift-connector pandas python-dotenv psycopg2-binary sqlalchemy

  3. Seed Data: python seed_redshift.py

  4. Test: 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 tools
redshift_connection_statusB
Check the Redshift connection status.

Returns:
    Connection status information
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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
ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYes
schemaNopublic

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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
ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYes
limitNo
schemaNopublic

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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
ParametersJSON Schema
NameRequiredDescriptionDefault
schemaNopublic

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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
ParametersJSON Schema
NameRequiredDescriptionDefault
sqlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 5 tool updates
    • First observedredshift_connection_status
    • First observedredshift_describe_table
    • First observedredshift_get_sample_data
    • First observedredshift_list_tables
    • First observedredshift_query

TDQS

B3.4/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness3/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Integrates 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.
    7
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to execute SQL queries and explore Snowflake databases using natural language, with schema discovery, table inspection, and readonly mode.
    11
    679
    MIT

Latest Blog Posts

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