mcpField
S
skgate

skgate

ローカル
github.comAI・エージェント134 日前に更新

skgate について

skgateは、MCPサーバー向けのセルフホスト型ゲートウェイ兼LLMプロキシです。OAuth 2.1によるMCP接続と、モデルエイリアスを設定できる共通APIを求める運用者に適しています。

主な機能

  1. 01OAuth 2.1対応のMCPゲートウェイ
  2. 02オンデマンド起動のMCPサーバー管理
  3. 03複数プロバイダー対応のOpenAI互換API
  4. 04ユーザー定義モデルエイリアスと仮想キー
  5. 05REST APIをMCPツールとして公開

活用シーン

  1. 01リモートおよび管理対象MCPサーバーへの接続を集約
  2. 02クライアント設定を変えずにLLMプロバイダーを切り替え
  3. 03選択したOpenAPI操作をMCPクライアントに公開

MCP 対応

skgateはMCPクライアントを、リモート、REST/OpenAPI、管理対象のMCPサーバーへ接続します。OAuth 2.1に対応し、管理対象サーバーをオンデマンドで起動できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"helv-io-skgate": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PUBLIC_URL",
"-e",
"OIDC_ISSUER",
"-e",
"OIDC_CLIENT_ID",
"-e",
"OIDC_CLIENT_SECRET",
"ghcr.io/helv-io/skgate:0.28.0"
],
"env": {
"PUBLIC_URL": "<PUBLIC_URL>",
"OIDC_ISSUER": "<OIDC_ISSUER>",
"OIDC_CLIENT_ID": "<OIDC_CLIENT_ID>",
"OIDC_CLIENT_SECRET": "<OIDC_CLIENT_SECRET>"
}
}
}
}
起動コマンドdocker run -i --rm -e PUBLIC_URL -e OIDC_ISSUER -e OIDC_CLIENT_ID -e OIDC_CLIENT_SECRET ghcr.io/helv-io/skgate:0.28.0
設定が必要な環境変数
PUBLIC_URLPublic origin of skgate, no trailing slash.
OIDC_ISSUERIssuer URL of the OIDC provider used for admin sign-in.
OIDC_CLIENT_IDOIDC client ID.
OIDC_CLIENT_SECRETシークレットOIDC client secret.

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

パッケージ
ocighcr.io/helv-io/skgate:0.28.0
ocighcr.io/helv-io/skgate:0.28.0-slim

ツール

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

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

詳細

skgate のロゴ

skgate

セルフホスト可能な MCP ゲートウェイおよび LLM プロキシです。任意の MCP サーバーまたは REST API を OAuth 2.1 の背後で 1 つのアドレスから提供し、LLM プロバイダー(OpenAI、Anthropic、Gemini、Grok、Ollama など)を、モデルエイリアスと仮想キーに対応した OpenAI 互換 API 1 つを通じてプロキシします。Grok のサブスクリプションも利用できます。API キーは必要ありません。

あらゆる MCP サーバーに対応します。skgate がサーバーを実行できるため、サーバーごとにコンテナーを用意する必要はありません。

M8ven Score

skgate のデモ

名前の由来

skgate /ɛsˈkɑːɡeɪt/(エス・カー・ゲート)

「sk」は多くの SI API キーの先頭に付く文字で、「gate」はゲートウェイを表しています。あまり良い名前ではありませんが、これが私たちの名前です。

ロゴの飛行機は内輪ネタです。一般の方には理解できないでしょうし、説明するつもりもありません。すみません。

品質

これは良いものですか?

はい

クイックスタート

skgate には、機密クライアントを設定したOIDC プロバイダーが必要です。管理者ログインには OIDC のみを使用します。1 台のマシンで試しますか?docs/quickstart.mdでは、バンドルされたプロバイダーを使い、アカウントを作成せずに skgate を実行できます。

