SQL MCP Server (TypeScript) について
SQL MCP Server (TypeScript)は、PostgreSQLを照会するTypeScript製MCPサーバーで、SSHバスティオン経由のAWS RDS接続にも対応します。stdioで読み取り専用のデータベースアクセスを必要とするLLMやMCPクライアント向けです。
主な機能
- 01読み取り専用PostgreSQLクエリ
- 02SSHバスティオンのトンネル対応
- 03STDIO MCPトランスポート
- 04環境変数による設定
- 05Jestとモックによるテスト
活用シーン
- 01SSHバスティオン経由でプライベートPostgreSQLを照会
- 02MCPクライアントに読み取り専用PostgreSQLアクセスを提供
MCP 対応
stdinとstdoutを介して、MCP対応クライアントにPostgreSQLのクエリ機能を公開します。プライベートRDSへの接続にはSSHバスティオントンネルを利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| sql | string | いいえ |
詳細
SQL MCP サーバー(TypeScript)
このプロジェクトは、言語モデルやその他の MCP 互換クライアントが PostgreSQL データベースにクエリを実行できるようにする、Model Context Protocol(MCP)サーバーの TypeScript 実装を提供します。必要に応じて、SSH 踏み台トンネル経由で接続できます。
柔軟性と安全なデータベースアクセスを重視して開発されており、読み取り専用トランザクションで AWS RDS をサポートします。また、標準入力/標準出力を使用した通信を採用しているため、ローカル環境、コンテナー環境、AI 主導のユースケースに適しています。
機能
- 🔒 SSH トンネル経由でプライベート RDS インスタンスに安全にアクセスするための SSH 踏み台サポート
- 🐘
pgライブラリを使用した PostgreSQL 読み取り専用クエリエンジン - 📡 STDIO ベースの MCP プロトコルトランスポート
- 🧠 memory-bank-mcp-server と互換性があります
- ⚙️
.envまたは環境変数で簡単に設定できます - 🧪 Jest とモックを使用して完全にテストできます
インストール
リポジトリをクローンして、依存関係をインストールします。
git clone https://github.com/your-org/sql-mcp-server.git
cd sql-mcp-server
npm install
npm run build
Configuration (Optional .env file)
Create a .env file in the project root:
DB_USER=postgres
DB_PASS=yourpassword
DB_HOST=localhost
DB_PORT=5432
DB_NAME=mydatabase
USE_SSH_TUNNEL=true
SSH_BASTION_HOST=bastion.example.com
SSH_BASTION_USER=ec2-user
SSH_PRIVATE_KEY_PATH=~/.ssh/id_rsa
Usage
Run the server using npx:
npx -y @modelcontextprotocol/server-postgres postgresql://<user>:<pass>@localhost:5433/<dbname>
For direct connection without SSH tunneling, set the appropriate environment variables:
DB_HOST=rds-host.amazonaws.com DB_PORT=5432 npx -y @modelcontextprotocol/server-postgres postgresql://<user>:<pass>@rds-host.amazonaws.com/<dbname>
Sample Input
{
"type": "call_tool",
"params": {
"name": "query",
"arguments": {
"sql": "SELECT * FROM users LIMIT 10"
}
}
}
Sample Output
{
"content": [
{
"type": "text",
"text": "[{\"id\":1,\"name\":\"Alice\"}]"
}
],
"isError": false
}
⸻
Related Docs
• Architecture
• Domain Models
• Glossary
• Coding Standards
• Tech Stack
• User Guide
⸻
License
MIT
⸻
Contribution Guide
We welcome community contributions! Please see CONTRIBUTING.md for details.
⸻
Compatibility
This implementation follows the Model Context Protocol (MCP) and has been tested for compatibility with:
• memory-bank-mcp-server
• Claude Desktop (via STDIO)
• Cursor IDE
• Supabase + MCP integration
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。