mcpField
I
Isthmus

Isthmus

ローカル
github.com/guillermoBallesterデータベース135 週間前に更新

Isthmus について

Isthmusは、AIクライアントにPostgreSQLへの読み取り専用アクセスを提供するローカルMCPサーバーです。SQL検証、行数制限とタイムアウト、列単位のマスキング、監査ログに対応し、stdioとHTTPを利用できます。

主な機能

  1. 01スキーマ・テーブル・列の検出
  2. 02読み取り専用SQLクエリ
  3. 03SQL検証と行数・時間制限
  4. 04列単位の機密データマスキング
  5. 05ポリシーエンジンによる業務コンテキスト追加
  6. 06stdioとHTTPのトランスポート

活用シーン

  1. 01AIによるPostgreSQLスキーマの探索
  2. 02制限下でのデータ検索と実行計画の確認
  3. 03マスキング済み個人情報データのAIへの提供

MCP 対応

stdioまたはHTTP経由で、スキーマ検出、テーブル分析、読み取り専用クエリ、実行計画確認のツールをMCPクライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Isthmus

データベース向け MCP サーバー

CI Go Report Card Latest Release GitHub Stars Go Docker

ドキュメント · クイックスタート · インストール · 課題


Isthmus は、AI モデルに PostgreSQL データベースへの安全な読み取り専用アクセスを提供するローカル MCP サーバーです。バイナリは 1 つだけで、お使いのマシン上で動作し、認証情報が外部に送信されることはありません。

Isthmus のデモ

クイックスタート

# 1. Install (pick one)
curl -fsSL https://isthmus.dev/install.sh | sh   # install script
docker pull guillermosasso/isthmus                # or Docker Hub

# 2. Add to your MCP client config (Claude Desktop example)
{
  "mcpServers": {
    "isthmus": {
      "command": "isthmus",
      "env": {
        "DATABASE_URL": "postgres://user:pass@localhost:5432/mydb"
      }
    }
  }
}
# 3. Ask your AI: "What tables are in my database?"

Claude Desktop、Cursor、Windsurf などを使った手順ごとのセットアップについては、クイックスタートガイドをご覧ください。

Docker

イメージはリリースのたびに Docker Hub に公開されます(linux/amd64 および linux/arm64)。

docker run --rm \
  -e DATABASE_URL="postgres://user:[email protected]:5432/mydb" \
  guillermosasso/isthmus

特定のバージョンを指定する場合:

docker pull guillermosasso/isthmus:0.1.1

Claude Desktop で使うには、MCP の設定でコンテナを指定します:

{
  "mcpServers": {
    "isthmus": {
      "command": "docker",
      "args": ["run", "--rm", "-i",
        "-e", "DATABASE_URL=postgres://user:[email protected]:5432/mydb",
        "guillermosasso/isthmus"
      ]
    }
  }
}

機能

  • スキーマの探索 — スキーマ、テーブル、カラム、外部キー、インデックスを調べられます(ドキュメント)
  • 読み取り専用クエリ — サーバー側の行数制限とクエリタイムアウトを適用して SQL を実行します(ドキュメント)
  • カラムのマスキング — カラムごとのマスク(置換、ハッシュ化、一部表示、NULL)で個人を特定できる情報を保護します。サーバー側で適用されます(ドキュメント)
  • ポリシーエンジン — スキーマに業務上のコンテキストを追加し、AI がより適切な SQL を作成できるようにします(ドキュメント)
  • SQL の検証 — pg_query パーサーによる AST レベルのホワイトリストを適用し、SELECT と EXPLAIN のみを許可します(ドキュメント)
  • HTTP トランスポート — MCP を HTTP 経由で提供し、ウェブベースのクライアント、ChatGPT Desktop、リモートアクセスに対応します(ドキュメント)
  • OpenTelemetry — クエリのパフォーマンスとエラー監視のための分散トレーシングとメトリクスに対応します(ドキュメント)
  • あらゆる MCP クライアントに対応 — Claude Desktop、Cursor、Windsurf、Gemini CLI、VS Code、ChatGPT Desktop で利用できます(クライアントの設定)

