Metadata-Version: 2.4
Name: hologres-mcp-server
Version: 0.1.6
Summary: A MCP Server for Hologres
Author-email: TimothyDing <ding_ye_timo@163.com>
License-File: LICENSE
Requires-Python: >=3.10
Requires-Dist: httpx>=0.28.1
Requires-Dist: mcp>=1.4.1
Requires-Dist: pglast>=7.5
Requires-Dist: psycopg-binary>=3.1.0
Requires-Dist: psycopg>=3.1.0
Requires-Dist: python-dotenv>=1.0.1
Description-Content-Type: text/markdown

# Hologres MCP Server

Hologres MCP Server serves as a universal interface between AI Agents and Hologres databases. It enables seamless communication between AI Agents and Hologres, helping AI Agents retrieve Hologres database metadata and execute SQL operations.

## Configuration

### Mode 1: Using Local File

#### Download

Download from Github

```shell
git clone https://github.com/aliyun/alibabacloud-hologres-mcp-server.git
```

#### MCP Integration

Add the following configuration to the MCP client configuration file:

```json
"mcpServers": {
  "hologres-mcp-server": {
    "command": "uv",
    "args": [
      "--directory",
      "/path/to/alibabacloud-hologres-mcp-server",
      "run",
      "hologres-mcp-server"
    ],
    "env": {
      "HOLOGRES_HOST": "host",
      "HOLOGRES_PORT": "port",
      "HOLOGRES_USER": "access_id",
      "HOLOGRES_PASSWORD": "access_key",
      "HOLOGRES_DATABASE": "database"
    }
  }
}
```

### Mode 2: Using PIP Mode

#### Installation

Install MCP Server using the following package:

```bash
pip install hologres-mcp-server
```

#### MCP Integration

Add the following configuration to the MCP client configuration file:

```json
"mcpServers": {
    "hologres-mcp-server": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "hologres-mcp-server",
        "hologres-mcp-server"
      ],
      "env": {
        "HOLOGRES_HOST": "host",
        "HOLOGRES_PORT": "port",
        "HOLOGRES_USER": "access_id",
        "HOLOGRES_PASSWORD": "access_key",
        "HOLOGRES_DATABASE": "database"
      }
    }
  }
```

## Components

### Tools

* `execute_select_sql`: Execute a SELECT SQL query on the Hologres server
* `execute_dml_sql`: Execute a DML (INSERT, UPDATE, DELETE) SQL query on the Hologres server
* `execute_ddl_sql`: Execute a DDL (CREATE, ALTER, DROP) SQL query on the Hologres server
* `gather_table_statistics`: Collect table statistics
* `get_query_plan`: Get query plan
* `get_execution_plan`: Get execution plan

### Resources

#### Built-in Resources

* `hologres:///schemas`: Get all schemas in the database

#### Resource Templates

* `hologres:///{schema}/tables`: List all tables in a schema
* `hologres:///{schema}/{table}/partitions`: List all partitions of a partitioned table
* `hologres:///{schema}/{table}/ddl`: Get table DDL
* `hologres:///{schema}/{table}/statistic`: Show collected table statistics
* `system:///{+system_path}`:
  System paths include:

  * missing_stats_tables - Shows the tables that are missing statistics.
  * stat_activity - Shows the information of current running queries.
  * query_log/latest/<row_limits> - Get recent query log history with specified number of rows.
  * query_log/user/<user_name>/<row_limits> - Get query log history for a specific user with row limits.
  * query_log/application/<application_name>/<row_limits> - Get query log history for a specific application with row limits.
  * query_log/failed/\<interval>\/<row_limits> - Get failed query log history with interval and specified number of rows.

### Prompts

None at this time
