fastmcp-opengauss
# Model Context Protocol Server for openGauss
## Features
- Build with FastMCP 2.0 .
- Support Stdio, SSE and Streamable-Http transporting method.
- MCP server transporting method, listerning port, host and path are Configurable via command-line argument.
- openGauss connection parameters are configurable via environment variables or .env files.
## Deployment
Note: uv and python >= 3.12 is required.
```shell
git clone https://github.com/HowardQin/fastmcp-opengauss.git
cd fastmcp-opengauss
cp .env.example .env
uv sync
```
openGauss connection parameters are loaded from .env, for example:
```shell
OPENGAUSS_HOST=172.32.148.228
OPENGAUSS_PORT=31001
OPENGAUSS_USER=app
OPENGAUSS_PASSWORD=Postgres1234
OPENGAUSS_DBNAME=app
```
These parameters can be overwriten if identical environment variables are set.
## Usage with Claude Desktop
Claude Desktop only supports Stdio mode, so we add the Stdio starting command in claude_desktop_config.json:
```json
{
"mcpServers": {
"openGauss": {
"command": "uv",
"args": [
"--directory",
"C:\\Users\\qinh\\fastmcp-opengauss",
"run",
"server.py",
"--transport",
"stdio"
]
}
}
}
```
## Usage with CherryStudio
CherryStudio supports all three transporting modes: Stdio, SSE and Streamable-Http
### Stdio:

Arguments:
```shell
--directory
C:\Users\qinh\fastmcp-opengauss
run
server.py
--transport=stdio
```
### SSE:
For SSE transport mode, we need to start a standalone mcp server, run following command in project root directory, or in any directory with --directory specifing project root dir :
```shell
uv --directory C:\Users\qinh\fastmcp-opengauss run .\server.py --transport=sse --port=8000 --path=/sse --host=0.0.0.0
```
Then configure CherryStudio to connect to sse mcp server:

### Streamable-Http:
For Streamable-Http, we need to start a standalone mcp server, run following command in project root directory, or in any directory with --directory specifing project root dir:
```shell
uv --directory C:\Users\qinh\fastmcp-opengauss run .\server.py --transport=streamable-http --port=8000 --path=/mcp --host=0.0.0.0
```
Then configure CherryStudio to connect to streamable-http mcp server:

TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose with no ambiguity: execute_query runs SQL commands, get_current_user_and_schema retrieves metadata, get_table_definition provides table structure, and list_tables_in_current_schema enumerates tables. The descriptions clearly differentiate these functions, making misselection unlikely.
The tools follow a consistent verb_noun pattern (e.g., execute_query, get_table_definition) with all using snake_case. However, get_current_user_and_schema is slightly longer and combines two nouns, which is a minor deviation from the simpler patterns of the other tools, but overall naming remains highly readable and predictable.
With 4 tools, the count is appropriate for a database server focused on basic querying and metadata operations. It covers essential functions without being overly sparse or bloated, though it could be considered slightly thin if more advanced features were expected, but it's reasonable for the apparent scope.
The toolset covers core database operations like query execution and metadata retrieval, but there are notable gaps. For example, it lacks tools for creating or modifying tables, managing users, or handling transactions, which are common in database interfaces. This could limit agent workflows, but basic querying and inspection are supported.