AYX-MCP-Wrapper

AYX-MCP-Wrapper

A Model Context Protocol server that provides a comprehensive interface to Alteryx Servers, enabling AI assistants to manage workflows, collections, users, schedules, credentials, and more.

Category
访问服务器

README

AYX-MCP-Wrapper

Python 3.10+ License: MIT MCP Protocol

A Model Context Protocol (MCP) server that provides a comprehensive interface to Alteryx Servers. This wrapper enables AI assistants and other MCP clients to interact with Alteryx Server for managing workflows, collections, users, schedules, credentials, and more.

Features

  • Advanced Search: Find users, workflows, and assets with flexible search options
  • Workflow Operations: Execute, transfer, and manage workflows with full control
  • Workflow Assets: Download workflow packages and extract XML for analysis
  • Job Monitoring: Track and manage workflow execution jobs in real-time
  • Collections Management: Create, update, delete, and organize collections
  • User Management: Manage users, their assets, and permissions efficiently
  • Schedule Management: Create and manage workflow schedules and automation
  • Credential Management: Handle server credentials and secure connections

Prerequisites

  • Python 3.10+ - Modern Python with type hints support
  • Alteryx Server - With API access enabled
  • OAuth2 Credentials - Client ID and Secret for authentication

Installation

Quick Start with uv (Recommended)

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install the MCP server
uv pip install mcp-server-alteryx

Using pip

pip install mcp-server-alteryx

From Source

git clone https://github.com/jupiterbak/AYX-MCP-Wrapper.git
cd AYX-MCP-Wrapper
uv sync
uv run pip install -e .

Configuration

Environment Variables

Set up your Alteryx Server credentials using environment variables:

# Required: Alteryx Server API URL
export ALTERYX_SERVER_URL="https://your-alteryx-server.com/webapi/"

# Required: OAuth2 Client Credentials
export ALTERYX_CLIENT_ID="your-client-id"
export ALTERYX_CLIENT_SECRET="your-client-secret"
export ALTERYX_VERIFY_SSL="1"

# Optional: Logging level
export LOG_LEVEL="INFO"

Configuration File

Alternatively, create a .env file in your project root:

ALTERYX_SERVER_URL=https://your-alteryx-server.com/webapi/
ALTERYX_CLIENT_ID=your-client-id
ALTERYX_CLIENT_SECRET=your-client-secret
LOG_LEVEL=INFO

Usage

Claude Desktop Integration

To use this MCP server with Claude Desktop, add the following configuration to your Claude Desktop settings:

{
  "mcpServers": {
    "alteryx": {
      "command": "uvx",
      "args": ["mcp-server-alteryx", "--transport", "stdio"],
      "env": {
        "ALTERYX_SERVER_URL": "https://your-alteryx-server.com/webapi/",
        "ALTERYX_CLIENT_ID": "your-client-id",
        "ALTERYX_CLIENT_SECRET": "your-client-secret",
        "ALTERYX_VERIFY_SSL": "1"
      }
    }
  }
}

However, we recommend to use it in combination with the "Sequential Thinking" tool:

{   "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"
      }
    }
  }
}

Configuration Options:

  • command: The uvx executable to use
  • args: Command line arguments for the MCP server
  • env: Environment variables for Alteryx Server authentication

Transport Options:

  • stdio: Standard input/output (recommended for Claude Desktop)
  • sse: Server-Sent Events
  • streamable-http: HTTP streaming

Cursor Integration

For Cursor IDE integration, add to your Cursor settings:

