mcpField
I
Interop

Interop

ローカル
yigitozgumus.com開発ツール668 週間前に更新

Interop について

Interopは、開発プロジェクトの整理、コンテキストに応じたコマンド実行、設定管理を行うGo製コマンドラインツールです。ローカルおよびGit上の設定を扱い、MCPサーバー経由でAIアシスタントにコマンドを公開できます。

主な機能

  1. 01プロジェクトの追跡と検証
  2. 02コンテキスト対応のコマンド実行
  3. 03複数ディレクトリからのコマンド読み込み
  4. 04Git上のリモート設定の同期
  5. 05TOML設定と競合検出
  6. 06MCPサーバー経由のコマンド公開

活用シーン

  1. 01チーム内で標準コマンドを共有
  2. 02環境ごとのツールを管理
  3. 03再利用可能なプロジェクトとコマンド設定の管理
  4. 04AIアシスタントへの開発コマンド公開

MCP 対応

複数のMCPサーバーを設定し、AIアシスタントにコマンドを公開できます。MCPサーバー定義は、プロジェクトやコマンドの設定とともに管理できます。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

Interop

Interop は、プロジェクトの管理、コマンドの実行、AI アシスタントとの統合を統一されたインターフェースで行い、開発者の生産性向上を支援する強力なコマンドラインインターフェースツールです。

Interop とは?

Interop は、開発プロジェクト、カスタムコマンド、AI アシスタントをつなぐ役割を果たします。次のことができます。

  • メタデータ、コマンド、検証機能を使って複数のプロジェクトを整理する
  • プロジェクトのコンテキストを考慮したコマンドを定義して実行する
  • AI との連携のために複数の MCP(Model Context Protocol)サーバーを設定する
  • さまざまな分野にわたる反復的な開発タスクを効率化する

主な機能

  • プロジェクト管理:複数のプロジェクトディレクトリを追跡して検証します
  • コマンド実行:プロジェクトのコンテキストと引数を使ってコマンドを実行します
  • 動的なコマンド読み込み:優先順位のルールに従って、複数のディレクトリからコマンドを読み込みます
  • リモート設定システム:競合を解決しながら、Git リポジトリから設定を取得して同期します
  • AI 連携:メタデータを拡充したコマンドを AI アシスタントに公開する、複数の MCP サーバーを利用できます
  • 設定管理:検証と競合検出に対応した TOML ベースの設定
  • クロスプラットフォーム対応:Linux、macOS、Windows で動作します

インストール

Homebrew を使用する(macOS/Linux)
brew install yigitozgumus/formulae/interop
ソースからビルドする
  1. リポジトリをクローンします。
git clone https://github.com/yigitozgumus/interop.git
cd interop
  1. プロジェクトをビルドします。
go build -o interop ./cmd/cli

設定

Interop は ~/.config/interop/settings.toml にある TOML 設定ファイルを使用します。編集するには、次のようにします。

interop edit
設定の構造
# Global settings
log_level = "verbose"  # Options: error, warning, verbose
executable_search_paths = ["~/.local/bin", "~/bin"]
command_dirs = ["~/.config/interop/commands.d", "~/projects/shared/interop-commands"]
mcp_port = 8081  # Default MCP server port

# MCP Server Configurations
[mcp_servers.domain1]
name = "domain1"
description = "Domain-specific commands"
port = 8082

[mcp_servers.domain2]
name = "domain2"
description = "Another domain for commands"
port = 8083

# Project Definitions
[projects.project1]
path = "~/projects/project1"
description = "Project 1 description"
commands = [
  { command_name = "build", alias = "b" },
  { command_name = "test" }
]

[projects.project2]
path = "~/projects/project2"
description = "Project 2 description"
commands = [
  { command_name = "deploy", alias = "d" }
]

# Command Definitions
[commands.build]
cmd = "go build ./..."
description = "Build the project"
is_enabled = true
is_executable = false
# Assign to a specific MCP server
mcp = "domain1"

[commands.test]
cmd = "go test ./..."
description = "Run tests"
is_enabled = true
is_executable = false

