コンテンツにスキップ

リモートサーバーの接続

Hatago Hubは、ローカルのMCPサーバーだけでなく、HTTP/SSE経由でリモートのMCPサーバーとも接続できます。これにより、クラウド上のサービスや外部APIと簡単に連携できるようになります。

標準的なHTTP通信でMCPサーバーと接続します。リクエスト/レスポンス型の通信に適しています。

{
"mcpServers": {
"remote-http": {
"url": "https://api.example.com/mcp",
"type": "http",
"headers": {
"Authorization": "Bearer ${API_TOKEN}"
}
}
}
}
  1. APIキーの準備

    リモートサーバーのAPIキーやアクセストークンを取得します。

    Terminal window
    # 環境変数に設定
    export API_TOKEN="your-api-token-here"
  2. 設定ファイルの編集

    hatago-config.jsonにリモートサーバーを追加します:

    {
    "mcpServers": {
    "openai-api": {
    "url": "https://api.openai.com/v1/mcp",
    "type": "http",
    "headers": {
    "Authorization": "Bearer ${OPENAI_API_KEY}",
    "Content-Type": "application/json"
    },
    "tags": ["ai", "production"]
    }
    }
    }
  3. 接続テスト

    サーバーを起動して接続を確認します:

    Terminal window
    hatago serve --verbose
  4. 接続確認 内部リソース hatago://servers を読み取って、接続済みサーバーを確認します。

最も一般的な認証方式です:

{
"mcpServers": {
"api-server": {
"url": "https://api.example.com/mcp",
"type": "http",
"headers": {
"Authorization": "Bearer ${API_TOKEN}"
}
}
}
}

ヘッダーまたはクエリパラメータで認証:

{
"mcpServers": {
"api-key-header": {
"url": "https://api.example.com/mcp",
"type": "http",
"headers": {
"X-API-Key": "${API_KEY}"
}
},
"api-key-query": {
"url": "https://api.example.com/mcp?api_key=${API_KEY}",
"type": "http"
}
}
}

ユーザー名とパスワードでの認証:

{
"mcpServers": {
"basic-auth": {
"url": "https://api.example.com/mcp",
"type": "http",
"headers": {
"Authorization": "Basic ${BASE64_CREDENTIALS}"
}
}
}
}
{
"mcpServers": {
"openai": {
"url": "https://api.openai.com/v1/mcp",
"type": "http",
"headers": {
"Authorization": "Bearer ${OPENAI_API_KEY}",
"OpenAI-Organization": "${OPENAI_ORG_ID}"
},
"tags": ["ai", "gpt", "production"]
}
}
}
{
"mcpServers": {
"slack": {
"url": "https://slack.com/api/mcp",
"type": "sse",
"headers": {
"Authorization": "Bearer ${SLACK_BOT_TOKEN}"
},
"tags": ["communication", "notification"]
}
}
}
{
"mcpServers": {
"github": {
"url": "https://api.github.com/mcp",
"type": "http",
"headers": {
"Authorization": "token ${GITHUB_TOKEN}",
"Accept": "application/vnd.github.v3+json"
},
"tags": ["development", "vcs"]
}
}
}

Cloudflare Workersでは、ローカルサーバーは利用できませんが、リモートサーバーは問題なく利用できます:

// wrangler.toml
[vars];
REMOTE_MCP_URL = 'https://api.example.com/mcp';
// worker.ts
import { createHub } from '@himorishige/hatago-hub';
export default {
async fetch(request: Request, env: Env) {
const hub = createHub({
servers: {
'remote-api': {
url: env.REMOTE_MCP_URL,
type: 'http',
headers: {
Authorization: `Bearer ${env.API_TOKEN}`
}
}
}
});
// Hub処理...
}
};

症状

Connection refusedtimeoutエラーが発生する

解決方法:

  1. URLが正しいか確認
  2. ファイアウォールやプロキシの設定を確認
  3. APIサービスのステータスを確認

症状

401 Unauthorized403 Forbiddenエラー

解決方法:

  1. 環境変数が正しく設定されているか確認
    Terminal window
    echo $API_TOKEN
  2. トークンの有効期限を確認
  3. 必要な権限が付与されているか確認

症状

ブラウザコンソールにCORSエラーが表示される

解決方法:

  1. サーバー側でCORSヘッダーを設定
  2. プロキシサーバーを経由する
  3. Cloudflare WorkersなどのEdge環境を利用