mcpField
S
service-registry

service-registry

github.com/athola開発343113 回インストール1 日前に更新
リポジトリ

service-registry について

service-registryは、複数の外部サービス接続を管理するレジストリパターンです。統一した実行方法、ヘルスチェック、要件に応じた選択、フェイルオーバーを共通の設定と結果形式で扱えます。

主な機能

  1. 01サービス登録と認証設定
  2. 02共通インターフェースでのタスク実行
  3. 03単一または全サービスのヘルスチェック
  4. 04タスク要件に応じたサービス選択
  5. 05正常なサービスへのフェイルオーバー

活用シーン

  1. 01複数の外部サービス連携の管理
  2. 02サービス状態と利用可能なサービスの確認
  3. 03障害時に別の正常なサービスを試行
  4. 04コンテキストや応答速度の要件に応じた選択

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/athola/claude-night-market --skill service-registry

インストール後、Claude Code で/service-registryを入力して読み込まれたか確認します。

同梱ファイルmodules/execution-patterns.mdmodules/service-config.md

詳細

サービスレジストリ

概要

外部サービスへの接続を管理するためのレジストリパターンです。複数のサービス連携にまたがる設定、ヘルスチェック、実行を処理します。

使用する場合

  • 複数の外部サービスを管理する場合。
  • 一貫した実行インターフェースが必要な場合。
  • サービス全体のヘルスモニタリングを行いたい場合。
  • サービスのフェイルオーバーロジックを構築する場合。

使用しない場合

  • レジストリが不要な単一サービスとの連携

主な概念

サービス設定
@dataclass
class ServiceConfig:
    name: str
    command: str
    auth_method: str  # "api_key", "oauth", "token"
    auth_env_var: str
    quota_limits: dict
    models: list[str] = field(default_factory=list)

確認方法: コマンドに --help フラグを付けて実行し、利用可能かどうかを確認します。

実行結果
@dataclass
class ExecutionResult:
    success: bool
    stdout: str
    stderr: str
    exit_code: int
    duration: float
    tokens_used: int

確認方法: コマンドに --help フラグを付けて実行し、利用可能かどうかを確認します。

クイックスタート

サービスを登録する
from leyline.service_registry import ServiceRegistry

registry = ServiceRegistry()

registry.register(
    "gemini",
    ServiceConfig(
        name="gemini",
        command="gemini",
        auth_method="api_key",
        auth_env_var="GEMINI_API_KEY",
        quota_limits={"rpm": 60, "daily": 1000},
    ),
)

確認方法: コマンドに --help フラグを付けて実行し、利用可能かどうかを確認します。

サービス経由で実行する
result = registry.execute(
    service="gemini",
    prompt="Analyze this code",
    files=["src/main.py"],
    model="gemini-3-pro",
)

if result.success:
    print(result.stdout)

確認方法: コマンドに --help フラグを付けて実行し、利用可能かどうかを確認します。

ヘルスチェック
# Check single service
status = registry.health_check("gemini")

# Check all services
all_status = registry.health_check_all()
for service, healthy in all_status.items():
    print(f"{service}: {'OK' if healthy else 'FAILED'}")

確認方法: コマンドに --help フラグを付けて実行し、利用可能かどうかを確認します。

サービスの選択

自動選択
# Select best service for task
service = registry.select_service(
    requirements={"large_context": True, "fast_response": False}
)

確認方法: コマンドに --help フラグを付けて実行し、利用可能かどうかを確認します。

フェイルオーバーパターン
def execute_with_failover(prompt: str, files: list) -> ExecutionResult:
    for service in registry.get_healthy_services():
        result = registry.execute(service, prompt, files)
        if result.success:
            return result
    raise AllServicesFailedError()

確認方法: コマンドに --help フラグを付けて実行し、利用可能かどうかを確認します。

連携パターン

# In your skill's frontmatter
dependencies: [leyline:service-registry]

確認方法: コマンドに --help フラグを付けて実行し、利用可能かどうかを確認します。

詳細リソース

  • サービス設定:設定オプションについては、modules/service-config.md を参照してください。
  • 実行パターン:高度な使い方については、modules/execution-patterns.md を参照してください。

完了条件

  • サービスが設定とともに登録されていること。
  • ヘルスチェックが成功していること。
  • 実行結果が適切に処理されていること。

コメント