🚀 AYX-MCP-Wrapper
Model Context Protocol (MCP) サーバーで、Alteryx サーバーとの包括的なインターフェースを提供します。このラッパーを使用すると、AIアシスタントやその他のMCPクライアントが、ワークフロー、コレクション、ユーザー、スケジュール、資格情報などを管理するためにAlteryxサーバーとやり取りできます。
🚀 クイックスタート
この AYX-MCP-Wrapper は、Alteryx サーバーとのインタラクションを容易にするための Model Context Protocol (MCP) サーバーです。以下の手順に従ってセットアップし、始めましょう。
✨ 主な機能
- 高度な検索:柔軟な検索オプションでユーザー、ワークフロー、アセットを見つけることができます。
- ワークフロー操作:ワークフローの実行、転送、管理を完全にコントロールできます。
- ワークフローアセット:ワークフローパッケージをダウンロードし、XMLを抽出して分析することができます。
- ジョブ監視:ワークフローの実行ジョブをリアルタイムで追跡および管理できます。
- コレクション管理:コレクションの作成、更新、削除、整理を行うことができます。
- ユーザー管理:ユーザー、そのアセット、およびパーミッションを効率的に管理できます。
- スケジュール管理:ワークフローのスケジュールと自動化を作成および管理できます。
- 資格情報管理:サーバーの資格情報を処理し、安全な接続を確立できます。
📦 インストール
uv を使用したクイックスタート (推奨)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv pip install mcp-server-alteryx
pip を使用する場合
pip install mcp-server-alteryx
ソースからインストールする場合
git clone https://github.com/jupiterbak/AYX-MCP-Wrapper.git
cd AYX-MCP-Wrapper
uv sync
uv run pip install -e .
📚 ドキュメント
環境変数の設定
環境変数を使用してサーバーの資格情報を設定します。
export ALTERYX_API_HOST="https://your-server.com/webapi/"
export ALTERYX_CLIENT_ID="your-client-id"
export ALTERYX_CLIENT_SECRET="your-client-secret"
export ALTERYX_VERIFY_SSL="1"
export ALTERYX_TEMP_DIRECTORY="your-temp-directory"
export LOG_LEVEL="INFO"
設定ファイルの使用
または、プロジェクトのルートに .env
ファイルを作成することもできます。
ALTERYX_API_HOST=https://your-server.com/webapi/
ALTERYX_CLIENT_ID=your-client-id
ALTERYX_CLIENT_SECRET=your-client-secret
ALTERYX_VERIFY_SSL=1
ALTERYX_TEMP_DIRECTORY=your-temp-directory
LOG_LEVEL=INFO
💻 使用例
Claude Desktop との統合
このMCPサーバーをClaude Desktopとともに使用するには、Claude Desktopの設定に以下の構成を追加します。
{
"mcpServers": {
"alteryx": {
"command": "uvx",
"args": ["mcp-server-alteryx", "--transport", "stdio"],
"env": {
"ALTERYX_API_HOST": "https://your-server.com/webapi/",
"ALTERYX_CLIENT_ID": "your-client-id",
"ALTERYX_CLIENT_SECRET": "your-client-secret",
"ALTERYX_VERIFY_SSL": "1",
"ALTERYX_TEMP_DIRECTORY": "your-temp-directory"
}
}
}
}
ただし、「Sequential Thinking」ツールと組み合わせて使用することをお勧めします。
{
"mcpServers": {
"sequential-thinking": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sequential-thinking"
]
},
"alteryx": {
"command": "uvx",
"args": ["mcp-server-alteryx", "--transport", "stdio"],
"env": {
"ALTERYX_API_HOST": "http://localhost/webapi/",
"ALTERYX_CLIENT_ID": "your-client-id",
"ALTERYX_CLIENT_SECRET": "your-client-secret",
"ALTERYX_VERIFY_SSL": "1",
"ALTERYX_TEMP_DIRECTORY": "your-temp-directory"
}
}
}
}
構成オプション:
command
: 使用するuvx実行可能ファイル
args
: MCPサーバーのコマンドライン引数
env
: サーバー認証のための環境変数
トランスポートオプション:
stdio
: 標準入出力 (Claude Desktopで推奨)
sse
: サーバー送信イベント
streamable-http
: HTTPストリーミング
Cursor IDE との統合
Cursor IDEと統合するには、Cursorの設定に以下を追加します。
{
"mcpServers": {
"alteryx": {
"command": "uvx",
"args": ["mcp-server-alteryx", "--transport", "stdio"],
"env": {
"ALTERYX_API_HOST": "https://your-alteryx-server.com/webapi/",
"ALTERYX_CLIENT_ID": "your-client-id",
"ALTERYX_CLIENT_SECRET": "your-client-secret",
"ALTERYX_TEMP_DIRECTORY": "your-temp-directory"
}
}
}
}
コマンドラインインターフェース
MCPサーバーは、さまざまなトランスポートオプションで実行できます。
uvx run src.main --transport stdio
uvx run src.main --transport sse
uvx run src.main --transport streamable-http
uvx run src.main --log-level DEBUG
uvx run src.main --transport stdio --log-level INFO
利用可能なツール
MCPサーバーは、機能別に整理された包括的なツールを提供します。
コレクション管理
関数 |
説明 |
パラメータ |
get_all_collections() |
アクセス可能なすべてのコレクションを取得します。 |
なし |
get_collection_by_id(collection_id) |
特定のコレクションの詳細を取得します。 |
collection_id: str |
create_collection(name) |
新しいコレクションを作成します。 |
name: str |
update_collection_name_or_owner(collection_id, name, owner_id) |
コレクションのプロパティを更新します。 |
collection_id: str, name: str, owner_id: str |
add_workflow_to_collection(collection_id, workflow_id) |
コレクションにワークフローを追加します。 |
collection_id: str, workflow_id: str |
remove_workflow_from_collection(collection_id, workflow_id) |
コレクションからワークフローを削除します。 |
collection_id: str, workflow_id: str |
add_schedule_to_collection(collection_id, schedule_id) |
コレクションにスケジュールを追加します。 |
collection_id: str, schedule_id: str |
remove_schedule_from_collection(collection_id, schedule_id) |
コレクションからスケジュールを削除します。 |
collection_id: str, schedule_id: str |
delete_collection(collection_id) |
コレクションを削除します。 |
collection_id: str |
ワークフロー操作
関数 |
説明 |
パラメータ |
get_all_workflows() |
アクセス可能なすべてのワークフローを取得します。 |
なし |
get_workflow_by_id(workflow_id) |
特定のワークフローの詳細を取得します。 |
workflow_id: str |
update_workflow_name_or_comment(workflow_id, name, comment) |
ワークフローのプロパティを更新します。 |
workflow_id: str, name: str, comment: str |
transfer_workflow(workflow_id, new_owner_id) |
ワークフローの所有権を移転します。 |
workflow_id: str, new_owner_id: str |
get_workflow_jobs(workflow_id) |
ワークフローのジョブを取得します。 |
workflow_id: str |
start_workflow_execution(workflow_id, input_data) |
ワークフローの実行を開始し、ジョブIDを返します。 |
workflow_id: str, input_data: List[InputData] |
execute_workflow_with_monitoring(workflow_id, input_data) |
ワークフローを実行し、完了を監視します。 |
workflow_id: str, input_data: List[InputData] |
download_workflow_package_file(workflow_id, output_directory) |
ワークフローパッケージをダウンロードします。 |
workflow_id: str, output_directory: str |
get_workflow_xml(workflow_id) |
ワークフローのXMLを抽出します。 |
workflow_id: str |
ユーザー管理
関数 |
説明 |
パラメータ |
get_all_users() |
アクセス可能なすべてのユーザーを取得します。 |
なし |
get_user_by_id(user_id) |
特定のユーザーの詳細を取得します。 |
user_id: str |
get_user_by_email(email) |
メールアドレスでユーザーを検索します。 |
email: str |
get_user_by_name(name) |
名前でユーザーを検索します。 |
name: str |
get_user_by_first_name(first_name) |
名でユーザーを検索します。 |
first_name: str |
get_all_user_assets(user_id) |
ユーザーが所有するすべてのアセットを取得します。 |
user_id: str |
get_user_assets_by_type(user_id, asset_type) |
特定のタイプのアセットを取得します。 |
user_id: str, asset_type: str |
update_user_details(user_id, first_name, last_name, email) |
ユーザー情報を更新します。 |
user_id: str, first_name: str, last_name: str, email: str |
transfer_all_assets(user_id, new_owner_id, transfer_workflows, transfer_schedules, transfer_collections) |
ユーザーのアセットを移転します。 |
user_id: str, new_owner_id: str, transfer_workflows: bool, transfer_schedules: bool, transfer_collections: bool |
deactivate_user(user_id) |
ユーザーを無効にします。 |
user_id: str |
reset_user_password(user_id) |
ユーザーのパスワードをリセットします。 |
user_id: str |
スケジュール管理
関数 |
説明 |
パラメータ |
get_all_schedules() |
アクセス可能なすべてのスケジュールを取得します。 |
なし |
get_schedule_by_id(schedule_id) |
特定のスケジュールの詳細を取得します。 |
schedule_id: str |
deactivate_schedule(schedule_id) |
スケジュールを無効にします。 |
schedule_id: str |
activate_schedule(schedule_id) |
スケジュールを有効にします。 |
schedule_id: str |
update_schedule_name_or_comment(schedule_id, name, comment) |
スケジュールのプロパティを更新します。 |
schedule_id: str, name: str, comment: str |
change_schedule_owner(schedule_id, new_owner_id) |
スケジュールの所有権を変更します。 |
schedule_id: str, new_owner_id: str |
ジョブ監視
関数 |
説明 |
パラメータ |
get_all_job_messages(job_id) |
特定のジョブのメッセージを取得します。 |
job_id: str |
get_job_by_id(job_id) |
ジョブの詳細を取得します。 |
job_id: str |
get_job_output_data(job_id) |
完了したジョブの出力データファイルを取得します。 |
job_id: str |
資格情報と接続
関数 |
説明 |
パラメータ |
get_all_credentials() |
アクセス可能なすべての資格情報を取得します。 |
なし |
get_credential_by_id(credential_id) |
特定の資格情報の詳細を取得します。 |
credential_id: str |
lookup_connection(connection_id) |
DCM接続を検索します。 |
connection_id: str |
get_connection_by_id(connection_id) |
接続の詳細を取得します。 |
connection_id: str |
🔧 技術詳細
開発環境のセットアップ
git clone https://github.com/jupiterbak/AYX-MCP-Wrapper.git
cd AYX-MCP-Wrapper
uv sync
uv run pip install -e .
🤝 コントリビューション
コントリビューションを歓迎します!以下の手順に従ってください。
- リポジトリをフォークします。
- 機能ブランチを作成します (
git checkout -b feature/amazing-feature
)。
- 変更をコミットします (
git commit -m 'Add amazing feature'
)。
- ブランチにプッシュします (
git push origin feature/amazing-feature
)。
- プルリクエストを作成します。
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細については LICENSE ファイルを参照してください。
関連プロジェクト
コミュニティのために愛を込めて作られました ❤️