{
  "mcpServers": {
    "alteryx": {
      "command": "uvx",
      "args": ["mcp-server-alteryx", "--transport", "stdio"],
      "env": {
        "ALTERYX_SERVER_URL": "https://your-alteryx-server.com/webapi/",
        "ALTERYX_CLIENT_ID": "your-client-id",
        "ALTERYX_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Command Line Interface

The MCP server can be run with different transport options:

# Using stdio transport (default)
uvx run src.main --transport stdio

# Using Server-Sent Events (SSE)
uvx run src.main --transport sse

# Using HTTP streaming
uvx run src.main --transport streamable-http

# Set log level
uvx run src.main --log-level DEBUG

# Run with custom configuration
uvx run src.main --transport stdio --log-level INFO

Available Tools

The MCP server provides comprehensive tools organized by functionality:

Collections Management

Function Description Parameters
get_all_collections() Retrieve all accessible collections None
get_collection_by_id(collection_id) Get specific collection details collection_id: str
create_collection(name) Create a new collection name: str
update_collection_name_or_owner(collection_id, name, owner_id) Update collection properties collection_id: str, name: str, owner_id: str
add_workflow_to_collection(collection_id, workflow_id) Add workflow to collection collection_id: str, workflow_id: str
remove_workflow_from_collection(collection_id, workflow_id) Remove workflow from collection collection_id: str, workflow_id: str
add_schedule_to_collection(collection_id, schedule_id) Add schedule to collection collection_id: str, schedule_id: str
remove_schedule_from_collection(collection_id, schedule_id) Remove schedule from collection collection_id: str, schedule_id: str
delete_collection(collection_id) Delete a collection collection_id: str

Workflow Operations

Function Description Parameters
get_all_workflows() Retrieve all accessible workflows None
get_workflow_by_id(workflow_id) Get specific workflow details workflow_id: str
update_workflow_name_or_comment(workflow_id, name, comment) Update workflow properties workflow_id: str, name: str, comment: str
transfer_workflow(workflow_id, new_owner_id) Transfer workflow ownership workflow_id: str, new_owner_id: str
get_workflow_jobs(workflow_id) Get jobs for a workflow workflow_id: str
execute_workflow(workflow_id, input_data) Execute a workflow with input data workflow_id: str, input_data: List[InputData]
download_workflow_package_file(workflow_id, output_directory) Download workflow package workflow_id: str, output_directory: str
get_workflow_xml(workflow_id) Extract workflow XML workflow_id: str

User Management

Function Description Parameters
get_all_users() Retrieve all accessible users None
get_user_by_id(user_id) Get specific user details user_id: str
get_user_by_email(email) Find user by email email: str
get_user_by_name(name) Find user by name name: str
get_user_by_first_name(first_name) Find user by first name first_name: str
get_all_user_assets(user_id) Get all assets owned by user user_id: str
get_user_assets_by_type(user_id, asset_type) Get specific asset types user_id: str, asset_type: str
update_user_details(user_id, first_name, last_name, email) Update user information 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) Transfer user assets user_id: str, new_owner_id: str, transfer_workflows: bool, transfer_schedules: bool, transfer_collections: bool
deactivate_user(user_id) Deactivate a user user_id: str
reset_user_password(user_id) Reset user password user_id: str

Schedule Management

Function Description Parameters
get_all_schedules() Retrieve all accessible schedules None
get_schedule_by_id(schedule_id) Get specific schedule details schedule_id: str
deactivate_schedule(schedule_id) Deactivate a schedule schedule_id: str
activate_schedule(schedule_id) Activate a schedule schedule_id: str
update_schedule_name_or_comment(schedule_id, name, comment) Update schedule properties schedule_id: str, name: str, comment: str
change_schedule_owner(schedule_id, new_owner_id) Change schedule ownership schedule_id: str, new_owner_id: str

Job Monitoring

Function Description Parameters
get_all_job_messages(job_id) Get messages for a specific job job_id: str
get_job_by_id(job_id) Get job details job_id: str

Credentials & Connections

Function Description Parameters
get_all_credentials() Retrieve all accessible credentials None
get_credential_by_id(credential_id) Get specific credential details credential_id: str
lookup_connection(connection_id) Lookup DCM connection connection_id: str
get_connection_by_id(connection_id) Get connection details connection_id: str

Development

Setup Development Environment

# Clone the repository
git clone https://github.com/jupiterbak/AYX-MCP-Wrapper.git
cd AYX-MCP-Wrapper

# Install dependencies
uv sync

# Install in development mode
uv run pip install -e .

Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Related Projects

  • <a href="https://modelcontextprotocol.io/" target="_blank" rel="noopener noreferrer">Model Context Protocol</a> - The MCP specification
  • <a href="https://help.alteryx.com/current/en/server/api-overview/alteryx-server-api-v3.html" target="_blank" rel="noopener noreferrer">Alteryx Server API</a> - Official Alteryx Server documentation
  • <a href="https://claude.ai/download" target="_blank" rel="noopener noreferrer">Claude Desktop</a> - Claude Desktop application

Made with ❤️ for the Alteryx community

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选