[commands.deploy]
cmd = "deploy.sh"
description = "Deploy the project"
is_enabled = true
is_executable = true
mcp = "domain2"

# Command with Arguments, Version, and Examples
[commands.build-app]
cmd = "go build -o ${output_file} ${package}"
description = "Build a Go application"
version = "1.1.0"
is_enabled = true
is_executable = false
arguments = [
  { name = "output_file", type = "string", description = "Output file name", required = true },
  { name = "package", type = "string", description = "Package to build", default = "./cmd/app" }
]
examples = [
  {
    description = "Build the main application",
    command = "interop run build-app output_file=my-app"
  },
  {
    description = "Build a specific package",
    command = "interop run build-app output_file=my-tool package=./cmd/tool"
  }
]

プロジェクト管理

プロジェクトは、Interop における基本的な管理単位です。

プロジェクトの一覧表示
interop projects

出力例:

PROJECTS:
=========

📁 Name: project1
   Path: ~/projects/project1
   Status: Valid: ✓  |  In $HOME: ✓
   Description: Project 1 description
   Commands:
      ⚡ build (alias: b)
         Build the project
      ⚡ test
         Run tests

📁 Name: project2
   Path: ~/projects/project2
   Status: Valid: ✓  |  In $HOME: ✓
   Description: Project 2 description
   Commands:
      ⚡ deploy (alias: d)
         Deploy the project
プロジェクトの設定

各プロジェクトには、次の項目が含まれます。

  • パス:ディレクトリの場所(存在することを検証します)
  • 説明:任意のプロジェクトの説明
  • コマンド:任意のエイリアスを設定できるコマンドの一覧

動的な設定読み込み

Interop は、複数のディレクトリから設定定義を読み込むことに対応しており、大規模な設定コレクションをより適切に整理し、拡張できます。

設定

設定定義ファイルを含むディレクトリを指定するには、グローバル設定に command_dirs を追加します。

command_dirs = [
  "~/.config/interop/config.d",
  "~/projects/shared/interop-configs"
]
設定ディレクトリの構造

各ディレクトリには、設定定義を含む複数の *.toml ファイルを配置できます。

~/.config/interop/config.d/
├── git-commands.toml
├── docker-commands.toml
├── dev-projects.toml
└── ai-prompts.toml

git-commands.toml の例:

[commands.git-status]
cmd = "git status"
description = "Show the working tree status"
version = "1.0.0"
is_enabled = true
mcp = "dev-tools"

[commands.git-pull]
cmd = "git pull --rebase"
description = "Fetch from and integrate with another repository"
version = "1.0.0"
is_enabled = true
mcp = "dev-tools"

dev-projects.toml の例:

[projects.my-api]
path = "~/projects/my-api"
description = "Main API project"
commands = [
  { command_name = "build", alias = "b" },
  { command_name = "test", alias = "t" }
]
含められる内容

これらのディレクトリ内の設定ファイルには、次の項目を含められます。

  • コマンド([commands.name])- コマンド定義
  • プロジェクト([projects.name])- プロジェクト設定
  • プロンプト([prompts.name])- AI プロンプトテンプレート
  • MCP サーバー([mcp_servers.name])- MCP サーバー定義
優先順位のルール

設定名が競合した場合、Interop は明確な優先順位に従います。

  1. メインの settings.toml(最優先)
  2. command_dirs で指定した順序での設定ディレクトリ
  3. ディレクトリ内のファイルをアルファベット順

これにより、設定の解決が予測しやすくなり、共有設定を簡単に上書きできます。

メリット
  • 整理:関連する設定を別々のファイルにまとめられます
  • 共有:設定コレクションをチームやプロジェクト間で共有できます
  • モジュール化:ディレクトリ単位で設定一式を有効化または無効化できます

リモート設定システム

Interop には、Git リポジトリから設定を取得して管理できる強力なリモート設定システムが備わっています。これにより、チームでコマンド定義を共有し、設定ライブラリを一元管理し、ローカル環境をリモートソースと同期した状態に保つことができます。