# docker-compose.yml
services:
  skgate:
    container_name: skgate
    image: ghcr.io/helv-io/skgate:latest
    restart: always
    ports:
      - 8080:8080
    environment:
      - PUBLIC_URL=https://skgate.example.com
      - OIDC_ISSUER=https://auth.example.com
      - OIDC_CLIENT_ID=skgate
      - OIDC_CLIENT_SECRET=change-me
    volumes:
      - ./data:/data
    healthcheck:
      test: ["CMD", "/skgate", "healthcheck"]
      interval: 30s
      timeout: 5s
      retries: 3
  1. docker compose up -d
  2. https://skgate.example.com/admin を開き、OIDC プロバイダーからサインインします。
  3. mcp upstreams > Add upstream:リモート MCP サーバー、または skgate が実行する GitHub リポジトリ、npm パッケージ、PyPI パッケージを追加します(設定を提案して MCP サーバーを追加するを参照)。
  4. MCP クライアントを、含まれるすべてのアップストリームに対して https://skgate.example.com/mcp またはサイトのルートに接続するか、1 つのアップストリームに対して https://skgate.example.com/mcp/<alias> に接続します。要求されたらサインインします。

イメージタグ:

  • latest:プロキシ + 管理対象 MCP サーバー。Node.js(npx)、pnpm、Bun(bunx)、Deno、Python(uv、uvx)、Go、.NET、git を同梱しています。
  • slim:プロキシのみ

アップグレードするには、./data をバックアップしてから、docker compose pull && docker compose up -d を実行します。

SI プロバイダーをプロキシする

skgate は、SI プロバイダーの前段で動作する OpenAI 互換 API としても利用できます。アプリを 1 つのアドレスに接続すれば、アプリを変更せずに背後のプロバイダーを切り替えられます。ユーザー定義のモデルエイリアスを使うと、アプリに任意の安定したモデル名を指定できます。

Grok は API キーなしで、サブスクリプションを使ってサインインできます。それ以外のプロバイダーでは、そのプロバイダーの API キーを使用します(OpenAI、Anthropic、Gemini、Mistral、DeepSeek、Groq、OpenRouter、Ollama、LM Studio、および任意の OpenAI 互換エンドポイント)。

  1. status > Grok > Sign in:表示されたアドレスを開き、コードを入力して承認します。skgate がサインイン状態を維持します。
  2. keys > 名前を入力 > Create key。sk-... キーをコピーします。キーは一度だけ表示されます。
  3. 使用方法:ベース URL は https://skgate.example.com/v1、API キーは sk-... です(Examples を参照)。
    • 次のベース URL はすべて同じ API に接続します:/v1、/api、/api/v1、およびホスト名のみ。クライアントが要求する形式を使用してください。
  4. その他のプロバイダーの場合:status > Add providerでプロバイダーを選択し、API キーを入力します。プロバイダーのアドレスはどの形式で入力してもかまいません。skgate が適切なものを見つけます。

例

curl:モデルとチャット補完
export SKGATE=https://skgate.example.com KEY=sk-...
curl -s $SKGATE/v1/models -H "Authorization: Bearer $KEY"
curl -s $SKGATE/v1/chat/completions -H "Authorization: Bearer $KEY" \
  -H 'Content-Type: application/json' \
  -d '{"model":"<id from /v1/models>","messages":[{"role":"user","content":"Say hi"}]}'
OpenAI クライアント
export OPENAI_BASE_URL=https://skgate.example.com/v1 OPENAI_API_KEY=sk-...
from openai import OpenAI

client = OpenAI()  # reads the two variables above
r = client.chat.completions.create(model="<id from /v1/models>", messages=[{"role": "user", "content": "Say hi"}])
print(r.choices[0].message.content)
モデルエイリアス:モデルにユーザー定義の名前を付ける

エイリアスはユーザー定義です。skgate にはエイリアスは用意されていません。任意の名前を付けて、モデルに割り当ててください。この例では grok-latest を使っていますが、名前は自由に選べます。

この 1 か所で割り当て先を変更すると、その名前を使用しているすべてのアプリが一度に切り替わります。クライアント設定を変更する必要はありません。

Grok > Aliases:New alias grok-latest、Target model grok-4.7、Add alias。

client sends   {"model": "grok-latest", ...}
skgate sends   {"model": "grok-4.7", ...}

エイリアスは /v1/models の一覧の先頭に表示されます。

設定の提案を使って MCP サーバーを追加する `latest` イメージと、利用可能なプロバイダーの MCP ヘルパーモデルが必要です。初回は、ボタンの横にある **MCP ヘルパーモデルを選択** をクリックすると、ページ上でモデルピッカーが開きます。

