mcpolyglot について
mcpolyglotは、Postgres、MySQL、SQLite、MongoDB、OpenAPI REST APIに接続するAgent向けMCPサーバーです。ポリシー、監査用ID、Agentごとのトークンとスコープでアクセスを制御します。
主な機能
- 01データベースとREST APIへの接続
- 02ポリシーによるテーブルアクセス制限
- 03Agentごとのトークンとスコープ設定
- 04接続と公開ツールの確認
- 05stdioまたはStreamable HTTPでの提供
活用シーン
- 01Agentごとのデータベースアクセス分離
- 02参照可能なテーブルと操作の制限
- 03設定、接続先、利用可能なツールの検証
MCP 対応
設定された接続先、ポリシー、スコープに応じたツールをMCPクライアントに公開します。stdioまたはBearer認証付きStreamable HTTPで動作します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
@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 に切り替わります。 |
token | token 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 に送られます。
ドキュメント
- README 全文 → https://github.com/ishay60/mcpolyglot
- アーキテクチャ → https://github.com/ishay60/mcpolyglot/blob/develop/ARCHITECTURE.md
- 例 → https://github.com/ishay60/mcpolyglot/tree/develop/examples
MIT ライセンスです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。