概要

リモート設定システムは、次の機能を提供します。

  • Git リポジトリから設定を取得します
  • config.d.remote と executables.remote ディレクトリにローカルコピーを保持します
  • SHA-256 ハッシュを使用してファイルの変更を追跡し、差分更新を行います
  • リモート設定をローカル設定に自動的に統合します
  • ローカル設定を優先する競合検出および解決機能を提供します
リモート設定の管理
リモートリポジトリの追加
# Add a remote Git repository
interop config remote add my-team https://github.com/myteam/interop-configs.git

# Add with SSH (recommended for private repositories)
interop config remote add my-team [email protected]:myteam/interop-configs.git
リモートリポジトリの一覧表示
interop config remote show

出力例:

Remote Configurations:
======================

🔗 my-team
   URL: [email protected]:myteam/interop-configs.git
   Status: ✓ Valid Git URL

🔗 shared-tools  
   URL: https://github.com/company/shared-tools.git
   Status: ✓ Valid Git URL
リモート設定の取得
# Fetch from all configured remotes
interop config remote fetch

# Fetch from a specific remote
interop config remote fetch my-team

取得プロセス:

  1. リポジトリを一時ディレクトリにクローンします
  2. リポジトリの構造を検証します(config.d フォルダーおよび/または executables フォルダーが必要です)
  3. ファイルのハッシュを比較して変更を検出します
  4. 変更されたファイルのみをローカルのリモートディレクトリに同期します
  5. コミット情報を使ってバージョン追跡を更新します
  6. リモートから削除されたファイルをクリーンアップします
リモートリポジトリの削除
# Remove a specific remote
interop config remote remove my-team

# Clear all remote configurations and cached files
interop config remote clear
リポジトリ構造の要件

リモートリポジトリは、次の構造に従う必要があります。

your-repo/
├── config.d/              # Configuration files (required)
│   ├── commands.toml      # Command definitions
│   ├── projects.toml      # Project configurations
│   └── mcp-servers.toml   # MCP server definitions
└── executables/           # Executable files (optional)
    ├── deploy.sh
    ├── build-tool
    └── scripts/
        └── helper.py
リモート設定の例

config.d/team-commands.toml:

[commands.team-deploy]
cmd = "deploy.sh"
description = "Deploy using team standards"
is_executable = true
mcp = "team-tools"
version = "2.1.0"
arguments = [
  { name = "environment", type = "string", required = true, description = "Target environment" },
  { name = "force", type = "bool", default = false, description = "Force deployment" }
]

[commands.team-test]
cmd = "run-team-tests.sh"
description = "Run standardized team tests"
is_executable = true
mcp = "team-tools"

[mcp_servers.team-tools]
name = "team-tools"
description = "Team standardized tools"
port = 8084
ローカルへの統合

リモート設定は、ローカル環境に自動的に統合されます。

ディレクトリ構造
~/.config/interop/
├── settings.toml           # Your local settings
├── config.d/              # Local configurations
│   └── personal.toml
├── config.d.remote/       # Remote configurations (auto-managed)
│   ├── team-commands.toml
│   └── shared-tools.toml
├── executables/           # Local executables
├── executables.remote/    # Remote executables (auto-managed)
│   ├── deploy.sh
│   └── build-tool
└── versions.toml          # Remote tracking metadata (auto-managed)
優先順位のルール

設定が競合した場合、Interop は次の優先順位に従います。

  1. ローカル設定(config.d/)—最優先
  2. リモート設定(config.d.remote/)—優先度は低め
  3. メインの settings.toml —グローバル設定のフォールバック

これにより、共有リモート設定を活用しながら、常にローカルのカスタマイズが優先されます。

競合の検出と解決

検証システムは、包括的な競合検出機能を提供します。

interop validate

競合がある場合の出力例:

Configuration Overview
=====================

Configuration Sources:
---------------------
🏠 Main Settings: /Users/user/.config/interop/settings.toml
🏠 Command Directories:
   🏠 /Users/user/.config/interop/config.d (2 files)