mcp upstreams > Add upstream > managed process と入力します。

  1. MCP source URL / package に、次のいずれかを指定します。

    ソース実行方法
    @modelcontextprotocol/server-everythingnpm パッケージ、npx
    pypi:mcp-server-timePyPI パッケージ、uvx
    https://github.com/example-org/notes-mcpgit リポジトリ:クローン、インストール、実行(プライベートの場合:Suggest でトークンを求められます)
  2. 設定を提案 をクリックします。skgate が README とマニフェスト(package.json、pyproject.toml、server.json)を取得します。

    MCP ヘルパーモデルがコマンド、引数、インストール手順、環境変数名(シークレットかどうか、必須か任意か)を提案します。手動設定 の各フィールドに値が入力され、信頼度と警告も表示されます。

    まだ保存されていません。サーバーに必要な変数を設定します。

  3. エイリアスを設定し、必要な変数を入力して(空の変数はサーバーに渡されません)、保存 をクリックします。サーバーの URL は https://skgate.example.com/mcp/<alias> です。

ボタンがグレー表示されている場合は、ボタンにカーソルを合わせてください。横にある MCP ヘルパーモデルを選択 を使うか、先に status でプロバイダーを追加してください。

MCP クライアント:1 つのアップストリームまたはすべてのアップストリーム
URL提供内容
https://skgate.example.com/mcp/<alias>1 つのアップストリーム
https://skgate.example.com/mcpIn /mcp が付いたすべてのアップストリーム
https://skgate.example.com/ (MCP クライアント)Accept/Content-Type が MCP のように見える場合は /mcp と同じ集約エンドポイント。ブラウザーでは引き続き /admin が開きます

ホスト型コネクターは OAuth を使用します(クライアント ID とシークレットは空欄にしてください)。スクリプトや CLI ではキーを送信します。

{"mcpServers": {"skgate": {"type": "http", "url": "https://skgate.example.com/mcp/<alias>",
  "headers": {"Authorization": "Bearer sk-..."}}}}
オンデマンド MCP サーバー:アイドル時の RAM 使用量ゼロ

RAM に制約のあるホームラボでは、アイドル状態の MCP サーバーがリソースを消費しないようにする必要があります。

管理対象サーバー(npx、pnpm dlx、bunx、deno、uvx、git)は、skgate の子プロセスです。

デフォルト(Lifecycle が on-demand)では、最初のリクエストでサーバーが起動し、リクエストがない状態が 10 分続くと停止します。次のリクエストで再び起動します。

before   3 MCP servers = 3 containers, always running
after    1 skgate container; 0 server processes while idle, 1 per server in use
stopped  --request-->  starting  -->  running  --10 min idle-->  stopped
  • デフォルトはオンデマンドです。Lifecycle を always-on にすると、起動時にサーバーが起動します。
  • 停止後の最初のリクエストは、サーバーが起動するまで待機します。
  • 処理中のリクエストがあるサーバーは停止されません。
  • アイドル時間は import JSON の idleTimeoutSeconds で指定します(デフォルトは 600。フォームにはありません)。
{"mcpServers": {"time": {"command": "uvx", "args": ["mcp-server-time"], "skgate": {"idleTimeoutSeconds": 120}}}}
  • 集約エンドポイント /mcp には、In /mcp が付いたリモート、OpenAPI、常時起動のアップストリームが含まれます。オンデマンドサーバーは除外されるため、/mcp によって起動されることはありません。利用するには、クライアントを /mcp/<alias> に接続してください。
  • リモートと OpenAPI のアップストリームにはプロセスがないため、アイドル状態にする対象はありません。
  • 管理画面で Stop を実行すると、Start または Restart を実行するまでサーバーは停止したままです。
管理対象 MCP サーバー:npx(stdio)

mcp upstreams > import JSON > 貼り付け > Import の順に操作します。latest イメージが必要です。

{"mcpServers": {"everything": {"command": "npx", "args": ["-y", "@modelcontextprotocol/server-everything"]}}}

https://skgate.example.com/mcp/everything で提供されます。同じパッケージを、バンドルされている任意のランナーで実行できます。

ランナーcommandargs
npmnpx["-y", "<package>"]
pnpmpnpm["dlx", "<package>"]
Bunbunx["<package>"]
Denodeno["run", "-A", "npm:<package>"]
Pythonuvx["<package>"]
管理対象 MCP サーバー:git リポジトリ

