mcpField
M
mcpolyglot

mcpolyglot

ローカル
github.com/ishay60データベース12 日前に更新

mcpolyglot について

mcpolyglotは、Postgres、MySQL、SQLite、MongoDB、OpenAPI REST APIに接続するAgent向けMCPサーバーです。ポリシー、監査用ID、Agentごとのトークンとスコープでアクセスを制御します。

主な機能

  1. 01データベースとREST APIへの接続
  2. 02ポリシーによるテーブルアクセス制限
  3. 03Agentごとのトークンとスコープ設定
  4. 04接続と公開ツールの確認
  5. 05stdioまたはStreamable HTTPでの提供

活用シーン

  1. 01Agentごとのデータベースアクセス分離
  2. 02参照可能なテーブルと操作の制限
  3. 03設定、接続先、利用可能なツールの検証

MCP 対応

設定された接続先、ポリシー、スコープに応じたツールをMCPクライアントに公開します。stdioまたはBearer認証付きStreamable HTTPで動作します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"ishay60-mcpolyglot": {
"command": "npx",
"args": [
"-y",
"@mcpolyglot/cli"
]
}
}
}
起動コマンドnpx -y @mcpolyglot/cli

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@mcpolyglot/cli0.4.3

ツール

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

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

詳細

@mcpolyglot/cli

mcpolyglot のコマンドラインインターフェイスです。設定をひな形から作成し、接続を検証し、ツールを一覧表示して、MCP サーバーを stdio または Streamable HTTP 経由で起動します。

npx @mcpolyglot/cli init       # interactive wizard
npx @mcpolyglot/cli doctor     # validate config, ping sources, list tools
npx @mcpolyglot/cli tools      # list tools mcpolyglot would expose
npx @mcpolyglot/cli serve      # start the MCP server (stdio)
npx @mcpolyglot/cli serve --http --port 7337   # start over Streamable HTTP

コマンド

コマンド目的
init現在のディレクトリに mcpolyglot.config.ts を対話形式で作成します。
doctor設定を読み込み、検証し、シークレットを解決して、各ソースに ping を送り、ツールを一覧表示します。
tools現在の設定で mcpolyglot が公開するすべてのツールを出力します。
serveサーバーを起動します。--http を指定すると、ベアラー認証付きの Streamable HTTP に切り替わります。
tokentoken create <agentId> はエージェントごとのトークンを作成し、token hash はトークンをハッシュ化します。

serve --http は、ベアラートークン、MCP URL、/healthz URL を stderr に出力します。デプロイ間でトークンを固定するには、設定(transport.auth.token)に指定してください。省略すると、起動ごとに新しいトークンが作成されます。

HTTP 経由での複数エージェント

各エージェントに、それぞれ専用のトークン、ソース、スコープを設定します。トークンは sha256 ハッシュとしてのみ保存されます。

mcpolyglot token create analyst       # prints the token once, its hash, and a config snippet
echo -n "$TOKEN" | mcpolyglot token hash
agents: [
  {
    id: 'analyst',
    tokens: [{ hash: '<sha256 hex>', label: '2026-09' }],
    scopes: ['schema:read', 'tables:read', 'query:raw'],
    sources: { 'pg.main': { policy: { tables: { users: 'none' } } } },
  },
],
  • エージェントに表示されるのは、そのエージェントに指定されたソースのツールのうち、スコープがすべてをカバーするものだけです。scopes の既定値は、該当するソースのスコープの和集合であり、それを上限とします。
  • エージェントごとの policy でできるのは、ソースの policy を狭めることだけです。テーブルごとに最も制限の厳しいアクセス設定が適用され、拒否リストは統合され、上限には小さい値が適用されます。エージェントは、ソースで非表示になっているテーブルを再び開いたり、ソースで許可されていない書き込み権限を得たりすることはできません。逆も同様です。エージェントのポリシーに記載されていないテーブルには、その defaultAccess が適用されます(最大でも read)。そのため、ソースの書き込み権限を維持する必要があるエージェントは、そのテーブルを再び write として記載する必要があります。エージェントは独自のコネクターを持ち、独自の DB 接続を使用します。ポリシーなしで指定されたソースは、メインの接続を共有します。
  • トークンによって監査用の agentId が決まり、agents が設定されている場合、x-mcpolyglot-agent ヘッダーは無視されます。不明または失効したトークンには 401 が返されます。
  • ローテーションするには、新しいハッシュを追加してクライアントを切り替え、古いトークンに revoked: true を設定する(または削除する)とともに、serve を再起動します。ホットリロードには対応していません。
  • agents にはベアラー認証(OAuth ではありません)が必要です。stdio では無視されます(ローカルユーザーは 1 人のみ)。doctor では、各エージェントが使用できるものとできないものが一覧表示されます。

stdio サーバーは stdout をクリーンに保つ必要があるため、CLI の出力はすべて stderr に送られます。

ドキュメント

MIT ライセンスです。

コメント

MCP は初めてですか?

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

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