☁️ Remote Configuration:
   ✓ config.d.remote: Available (3 files)
   ✓ executables.remote: Available (5 files)
   ✓ Remote tracking: Active

⚠️ Potential Conflicts:
   ⚠️ Command 'deploy' exists in both local and remote configs
   ⚠️ Command 'test-suite' exists in both local and remote configs
   → Local configurations take precedence

Commands:
--------
🌐 ✓ deploy (Shell) (🏠 Local)
   └─ My custom deploy script
   └─ 🔌 Default MCP server (Port: 8081)

🌐 ✓ team-deploy (Shell) (☁️ Remote)
   └─ Deploy using team standards
   └─ 🔌 Assigned to MCP server: team-tools (Port: 8084)
バージョン追跡と差分更新

Interop は、リモート設定を詳細に追跡します。

バージョン情報

システムは次の情報を追跡します。

  • 変更検出用のファイルハッシュ(SHA-256)
  • リポジトリの状態を示す最新のコミット ID
  • 更新履歴を示す取得タイムスタンプ
  • 削除されたファイルのクリーンアップ用のファイルパス
差分更新

2 回目以降の取得は最適化されます。

  • 変更されたファイルのみをダウンロードします
  • 削除されたファイルをローカルでクリーンアップします
  • ロールバックできるよう、コミット履歴を保持します
  • ネットワークの使用量を最小限に抑えます
Git URL の検証

システムは、互換性を確保するために Git URL を検証します。

サポートされている形式

SSH 形式:

[email protected]:user/repo.git
[email protected]:user/repo.git
[email protected]:user/repo.git

HTTPS 形式:

https://github.com/user/repo.git
https://gitlab.com/user/repo.git
https://bitbucket.org/user/repo.git

カスタム Git サーバー:

https://git.company.com/team/configs.git
[email protected]:team/configs.git
使用例
チームでの標準化
# Set up team-wide configurations
interop config remote add company-standards [email protected]:company/interop-standards.git
interop config remote fetch

# Now all team members have access to:
# - Standardized deployment scripts
# - Common development commands  
# - Shared MCP server configurations
# - Team-specific project templates
複数環境の管理
# Different configurations for different environments
interop config remote add prod-tools [email protected]:company/prod-tools.git
interop config remote add dev-tools [email protected]:company/dev-tools.git

# Fetch environment-specific tools
interop config remote fetch prod-tools
interop config remote fetch dev-tools
オープンソースのツールコレクション
# Add community-maintained tool collections
interop config remote add awesome-dev-tools https://github.com/community/awesome-dev-tools.git
interop config remote fetch
ベストプラクティス
リポジトリの構成
  1. 関心事を分離する:領域ごとに異なるリポジトリを使用します
  2. 設定にバージョンを付ける:安定した設定セットにはリリースタグを付けます
  3. コマンドを文書化する:詳しい説明と例を含めます
  4. 設定をテストする:プッシュする前に設定を検証します
セキュリティに関する考慮事項
  1. プライベートリポジトリにはSSH キーを使用します
  2. 取得する前にリモート設定を確認します
  3. 機密データはローカルに保管します。リモート設定にシークレットを含めないでください
  4. リモートソースを定期的に監査します
チームでのワークフロー
  1. チームのリポジトリで共通ツールを一元管理します
  2. 個人の好みに応じてローカルでの上書きを許可します
  3. 共有設定への変更をバージョン管理します
  4. 共有設定が変更された際は更新内容を周知します
トラブルシューティング
よくある問題

リポジトリが見つからない場合:

# Check URL and access permissions
git clone <your-repo-url>  # Test manually

リポジトリの構造が無効な場合:

# Ensure repository has config.d/ or executables/ directory
# Check repository contents match expected structure

ローカル設定との競合がある場合:

# Use validation to identify conflicts
interop validate

# Rename local commands if needed
# Or remove remote repository if not needed

ネットワークの問題がある場合:

# Check internet connectivity
# Verify Git credentials are set up
# Try fetching manually: git clone <repo-url>

コマンド管理