mcp upstreams > import JSON > 貼り付け > Import の順に操作します。skgate がリポジトリをクローンし、install を実行してからコマンドを実行します。

{"mcpServers": {"notes": {"command": "node", "args": ["server.js"],
  "skgate": {"gitUrl": "https://github.com/example-org/notes-mcp.git", "gitRef": "main", "install": "npm ci"}}}}
リモート MCP サーバー

mcp upstreams > Add upstream > remote server と入力するか、次をインポートします。

{"mcpServers": {"docs": {"type": "http", "url": "https://mcp.example.com/mcp",
  "headers": {"Authorization": "Bearer ..."}}}}
## 機能
機能内容
Grok へのサインインデバイスコードまたはブラウザーからの貼り付けで認証し、トークンを更新します
その他のプロバイダーOpenAI、Anthropic、Gemini など。API キーで利用できます(docs)
モデルエイリアスユーザー定義のモデル名を使い、接続先を一度変更するだけで切り替えられます
API/v1、/api/v1、/api、プレフィックスなしに対応します。SSE(docs)
仮想キーハッシュ化され、キーごとのトークン入出力を記録します(docs)
MCPOAuth 2.1 の背後で、リモート、stdio、git サーバーを利用できます(docs)
ツールのライブ更新接続済みクライアントは、更新、再インストール、またはツールのオン・オフ切り替え後に上流のツールが変更されると通知を受け、再接続せずに新しいツールを利用できます
ツールとしての REST APIOpenAPI の記述を渡し、操作を選択します(または 名前と選択を提案 で名前を付け、主要な操作を選択できます)。MCP クライアントはそれらをツールとして利用できます(docs)

テスト済みの MCP クライアント

作者が稼働中の skgate でテストしたクライアントです。ステータスは実際の動作を示すもので、動作を保証するものではありません。

クライアントステータス備考
ChatGPTOK
ClaudeOK
GrokOK
HermesOK
Open WebUIOKOAuth 2.1 を使用し、クライアントを登録して認可してください。
Gemini警告接続できますが、ツールを呼び出しません。
Home Assistant警告OAuth クライアント ID とシークレットを手動で設定する必要があります。使用できる MCP 上流は 1 つだけです。
Cline未テスト
Continue未テスト
CursorOK
Goose未テスト
LibreChat未テスト
VS Code未テスト
Windsurf未テスト
Zed未テスト

ディレクトリモード

skgate stdio は、標準入力と標準出力で小規模な読み取り専用 MCP サーバーを起動します。MCP ディレクトリやスキャナーがサーバーを起動して提供機能を問い合わせ、skgate を確認できるようにするためのものです。実際の利用には適していません。skgate を実行するには、上記の Docker イメージを使用してください。

設定は不要で、ポートを開かず、データベースを読み込まず、ネットワークも使用しません。about、list_features、config_help の 3 つのツールがあります。これらは skgate についてのみ説明します。詳しくは docs/mcp.md を参照してください。

skgate の比較

2026-10-13 時点で、各プロジェクトのドキュメントに基づく大まかなガイドです。最新の機能は各ドキュメントで確認してください。

skgateLiteLLMMetaMCP
OpenAI 互換の LLM プロキシ対応対応、100 以上のプロバイダー非対応
MCP ゲートウェイ対応対応対応
stdio MCP サーバーの実行対応。必要に応じて起動し、アイドル時は停止対応。LITELLM_ENABLE_MCP_STDIO=true が設定されていない場合は無効対応
MCP クライアント向け OAuth動的クライアント登録に対応する OAuth 2.1対応。ゲートウェイで動的クライアント登録対応。MCP 仕様 2025-06-18 の OAuth
データベースSQLite、コンテナー 1 つ仮想キー用の PostgresPostgres(Docker Compose)

比較

各プロバイダーが他の場所でどのようにサインインを提供しているか、また skgate がどのように接続するかを示します。

プロバイダー他の場所でのサブスクリプションサインインskgate での接続
xAI Grok *OpenCode。今後さらに追加予定 [1]サブスクリプション
Anthropic Claudeサードパーティには提供されていません [2]API キー
DeepSeekなしAPI キー
Google Gemini *CLI ログインは再利用できません [3]API キー
Groq *なしAPI キー
Mistral *なしAPI キー
OpenAIChatGPT でサインイン [4]API キー
OpenRouter *なしAPI キー
LM Studioなしキー不要(ローカル)
Ollamaなしキー不要(ローカル)

