mcp-server-alteryx


Namemcp-server-alteryx JSON
Version 0.2.16 PyPI version JSON
download
home_pageNone
SummaryModel Context Protocol (MCP) server for Alteryx Server
upload_time2025-07-09 06:26:01
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT
keywords alteryx alteryx-server mcp model-context-protocol
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # AYX-MCP-Wrapper

[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![MCP Protocol](https://img.shields.io/badge/MCP-Protocol-green.svg)](https://modelcontextprotocol.io/)

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)

```bash
# 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

```bash
pip install mcp-server-alteryx
```

### From Source

```bash
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:

```bash
# 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:

```env
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:

```json
{
  "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:

```json
{   "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:

```json
{
  "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:

```bash
# 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

```bash
# 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](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** 
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mcp-server-alteryx",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "alteryx, alteryx-server, mcp, model-context-protocol",
    "author": null,
    "author_email": "Jupiter Bakakeu <jupiter.bakakeu@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/d4/08/ca480e87a2b8c2815f583e0b047e58e0d4f704065444045496ae4eaa1419/mcp_server_alteryx-0.2.16.tar.gz",
    "platform": null,
    "description": "# AYX-MCP-Wrapper\n\n[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![MCP Protocol](https://img.shields.io/badge/MCP-Protocol-green.svg)](https://modelcontextprotocol.io/)\n\nA 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.\n\n## Features\n\n- **Advanced Search**: Find users, workflows, and assets with flexible search options\n- **Workflow Operations**: Execute, transfer, and manage workflows with full control\n- **Workflow Assets**: Download workflow packages and extract XML for analysis\n- **Job Monitoring**: Track and manage workflow execution jobs in real-time\n- **Collections Management**: Create, update, delete, and organize collections\n- **User Management**: Manage users, their assets, and permissions efficiently\n- **Schedule Management**: Create and manage workflow schedules and automation\n- **Credential Management**: Handle server credentials and secure connections\n\n\n## Prerequisites\n\n- **Python 3.10+** - Modern Python with type hints support\n- **Alteryx Server** - With API access enabled\n- **OAuth2 Credentials** - Client ID and Secret for authentication\n\n## Installation\n\n### Quick Start with uv (Recommended)\n\n```bash\n# Install uv if you haven't already\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# Install the MCP server\nuv pip install mcp-server-alteryx\n```\n\n### Using pip\n\n```bash\npip install mcp-server-alteryx\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/jupiterbak/AYX-MCP-Wrapper.git\ncd AYX-MCP-Wrapper\nuv sync\nuv run pip install -e .\n```\n\n## Configuration\n\n### Environment Variables\n\nSet up your Alteryx Server credentials using environment variables:\n\n```bash\n# Required: Alteryx Server API URL\nexport ALTERYX_SERVER_URL=\"https://your-alteryx-server.com/webapi/\"\n\n# Required: OAuth2 Client Credentials\nexport ALTERYX_CLIENT_ID=\"your-client-id\"\nexport ALTERYX_CLIENT_SECRET=\"your-client-secret\"\nexport ALTERYX_VERIFY_SSL=\"1\"\n\n# Optional: Logging level\nexport LOG_LEVEL=\"INFO\"\n```\n\n### Configuration File\n\nAlternatively, create a `.env` file in your project root:\n\n```env\nALTERYX_SERVER_URL=https://your-alteryx-server.com/webapi/\nALTERYX_CLIENT_ID=your-client-id\nALTERYX_CLIENT_SECRET=your-client-secret\nLOG_LEVEL=INFO\n```\n\n## Usage\n\n### Claude Desktop Integration\n\nTo use this MCP server with Claude Desktop, add the following configuration to your Claude Desktop settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"alteryx\": {\n      \"command\": \"uvx\",\n      \"args\": [\"mcp-server-alteryx\", \"--transport\", \"stdio\"],\n      \"env\": {\n        \"ALTERYX_SERVER_URL\": \"https://your-alteryx-server.com/webapi/\",\n        \"ALTERYX_CLIENT_ID\": \"your-client-id\",\n        \"ALTERYX_CLIENT_SECRET\": \"your-client-secret\",\n        \"ALTERYX_VERIFY_SSL\": \"1\"\n      }\n    }\n  }\n}\n```\n\nHowever, we recommend to use it in combination with the \"Sequential Thinking\" tool:\n\n```json\n{   \"mcpServers\": {\n  \"sequential-thinking\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-sequential-thinking\"\n      ]\n    },\n    \"alteryx\": {\n      \"command\": \"uvx\",\n      \"args\": [\"mcp-server-alteryx\", \"--transport\", \"stdio\"],\n      \"env\": {\n        \"ALTERYX_API_HOST\": \"http://localhost/webapi/\",\n        \"ALTERYX_CLIENT_ID\": \"your-client-id\",\n        \"ALTERYX_CLIENT_SECRET\": \"your-client-secret\",\n        \"ALTERYX_VERIFY_SSL\": \"1\"\n      }\n    }\n  }\n}\n```\n\n**Configuration Options:**\n- `command`: The uvx executable to use\n- `args`: Command line arguments for the MCP server\n- `env`: Environment variables for Alteryx Server authentication\n\n**Transport Options:**\n- `stdio`: Standard input/output (recommended for Claude Desktop)\n- `sse`: Server-Sent Events\n- `streamable-http`: HTTP streaming\n\n### Cursor Integration\n\nFor Cursor IDE integration, add to your Cursor settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"alteryx\": {\n      \"command\": \"uvx\",\n      \"args\": [\"mcp-server-alteryx\", \"--transport\", \"stdio\"],\n      \"env\": {\n        \"ALTERYX_SERVER_URL\": \"https://your-alteryx-server.com/webapi/\",\n        \"ALTERYX_CLIENT_ID\": \"your-client-id\",\n        \"ALTERYX_CLIENT_SECRET\": \"your-client-secret\"\n      }\n    }\n  }\n}\n```\n\n### Command Line Interface\n\nThe MCP server can be run with different transport options:\n\n```bash\n# Using stdio transport (default)\nuvx run src.main --transport stdio\n\n# Using Server-Sent Events (SSE)\nuvx run src.main --transport sse\n\n# Using HTTP streaming\nuvx run src.main --transport streamable-http\n\n# Set log level\nuvx run src.main --log-level DEBUG\n\n# Run with custom configuration\nuvx run src.main --transport stdio --log-level INFO\n```\n\n## Available Tools\n\nThe MCP server provides comprehensive tools organized by functionality:\n\n### Collections Management\n\n| Function | Description | Parameters |\n|----------|-------------|------------|\n| `get_all_collections()` | Retrieve all accessible collections | None |\n| `get_collection_by_id(collection_id)` | Get specific collection details | `collection_id: str` |\n| `create_collection(name)` | Create a new collection | `name: str` |\n| `update_collection_name_or_owner(collection_id, name, owner_id)` | Update collection properties | `collection_id: str, name: str, owner_id: str` |\n| `add_workflow_to_collection(collection_id, workflow_id)` | Add workflow to collection | `collection_id: str, workflow_id: str` |\n| `remove_workflow_from_collection(collection_id, workflow_id)` | Remove workflow from collection | `collection_id: str, workflow_id: str` |\n| `add_schedule_to_collection(collection_id, schedule_id)` | Add schedule to collection | `collection_id: str, schedule_id: str` |\n| `remove_schedule_from_collection(collection_id, schedule_id)` | Remove schedule from collection | `collection_id: str, schedule_id: str` |\n| `delete_collection(collection_id)` | Delete a collection | `collection_id: str` |\n\n### Workflow Operations\n\n| Function | Description | Parameters |\n|----------|-------------|------------|\n| `get_all_workflows()` | Retrieve all accessible workflows | None |\n| `get_workflow_by_id(workflow_id)` | Get specific workflow details | `workflow_id: str` |\n| `update_workflow_name_or_comment(workflow_id, name, comment)` | Update workflow properties | `workflow_id: str, name: str, comment: str` |\n| `transfer_workflow(workflow_id, new_owner_id)` | Transfer workflow ownership | `workflow_id: str, new_owner_id: str` |\n| `get_workflow_jobs(workflow_id)` | Get jobs for a workflow | `workflow_id: str` |\n| `execute_workflow(workflow_id, input_data)` | Execute a workflow with input data | `workflow_id: str, input_data: List[InputData]` |\n| `download_workflow_package_file(workflow_id, output_directory)` | Download workflow package | `workflow_id: str, output_directory: str` |\n| `get_workflow_xml(workflow_id)` | Extract workflow XML | `workflow_id: str` |\n\n### User Management\n\n| Function | Description | Parameters |\n|----------|-------------|------------|\n| `get_all_users()` | Retrieve all accessible users | None |\n| `get_user_by_id(user_id)` | Get specific user details | `user_id: str` |\n| `get_user_by_email(email)` | Find user by email | `email: str` |\n| `get_user_by_name(name)` | Find user by name | `name: str` |\n| `get_user_by_first_name(first_name)` | Find user by first name | `first_name: str` |\n| `get_all_user_assets(user_id)` | Get all assets owned by user | `user_id: str` |\n| `get_user_assets_by_type(user_id, asset_type)` | Get specific asset types | `user_id: str, asset_type: str` |\n| `update_user_details(user_id, first_name, last_name, email)` | Update user information | `user_id: str, first_name: str, last_name: str, email: str` |\n| `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` |\n| `deactivate_user(user_id)` | Deactivate a user | `user_id: str` |\n| `reset_user_password(user_id)` | Reset user password | `user_id: str` |\n\n### Schedule Management\n\n| Function | Description | Parameters |\n|----------|-------------|------------|\n| `get_all_schedules()` | Retrieve all accessible schedules | None |\n| `get_schedule_by_id(schedule_id)` | Get specific schedule details | `schedule_id: str` |\n| `deactivate_schedule(schedule_id)` | Deactivate a schedule | `schedule_id: str` |\n| `activate_schedule(schedule_id)` | Activate a schedule | `schedule_id: str` |\n| `update_schedule_name_or_comment(schedule_id, name, comment)` | Update schedule properties | `schedule_id: str, name: str, comment: str` |\n| `change_schedule_owner(schedule_id, new_owner_id)` | Change schedule ownership | `schedule_id: str, new_owner_id: str` |\n\n### Job Monitoring\n\n| Function | Description | Parameters |\n|----------|-------------|------------|\n| `get_all_job_messages(job_id)` | Get messages for a specific job | `job_id: str` |\n| `get_job_by_id(job_id)` | Get job details | `job_id: str` |\n\n### Credentials & Connections\n\n| Function | Description | Parameters |\n|----------|-------------|------------|\n| `get_all_credentials()` | Retrieve all accessible credentials | None |\n| `get_credential_by_id(credential_id)` | Get specific credential details | `credential_id: str` |\n| `lookup_connection(connection_id)` | Lookup DCM connection | `connection_id: str` |\n| `get_connection_by_id(connection_id)` | Get connection details | `connection_id: str` |\n\n## Development\n\n### Setup Development Environment\n\n```bash\n# Clone the repository\ngit clone https://github.com/jupiterbak/AYX-MCP-Wrapper.git\ncd AYX-MCP-Wrapper\n\n# Install dependencies\nuv sync\n\n# Install in development mode\nuv run pip install -e .\n```\n\n\n## Contributing\n\nWe welcome contributions! Please follow these steps:\n\n1. **Fork** the repository\n2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)\n3. **Commit** your changes (`git commit -m 'Add amazing feature'`)\n4. **Push** to the branch (`git push origin feature/amazing-feature`)\n5. **Open** a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n\n## Related Projects\n\n- <a href=\"https://modelcontextprotocol.io/\" target=\"_blank\" rel=\"noopener noreferrer\">Model Context Protocol</a> - The MCP specification\n- <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\n- <a href=\"https://claude.ai/download\" target=\"_blank\" rel=\"noopener noreferrer\">Claude Desktop</a> - Claude Desktop application\n\n---\n\n**Made with \u2764\ufe0f for the Alteryx community** ",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Model Context Protocol (MCP) server for Alteryx Server",
    "version": "0.2.16",
    "project_urls": null,
    "split_keywords": [
        "alteryx",
        " alteryx-server",
        " mcp",
        " model-context-protocol"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e37b1c929f79e5a587ffe48c625302b4329d24df921f37bb414c4e9fa3852b00",
                "md5": "eef9a62c4086f0bb2e9b9346023e0e9c",
                "sha256": "08a21397f4e95a5f9361a0fc886cbe3abd656c3b93e29292b7b8cbea5c95c6ea"
            },
            "downloads": -1,
            "filename": "mcp_server_alteryx-0.2.16-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "eef9a62c4086f0bb2e9b9346023e0e9c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 246954,
            "upload_time": "2025-07-09T06:26:00",
            "upload_time_iso_8601": "2025-07-09T06:26:00.416345Z",
            "url": "https://files.pythonhosted.org/packages/e3/7b/1c929f79e5a587ffe48c625302b4329d24df921f37bb414c4e9fa3852b00/mcp_server_alteryx-0.2.16-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d408ca480e87a2b8c2815f583e0b047e58e0d4f704065444045496ae4eaa1419",
                "md5": "b2fdb602d34427dfd8a01d1e0840f2da",
                "sha256": "e361a89afd4c918e6cda305eb4a2afa10b27cde6d8c2dfdecce84bc8c34fcb19"
            },
            "downloads": -1,
            "filename": "mcp_server_alteryx-0.2.16.tar.gz",
            "has_sig": false,
            "md5_digest": "b2fdb602d34427dfd8a01d1e0840f2da",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 99429,
            "upload_time": "2025-07-09T06:26:01",
            "upload_time_iso_8601": "2025-07-09T06:26:01.837263Z",
            "url": "https://files.pythonhosted.org/packages/d4/08/ca480e87a2b8c2815f583e0b047e58e0d4f704065444045496ae4eaa1419/mcp_server_alteryx-0.2.16.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-09 06:26:01",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "mcp-server-alteryx"
}
        
Elapsed time: 1.51872s