Interop は、ワークフローに合わせて柔軟に利用できるコマンドシステムを提供します。

コマンドの一覧表示
interop commands

出力例:

COMMANDS:
=========

⚡ Name: build
   Status: Enabled: ✓  |  Source: Script
   Description: Build the project
   MCP Server: domain1

⚡ Name: test
   Status: Enabled: ✓  |  Source: Script
   Description: Run tests
   
⚡ Name: deploy
   Status: Enabled: ✓  |  Source: Executable
   Description: Deploy the project
   MCP Server: domain2
コマンドの種類
  1. シェルコマンド:システムシェルを通じて実行します

    [commands.list]
    cmd = "ls -la"
    
  2. 実行可能コマンド:設定されたパスから直接実行します

    [commands.deploy]
    cmd = "deploy.sh"
    is_executable = true
    
  3. プロジェクトに紐づくコマンド:特定のプロジェクトのコンテキストで実行します

    [projects.project1]
    commands = [{ command_name = "build" }]
    
  4. 引数付きコマンド:検証機能を備えたテンプレート化コマンドです

    [commands.build-app]
    cmd = "go build -o ${output_file} ${package}"
    arguments = [
      { name = "output_file", type = "string", required = true },
      { name = "package", type = "string", default = "./cmd/app" }
    ]
    
コマンドの実行

名前またはエイリアスでコマンドを実行します:

# Simple command
interop run build

# Command with alias
interop run b  # Runs the build command

# Command with arguments
interop run build-app output_file=myapp.exe

プロジェクトに紐づくコマンドの場合、Interop は自動的に次の処理を行います:

  1. プロジェクトディレクトリに移動します
  2. コマンドを実行します
  3. 元のディレクトリに戻ります

MCP サーバーとの連携

Interop は、MCP(Model Context Protocol)サーバーを介した AI 連携を強力にサポートしています。

MCP サーバーとは?

MCP サーバーは、Claude などの AI アシスタントが呼び出せるツールとして、コマンドを公開します。各サーバーは異なるコマンドセットを提供できるため、ドメインごとに整理できます。

MCP サーバーの管理
# Start servers
interop mcp start                # Start default server
interop mcp start domain1        # Start specific server
interop mcp start --all          # Start all servers

# Check status
interop mcp status               # Default shows all servers
interop mcp status domain1       # Check specific server

# Stop servers
interop mcp stop domain1         # Stop specific server
interop mcp stop --all           # Stop all servers

# Restart servers
interop mcp restart domain1      # Restart specific server
interop mcp restart --all        # Restart all servers

# Port management
interop mcp port-check           # Check if ports are available

# Get configuration for AI tools
interop mcp export               # Export JSON configuration
複数の MCP サーバー

コマンドをドメインごとに整理できます:

[mcp_servers.work]
name = "work"
description = "Work-related commands"
port = 8082

[mcp_servers.personal]
name = "personal"
description = "Personal project commands"
port = 8083

[commands.work-task]
cmd = "work-script.sh"
mcp = "work"  # This command is available on the work server

[commands.personal-task]
cmd = "personal-script.sh"
mcp = "personal"  # This command is available on the personal server

各サーバーが割り当てられたコマンドのみを公開するため、異なるドメインを明確に分離できます。

AI アシスタントとの連携

AI アシスタントが MCP サーバーに接続すると、次のことができます:

  1. 利用可能なコマンドとその説明を確認する
  2. 引数付きでコマンドを実行する
  3. コマンドの出力とエラーを受け取る

これにより、自然言語の指示に基づいて AI がタスクの実行を支援できる強力なインターフェースが実現します。

コマンドの引数

コマンドには、検証機能付きの型指定引数を設定できます:

[commands.generate]
cmd = "generate.sh ${type} ${name} ${force}"
description = "Generate a new component"
arguments = [
  { name = "type", type = "string", description = "Component type", required = true },
  { name = "name", type = "string", description = "Component name", required = true },
  { name = "force", type = "bool", description = "Overwrite if exists", default = false }
]
引数の型
  • string:テキスト値
  • number:数値(整数または小数)
  • bool:ブール値(true/false)