* 無料プランを利用できます。

2026-10-05 時点。各プロバイダーの利用規約を確認してください。GitHub Copilot は skgate のプロバイダーではありません。

出典
  1. xAI、OpenCode で Grok を使用する
  2. Anthropic、法務およびコンプライアンス
  3. Google、Gemini CLI の利用規約
  4. OpenAI、ChatGPT でサインイン
## 設定

environment: の下、または env_file で設定します。プレースホルダーは .env.example にあります。

変数デフォルト用途
PUBLIC_URLhttp://localhost:8080パブリックオリジン。末尾にスラッシュは付けません。
OIDC_ISSUER発行者 URL。プロバイダーのディスカバリー issuer と一致する必要があります。
OIDC_CLIENT_ID, OIDC_CLIENT_SECRET機密クライアントの認証情報です。
OIDC_SCOPESopenid profile email groups要求するスコープです。
OIDC_REDIRECT_URLPUBLIC_URL/admin/oidc/callbackプロバイダーに登録するコールバックです。
OIDC_ALLOWED_EMAILS, OIDC_ALLOWED_GROUPS空管理者になれるユーザーを制限する、カンマ区切りのリストです。
MCP_OAUTH_REQUIRE_CONSENTtrue/authorize でのログイン後に承認/拒否ページを表示します。
SECRETS_KEYランダムな secrets.key ファイル保存されたアップストリームのシークレットを暗号化します。32 バイトの base64(openssl rand -base64 32)、または scrypt で伸長したパスフレーズを指定します。
GITHUB_TOKEN空リポジトリを読み取る際の Suggest 用の任意の GitHub トークンです。アップストリーム独自のアクセストークンが優先されます。GitHub のレート制限が引き上げられます。
UPDATE_CHECKtrue新しいリリースがある場合、ヘッダーのバージョン表示が黄色になります。false にするとチェックを無効にします。
LISTEN_ADDR:8080リッスンアドレスです。
DB_PATH/data/skgate.dbSQLite ファイルです。
LOG_LEVELinfoinfo または debug です。
LOG_LINES1000管理対象プロセスごとに保持する出力行数です(現在と前回の実行分。最大 512 KB)。
TZUTCUI とログで使用するタイムゾーンです。例:America/New_York。
PUID, PGID1000実行ユーザー ID。0、65534、または 61000-64999 は指定できません(管理対象サーバーが使用します)。
MANAGED_DIR/data/managed管理対象のアップストリームの作業ディレクトリとクローンです。
MANAGED_MAX_PROCS0同時に実行する管理対象プロセス数です。0 は無制限です。

Grok に必要な変数はありません。ステータスページでサインインしてください。モデルエイリアスは、カード上の Aliases コントロールから設定できます。

すべてのデータは /data(skgate.db、secrets.key)に保存されます。両方をバックアップしてください。

リバースプロキシ

PUBLIC_URL にパブリックな https オリジンを設定します。

/v1、/api、/mcp、/sse、/messages、/authorize、/token、/register、/.well-known にフォワード認証を設定しないでください。

作者がテストしたのは Traefik のみです。試した内容を添えてIssue を作成してください。

Traefik
services:
  skgate:
    container_name: skgate
    image: ghcr.io/helv-io/skgate:latest
    restart: always
    network_mode: web   # existing Docker network shared with Traefik; no ports needed
    environment:
      - PUBLIC_URL=https://skgate.example.com   # the public https origin
      - OIDC_ISSUER=https://auth.example.com
      - OIDC_CLIENT_ID=skgate
      - OIDC_CLIENT_SECRET=change-me
    volumes:
      - ./data:/data
    healthcheck:
      test: ["CMD", "/skgate", "healthcheck"]
      interval: 30s
      timeout: 5s
      retries: 3
    labels:
      # no forward-auth middleware on /v1, /api, /mcp, /sse, /messages, /authorize, /token, /register, /.well-known
      - traefik.enable=true
      - traefik.http.routers.skgate.rule=Host(`skgate.example.com`)
      - traefik.http.routers.skgate.entryPoints=websecure
      - traefik.http.services.skgate.loadbalancer.server.port=8080
