LABSCO SUMMARY
One server, and you pick how it is reached.
openGauss does not have many MCP options, and this one is unfussy about how it is deployed: run it on stdio next to a desktop client, or start it standalone on a port and let several clients connect over SSE or streamable HTTP. Configuration stays in one .env either way.
What it is
A FastMCP 2.0 server that puts an openGauss database behind an MCP client. Connection details come from a .env file, and the transport is chosen on the command line, so the same checkout serves a desktop client on stdio and a shared instance over HTTP.
What you get
- Three transports from one server:
--transport=stdio,--transport=sse,--transport=streamable-http - Listening host, port and path all set on the command line —
--host,--port,--path - Connection settings in
.env:OPENGAUSS_HOST,OPENGAUSS_PORT,OPENGAUSS_USER,OPENGAUSS_PASSWORD,OPENGAUSS_DBNAME - Real environment variables override the
.envvalues, so a deployment can inject its own
Requirements
uv and Python 3.12 or newer. Clone the repository, copy .env.example to .env, run uv sync, then launch server.py with the transport you want. Claude Desktop speaks stdio only; CherryStudio takes any of the three. The credentials in .env are database credentials, so scope the openGauss user to what the assistant should be allowed to touch. Version 0.1.0.
Setup effort
Build from source — git clone https://github.com/HowardQin/fastmcp-opengauss.git
USE CASES
Querying an openGauss database from a desktop assistant
Point Claude Desktop at server.py on stdio and ask about the data rather than opening a SQL client.
Sharing one database connection with several clients
Start it standalone with --transport=streamable-http on a host and port, then connect from each client.
Moving the same setup between environments
Keep the connection in .env and override it with real environment variables where the deployment differs.
BEFORE YOU INSTALL
What to know first
Requires
OPENGAUSS_PASSWORD in your environment
INSTALLATION
Connect your client
Server setup
git clone https://github.com/HowardQin/fastmcp-opengauss.git
cd fastmcp-opengauss
cp .env.example .env
uv syncEdit .env with your openGauss connection parameters: OPENGAUSS_HOST, OPENGAUSS_PORT, OPENGAUSS_USER, OPENGAUSS_PASSWORD, OPENGAUSS_DBNAME.
MCP Clients
Claude Desktop
{
"mcpServers": {
"openGauss": {
"command": "uv",
"args": [
"--directory",
"<YOUR_PATH_TO_FASTMCP_OPENGAUSS>",
"run",
"server.py",
"--transport",
"stdio"
]
}
}
}<YOUR_PATH_TO_FASTMCP_OPENGAUSS> is the folder you cloned (on macOS/Linux, e.g. /home/you/fastmcp-opengauss).
The configuration on this page does not set OPENGAUSS_PASSWORD; the project's instructions put it in a .env file. Check which folder the server reads that file from before you rely on it.
Cherry Studio — stdio
In Cherry Studio → Settings → MCP Servers, add a server with Type Standard Input/Output (stdio), Command uv, and these Arguments, one per line (<YOUR_PATH_TO_FASTMCP_OPENGAUSS> is the folder you cloned — on macOS/Linux, e.g. /home/<YOUR_USERNAME>/fastmcp-opengauss):
--directory
<YOUR_PATH_TO_FASTMCP_OPENGAUSS>
run
server.py
--transport=stdioCherry Studio — SSE server
Start the server as a standalone process (<YOUR_PATH_TO_FASTMCP_OPENGAUSS> is the folder you cloned — on macOS/Linux, e.g. /home/<YOUR_USERNAME>/fastmcp-opengauss):
uv --directory <YOUR_PATH_TO_FASTMCP_OPENGAUSS> run server.py --transport=sse --port=8000 --path=/sse --host=0.0.0.0Then in Cherry Studio → Settings → MCP Servers, add a server with Type Server-Sent Events (sse) and URL http://localhost:8000/sse
Cherry Studio — HTTP server
Start the server as a standalone process (<YOUR_PATH_TO_FASTMCP_OPENGAUSS> is the folder you cloned — on macOS/Linux, e.g. /home/<YOUR_USERNAME>/fastmcp-opengauss):
uv --directory <YOUR_PATH_TO_FASTMCP_OPENGAUSS> run server.py --transport=streamable-http --port=8000 --path=/mcp --host=0.0.0.0Then in Cherry Studio → Settings → MCP Servers, add a server with Type Streamable HTTP (streamableHttp) and URL http://localhost:8000/mcp