go-mcp-postgres
概要
https://github.com/Zhwt/go-mcp-mysql/からコードをコピーし、AIの助けを借りて、データベースをmysqlからpostgresに変更しました。Postgresとのやり取りや自動化のための、負担ゼロですぐに使えるModel Context Protocol(MCP)サーバーです。Node.jsやPython環境は必要ありません。このサーバーは、MySQLデータベースとテーブルに対してCRUD操作を行うツールと、予期せぬ書き込み操作を防ぐ読み取り専用モードを提供します。また、--with-explain-checkフラグを追加することで、クエリ実行前にEXPLAIN
ステートメントを使用してMCPサーバーにクエリプランをチェックさせること--with-explain-check
。
これは進行中の作業であり、まだ実稼働環境での使用には適さない可能性があることにご注意ください。
インストール
- 最新リリースを入手し、
$PATH
または簡単にアクセスできる場所に配置します。 - または、Go がインストールされている場合は、ソースからビルドできます。
使用法
方法A: stdioモードのコマンドライン引数を使用する
注意: バイナリを$PATH
の外部に置く場合は、 go-mcp-postgres
バイナリのフルパスに置き換える必要があります。たとえば、バイナリをダウンロードフォルダに置く場合は、次のパスを使用できます。
方法B: SSEモードのコマンドライン引数を使用する
./go-mcp-postgres --t sse --ip xxxx --port nnnn --dsn postgresql://user@host/db --lang en
オプションフラグ
--lang
: 言語オプション(en/zh-CN)を設定します。デフォルトはシステム言語です。--read-only
フラグを追加すると、読み取り専用モードが有効になります。このモードでは、list
、read_
、desc_
で始まるツールのみが使用可能です。このフラグを追加した後は、MCPサーバーを更新/再起動してください。- デフォルトでは、CRUDクエリは最初に
EXPLAIN ?
ステートメントで実行され、生成されたクエリプランが想定されるパターンと一致するかどうかが確認されます。この動作を無効にするには--with-explain-check
フラグを追加してください。
ツール
多言語サポート: すべてのツールの説明は、langパラメータに基づいて自動的にローカライズされます。
独自の言語サポートを追加したい場合は、[locales](i18n用)フォルダを参照してください。コマンドラインで使用する場合は、新しいlocales/xxx/active-xx.tomlファイルを作成する必要があります。
スキーマツール
list_database
- ${mcp.tool.list_database.desc}
- パラメータ: なし
- 戻り値: 一致するデータベース名のリスト。
list_table
- ${mcp.tool.list_table.desc}
- パラメータ:
name
: 指定されている場合は、指定された名前のテーブルを一覧表示します。指定されていない場合は、すべてのテーブルを一覧表示します。
- 戻り値: 一致するテーブル名のリスト。
create_table
- ${mcp.tool.create_table.desc}
- パラメータ:
query
: テーブルを作成するための SQL クエリ。
- 戻り値: 影響を受ける x 行。
alter_table
- Postgresサーバーの既存のテーブルを変更します。LLMには、既存のテーブルまたは列を削除しないように指示されます。
- パラメータ:
query
: テーブルを変更するための SQL クエリ。
- 戻り値: 影響を受ける x 行。
desc_table
- テーブルの構造について説明します。
- パラメータ:
name
: 説明するテーブルの名前。
- 戻り値: テーブルの構造。
データツール
read_query
- 読み取り専用の SQL クエリを実行します。
- パラメータ:
query
: 実行する SQL クエリ。
- 戻り値: クエリの結果。
write_query
- 書き込み SQL クエリを実行します。
- パラメータ:
query
: 実行する SQL クエリ。
- 戻り値: 影響を受けた行数 x、最後の挿入 ID: <last_insert_id>。
update_query
- 更新 SQL クエリを実行します。
- パラメータ:
query
: 実行する SQL クエリ。
- 戻り値: 影響を受ける x 行。
delete_query
- 削除 SQL クエリを実行します。
- パラメータ:
query
: 実行する SQL クエリ。
- 戻り値: 影響を受ける x 行。
count_query
- 特定のテーブル内の行数を照会します。
- パラメータ:
name
: カウントするテーブルの名前。
- 戻り値: テーブルの行番号。
https://github.com/Zhwt/go-mcp-mysql/に改めて感謝します。
ライセンス
マサチューセッツ工科大学
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
go-mcp-postgres とは何ですか? go-mcp-postgres は、Postgres データベースと対話するために設計された Model Context Protocol (MCP) サーバーであり、Node.js または Python 環境を必要とせずに簡単な CRUD 操作と自動化を可能にします。
Related MCP Servers
- -securityAlicense-qualityGo server implementing Model Context Protocol (MCP) for filesystem operations.Last updated -479GoMIT License
- -securityAlicense-qualitygodoc-mcp is a Model Context Protocol (MCP) server that provides efficient access to Go documentation. It helps LLMs understand Go projects by providing direct access to package documentation without needing to read entire source files.Last updated -77GoMIT License
- -securityFlicense-qualityPG-MCP is an HTTP server implementation that enables AI systems to interact with PostgreSQL databases via MCP, providing tools for querying, connecting to multiple databases, and exploring schema resources. The system enriches context by extracting table/column description from database catalogs.Last updated -21
- AsecurityAlicenseAqualityPostgres Pro is an open source Model Context Protocol (MCP) server built to support you and your AI agents throughout the entire development process—from initial coding, through testing and deployment, and to production tuning and maintenance.Last updated -9848PythonMIT License