引数の機能
  • 必須:指定が必要な引数を設定します
  • デフォルト値:任意の引数に代替値を設定します
  • 説明:各引数の目的を記述します
  • プレフィックス:引数に使用するコマンドラインフラグを指定します(例:--key)
引数の使用
# Named arguments
interop run generate type=component name=Button

# Positional arguments (in order of definition)
interop run generate component Button true
プレフィックス付き引数

プレフィックス付き引数を使うと、特定のプレフィックス(--keys や -f など)を持つコマンドライン引数を定義できます。特定の形式の引数を必要とするスクリプトやツールを扱う場合に特に便利です:

[commands.update-strings]
cmd="python3 scripts/update_strings.py"
description="Update localization strings"
arguments=[
  {name = "keys", type="string", required = false, description = "Keys to update", prefix = "--keys"},
  {name = "language", type="string", required = false, description = "Language code", prefix = "--language"},
  {name = "verbose", type="bool", required = false, description = "Verbose output", prefix = "--verbose"}
]

実行時:

interop run update-strings --keys "key1 key2" --language en --verbose true

実際に実行されるコマンドは次のとおりです:

python3 scripts/update_strings.py --keys key1 key2 --language en --verbose
プレフィックス付き引数の仕組み
  1. プレフィックス付き引数の場合:Interop はプレフィックスを付けてコマンドに追加します
  2. プレフィックスなしの引数の場合:Interop は ${arg_name} プレースホルダーを使って、コマンド文字列内の値を置き換えます
  3. プレフィックス付きのブール引数の場合:値が true ならプレフィックスのみが追加され、それ以外の場合は引数が省略されます
  4. プレフィックス付きの非ブール引数の場合:プレフィックスと値が一緒に追加されます
プレフィックス付き引数のメリット
  • すべてのシェル(bash、fish、zsh など)で一貫して動作します
  • 引数は任意の順序で指定できます
  • 引数値の特殊文字をエスケープする必要がありません
  • 特定の引数形式を必要とするツールと互換性があります

拡張コマンドメタデータ

Interop は、AI アシスタントとの連携とドキュメント作成を改善するため、コマンドに詳細なメタデータを設定できます。

バージョン情報

コマンドにバージョン追跡を追加します:

[commands.deploy]
cmd = "deploy.sh"
description = "Deploy the application"
version = "2.1.0"
is_enabled = true
使用例

コマンドの使用方法を具体例で示します:

[commands.create-component]
cmd = "generate.sh ${type} ${name}"
description = "Generate a new component"
version = "1.0.0"
arguments = [
  { name = "type", type = "string", description = "Component type", required = true },
  { name = "name", type = "string", description = "Component name", required = true }
]
examples = [
  {
    description = "Create a React component",
    command = "interop run create-component type=react name=Button"
  },
  {
    description = "Create a Vue component", 
    command = "interop run create-component type=vue name=Header"
  }
]
AI 連携のメリット

コマンドにバージョンと使用例を含めると:

  • AI アシスタントがより正確な提案を行えるようになります
  • ドキュメントが自動的に生成されます
  • 具体例により、チームのオンボーディングが容易になります
  • バージョン追跡により、互換性と更新の管理に役立ちます

検証と診断

拡張設定検証
interop validate

検証システムは、設定を包括的に分析します:

設定ソースの分析
  • メイン設定:settings.toml が存在し、アクセス可能であることを検証します
  • ローカルディレクトリ:config.d/ のファイル数とアクセス可能性を表示します
  • リモートディレクトリ:config.d.remote/ と executables.remote/ の状態を表示します
  • リモート追跡:リモートバージョンの追跡が有効かどうかを示します
競合の検出
  • コマンドの競合:複数のソースで定義されているコマンドを特定します
  • 優先順位ルール:どの設定が優先されるかを表示します
  • 視覚的なインジケーター:記号を使って競合や警告を強調します
  • ソースの表示:各コマンドがローカルソースとリモートソースのどちらに由来するかを表示します
