Metadata-Version: 2.4
Name: zenable_mcp
Version: 2.34.0
Summary: MCP client for Zenable conformance checking
Author-email: Zenable <Python@zenable.io>
License: Proprietary
Project-URL: Homepage, https://zenable.io
Project-URL: Documentation, https://docs.zenable.io/
Project-URL: Issues, https://zenable.io/feedback
Keywords: mcp,claude,hooks,conformance,zenable,code-quality,security,compliance,policy-as-code,specifications,spec-driven-development
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8
Requires-Dist: fastmcp<2.14.0,>=2.13.0
Requires-Dist: gitpython>=3.1
Requires-Dist: httpx>=0.28
Requires-Dist: json5>=0.12
Requires-Dist: py-key-value-aio[disk]>=0.2.8
Requires-Dist: pydantic>=2.12
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: requests>=2.32
Requires-Dist: textual>=0.86.0
Requires-Dist: tomlkit
Dynamic: license-file

# Zenable MCP

Automated code quality and conformance for your development workflow. Use this project to check any code against organizational policies, install IDE
hooks, set up MCP servers, and with just one command.

## Quick Start

```bash
# Install the Zenable tools into your IDE
uvx zenable-mcp install

# Run a one-time conformance check on your code
uvx zenable-mcp check '**/*.py'
```

> **Note:** All Zenable integrations use OAuth for secure authentication. When first using our tools you'll be prompted to authenticate

> **Need `uvx`?** See their [uv installation guide](https://docs.astral.sh/uv/getting-started/installation/).

## Features

### Code Conformance Checking

Validate an existing code base against organizational policies and best practices:

```bash
uvx zenable-mcp check '**/*.py'
uvx zenable-mcp check src/main.js
uvx zenable-mcp check '**/*.js' --exclude '**/test_*.js'
uvx zenable-mcp check '**/*.{js,ts,jsx,tsx}' --exclude '*.{log,tmp,bak}'
```

[Learn more about use cases →](https://docs.zenable.io/use-cases)

### IDE Integrations

Connect your IDE to our conformance checker. We support integrations with [over 50 IDEs and AI tools](https://modelcontextprotocol.io/clients) via MCP
tools, including Claude, Cursor, Windsurf, and many more.

```bash
uvx zenable-mcp install          # Install for all supported IDEs
uvx zenable-mcp install claude   # Install only for Claude Code
```

[Advanced configuration options →](https://docs.zenable.io/integrations/mcp/getting-started#advanced-options)

## Learn More

- [Full Documentation](https://docs.zenable.io/integrations/zenable-mcp/commands)
- [Getting Started Guide](https://docs.zenable.io/integrations/mcp/getting-started)
- [Configure Policies](https://www.zenable.app)
- [GitHub Integration](https://docs.zenable.io/integrations/github/getting-started)
- [Troubleshooting Guide](https://docs.zenable.io/integrations/mcp/troubleshooting)

## Development

### Running Tests

```bash
cd packages/zenable_mcp
task test        # Run all tests
task unit-test   # Run unit tests only
```

### Filesystem Isolation

Tests use [pyfakefs](https://github.com/pytest-dev/pyfakefs) for filesystem isolation. An autouse fixture intercepts all filesystem operations, preventing tests from modifying real files.

**Key fixtures:**
- `fake_home` - Path to fake home directory (`/fakehome`)
- `fs` - Direct access to the fake filesystem
- `real_git_tmp` - Real temp directory for GitPython operations
- `install_git_repo` - Pre-created git directory for install tests

**Opt-out:** Use `@pytest.mark.real_filesystem` for tests requiring real filesystem access.

## Feedback

Have ideas or running into issues? [Let us know](https://zenable.io/feedback)!