仕組み

flowchart TB
    Claude["Claude Desktop"] & Cursor["Cursor / VS Code"] -->|stdio| STDIO
    ChatGPT["ChatGPT / Web"] -->|HTTP| HTTP

    subgraph Transport["Transport"]
        STDIO["stdio"]
        HTTP["HTTP + Auth"]
    end

    STDIO & HTTP --> Router

    subgraph Tools["MCP Tools"]
        Router{{"router"}}
        Router --> Discover["discover"]
        Router --> Describe["describe_table"]
        Router --> Query["query"]
    end

    Discover & Describe --> Explorer

    subgraph Schema["Schema Explorer"]
        Explorer["Catalog Introspection"]
        Explorer --> Policy["Policy Engine"]
    end

    Query --> Validate

    subgraph Security["Security Pipeline"]
        direction TB
        Validate["AST Validation"] --> ReadOnly["Read-Only Tx"]
        ReadOnly --> RowLimit["Row Limit"]
        RowLimit --> Timeout["Timeout"]
    end

    Security --> PG[("PostgreSQL")]
    Schema --> PG

    PG --> Mask

    subgraph Post["Post-Processing"]
        direction TB
        Mask["PII Masking"] --> Sanitize["Error Sanitization"]
    end

    Post -.-> Audit["Audit Log"]
    Post -.-> OTel["OpenTelemetry"]
    Post --> Response["Safe Response"]
    Response --> Claude & Cursor & ChatGPT

    classDef client fill:#e8f4f8,stroke:#2196F3,color:#1565C0
    classDef transport fill:#fff3e0,stroke:#FF9800,color:#E65100
    classDef tools fill:#e8eaf6,stroke:#3F51B5,color:#283593
    classDef security fill:#fce4ec,stroke:#E53935,color:#b71c1c
    classDef explorer fill:#e8f5e9,stroke:#4CAF50,color:#1B5E20
    classDef postproc fill:#f3e5f5,stroke:#9C27B0,color:#4A148C
    classDef db fill:#fff8e1,stroke:#FFC107,color:#F57F17
    classDef obs fill:#eceff1,stroke:#607D8B,color:#37474F
    classDef response fill:#e0f2f1,stroke:#009688,color:#004D40

    class Claude,Cursor,ChatGPT client
    class STDIO,HTTP transport
    class Router,Discover,Describe,Query tools
    class Validate,ReadOnly,RowLimit,Timeout security
    class Explorer,Policy explorer
    class Mask,Sanitize postproc
    class PG db
    class Audit,OTel obs
    class Response response

Isthmus は AI クライアントとデータベースの間に位置します。すべてのリクエストはセキュリティパイプラインを通過します。PostgreSQL 独自のパーサーを使って AST レベルで SQL を検証し、サーバー側の行数制限とタイムアウトを設定した読み取り専用トランザクションでクエリを実行します。また、結果が AI に届く前に PII 列をマスキングします。ポリシーエンジンはスキーマのメタデータにビジネスコンテキストを追加し、AI がより適切な SQL を記述できるようにします。すべてのアクティビティは追記専用の監査ログに記録され、オプションで OpenTelemetry トレーシングも利用できます。

MCP ツール

ツール機能
list_schemas利用可能なデータベーススキーマを見つけます
list_tables行数、サイズ、説明を含むテーブル情報を表示します
describe_table列、型、キー、インデックス、統計情報を表示します
profile_tableサンプル行、ディスク使用量、推定されるリレーションシップを詳しく分析します
query読み取り専用 SQL を実行し、結果を JSON で返します
explain_queryオプションの ANALYZE を含む PostgreSQL の実行計画を表示します

全リファレンス:isthmus.dev/tools/overview

ドキュメント

詳しいドキュメントは isthmus.dev をご覧ください。

コントリビュート

CONTRIBUTING.md をご覧ください。統合テストには Go 1.25+ と Docker が必要です。

make build        # Build binary
make test         # All tests (needs Docker)
make test-short   # Unit tests only
make lint         # Lint

ライセンス

Apache 2.0

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。