検証チェック
  • プロジェクトのパスが存在し、アクセス可能であること
  • コマンド参照が有効であること
  • 同じスコープ内に競合するエイリアスがないこと
  • 必須のコマンド引数に適切な定義があること
  • MCP サーバーのポートが競合していないこと
  • コマンドディレクトリへのアクセス可能性と TOML 構文
  • リモートリポジトリの構造が要件に準拠していること
  • Git URL の形式が有効であること
検証出力の例
Configuration Overview
=====================

Configuration Sources:
---------------------
🏠 Main Settings: /Users/user/.config/interop/settings.toml
🏠 Command Directories:
   🏠 /Users/user/.config/interop/config.d (2 files)
☁️ Remote Configuration:
   ✓ config.d.remote: Available (3 files)
   ✓ executables.remote: Available (5 files)
   ✓ Remote tracking: Active

⚠️ Potential Conflicts:
   ⚠️ Command 'deploy' exists in both local and remote configs
   → Local configurations take precedence

MCP Servers:
-----------
🔌 Default MCP Server (Port: 8081)
   └─ Commands: (commands with no MCP field)

🔌 team-tools MCP Server (Port: 8084)
   └─ Team standardized tools
   └─ Commands: 5

Commands:
--------
🌐 ✓ deploy (Shell) (🏠 Local)
   └─ My custom deploy script
   └─ 🔌 Default MCP server (Port: 8081)

🌐 ✓ team-deploy (Shell) (☁️ Remote)
   └─ Deploy using team standards
   └─ 🔌 Assigned to MCP server: team-tools (Port: 8084)

Legend:
-------
🌐 Global Command        🏠 Local Configuration
📂 Project-bound Command ☁️ Remote Configuration  
🔄 Command Alias         ⚠️ Warning/Conflict
✓ Enabled Command        🔌 MCP Server Association
❌ Disabled Command

✅ Configuration is valid!
ポートのチェック
interop mcp port-check

以下が表示されます:

  • 使用可能なポート
  • 使用中のポート
  • ポートを使用しているプロセス

ログレベル

設定で詳細度を指定します:

log_level = "verbose"  # Options: error, warning, verbose

高度な機能

実行ファイルの検索パス

Interop は次の場所で実行ファイルを検索します:

  1. 設定ディレクトリ(~/.config/interop/executables/)
  2. 設定で指定された追加のパス
  3. システムの PATH
executable_search_paths = ["~/.local/bin", "~/bin"]

開発

プロジェクト構成
.
├── cmd/
│   └── cli/          # Main application entry point
├── internal/
│   ├── command/      # CLI command implementations
│   ├── display/      # Output formatting utilities
│   ├── edit/         # Project editing functionality
│   ├── logging/      # Logging with color control
│   ├── mcp/          # MCP server implementation
│   ├── project/      # Project management core
│   ├── settings/     # Configuration management
│   └── util/         # Shared utilities
├── dist/             # Distribution files
└── .github/          # GitHub workflows and templates
テスト

テストスイートを実行します:

go test ./...

クイックリファレンス

リモート設定コマンド
# Remote repository management
interop config remote add <name> <git-url>     # Add remote repository
interop config remote remove <name>            # Remove remote repository
interop config remote show                     # List all remotes
interop config remote clear                    # Remove all remotes and cached files

# Fetching configurations
interop config remote fetch                    # Fetch from all remotes
interop config remote fetch <name>             # Fetch from specific remote

# Validation and diagnostics
interop validate                               # Comprehensive configuration validation
interop mcp port-check                         # Check MCP server port availability
設定ファイルの場所
~/.config/interop/settings.toml               # Main configuration file
~/.config/interop/config.d/                   # Local configuration directory
~/.config/interop/config.d.remote/            # Remote configurations (auto-managed)
~/.config/interop/executables/                # Local executable files
~/.config/interop/executables.remote/         # Remote executables (auto-managed)
~/.config/interop/versions.toml               # Remote tracking metadata (auto-managed)

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルを参照してください。

コメント

MCP は初めてですか?

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

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