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 。
これは進行中の作業であり、まだ実稼働環境での使用には適さない可能性があることにご注意ください。
Related MCP server: Filesystem MCP Server
インストール
最新リリースを入手し、
$PATHまたは簡単にアクセスできる場所に配置します。または、Go がインストールされている場合は、ソースからビルドできます。
使用法
方法A: stdioモードのコマンドライン引数を使用する
注意: バイナリを$PATHの外部に置く場合は、 go-mcp-postgresバイナリのフルパスに置き換える必要があります。たとえば、バイナリをダウンロードフォルダに置く場合は、次のパスを使用できます。
方法B: SSEモードのコマンドライン引数を使用する
./go-mcp-postgres --t sse --ip xxxx --port nnnn --dsn postgresql://user:pass@host:port/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_tablePostgresサーバーの既存のテーブルを変更します。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