nginx
server {
    listen 443 ssl;
    http2 on;
    server_name skgate.example.com;
    ssl_certificate     /etc/ssl/skgate/fullchain.pem;
    ssl_certificate_key /etc/ssl/skgate/privkey.pem;

    client_max_body_size 32m;                         # skgate accepts up to 32 MB

    location / {
        proxy_pass http://skgate:8080;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header Host $host;                  # keep Host
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;                          # SSE streaming
        proxy_read_timeout 3600s;                     # long streams
        proxy_send_timeout 3600s;
    }
}
Caddy
skgate.example.com {
    # Host and X-Forwarded-* are set by default; no body limit, no response timeout
    reverse_proxy skgate:8080 {
        flush_interval -1                             # SSE streaming
    }
}
HAProxy
defaults
    mode http
    timeout connect 5s
    timeout client  1h                                # long streams
    timeout server  1h
    timeout tunnel  1h

frontend https
    bind :443 ssl crt /etc/haproxy/certs/skgate.pem alpn h2,http/1.1
    option forwardfor                                 # X-Forwarded-For; Host is kept, responses are not buffered
    http-request set-header X-Forwarded-Proto https
    default_backend skgate

backend skgate
    option httpchk GET /healthz
    server skgate skgate:8080 check
Apache
# a2enmod ssl proxy proxy_http headers
<VirtualHost *:443>
    ServerName skgate.example.com
    SSLEngine on
    SSLCertificateFile    /etc/ssl/skgate/fullchain.pem
    SSLCertificateKeyFile /etc/ssl/skgate/privkey.pem

    # keep Host
    ProxyPreserveHost On
    RequestHeader set X-Forwarded-Proto "https"
    # long streams
    ProxyTimeout 3600
    # flushpackets: no buffering (SSE)
    ProxyPass        / http://skgate:8080/ flushpackets=on
    ProxyPassReverse / http://skgate:8080/
</VirtualHost>

OIDC の設定

クライアント設定値
種類機密クライアント、client_secret_basic または client_secret_post
フローPKCE S256 を使用する認可コード
リダイレクト URIhttps://skgate.example.com/admin/oidc/callback
スコープopenid profile email groups(groups が拒否される場合:OIDC_SCOPES=openid profile email)
ID トークン非対称署名(RS、PS、ES、EdDSA)。ディスカバリーの issuer は OIDC_ISSUER と一致する必要があります。

OIDC_ISSUER、OIDC_CLIENT_ID、OIDC_CLIENT_SECRET が設定されていなくても skgate は起動しますが、管理者機能は利用できません。

プロバイダーがログインを許可するすべてのユーザーが管理者になります。プロバイダー側で制限するか、OIDC_ALLOWED_EMAILS/OIDC_ALLOWED_GROUPS を設定してください。

Authelia、Authentik、Keycloak、Zitadel、Pocket ID のヒント:docs/oidc.md。

セキュリティに関する注意事項

  • 仮想キーは SHA-256 ハッシュとして保存され、上流の認証情報は AES-256-GCM で暗号化されます。
  • /authorize には管理者セッションが必要です。
  • 管理対象の上流は管理者が指定したコマンドを実行します。これを無効にするには、slim イメージを使用してください。
  • /register、/token、/authorize および管理者フォームでは、到着が遅すぎるリクエスト本文は切り捨てられます。アップロードとストリーム(/v1、/mcp)にはこの制限はありません。
  • ヘッダーを送信できないクライアント向けに、URL(?key=)でキーを許可できます。URL はログ、履歴、リファラーに漏れるため、キーごとにデフォルトで無効になっています。

既知のトレードオフを含む詳細については、運用をご覧ください。

SI の支援を受けて開発

skgate は SI の支援を受けて開発されています。コーディングエージェントがコード、テスト、ドキュメントの多くを作成します。

すべての変更は作者がレビューし、セキュリティ関連の経路(OAuth、トークン、シークレット)は人間がレビューしてテストします。最先端のモデルによるレビューは補助であり、代替ではありません。実力を試すようなイシューやプルリクエストを歓迎します。

開発

go build ./... && go vet ./... && go test ./...

docs/development.md。コントリビューターとエージェントの方は、AGENT.mdをご覧ください。

ライセンス

MIT。詳しくはLICENSEをご覧ください。

Star History

スター履歴グラフ

コメント

MCP は初めてですか?

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

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