✨ From vibe coding to vibe deployment. UBOS MCP turns ideas into infra with one message.

Learn more

Mallory MCP Server

Python 3.13+ License: MIT smithery badge

Mallory provides a robust source of cyber and threat intelligence. Use this MCP Server to enable your agents with real-time cyber threat intelligence and detailed information about vulnerabilities, threat actors, malware, techniques and other cyber-relevant entities and content.

📋 Prerequisites

  • Python 3.13 or higher
  • uv for dependency management (recommended)

🚀 Quick Start

Installation

Clone the repository:

git clone https://github.com/malloryai/mallory-mcp-server.git
cd mallory-mcp-server

Set up a virtual environment and install dependencies:

# Using uv (recommended)
uv venv .venv
source .venv/bin/activate  # On Windows: .venvScriptsactivate
uv pip install -e .

# Or using pip
python -m venv .venv
source .venv/bin/activate  # On Windows: .venvScriptsactivate
pip install -e .

Install Development Dependencies

For development work, install the optional dependencies:

# Using uv
uv pip install -e ".[lint,tools]"

# Or using pip
pip install -e ".[lint,tools]"

Set Up Pre-commit Hooks

This project uses pre-commit hooks to ensure code quality. Install them with:

pre-commit install
./scripts/install-commit-hook.sh

⚙️ Configuration

Create a .env file in the project root with the following variables:

APP_ENV=local
MALLORY_API_KEY=your_api_key_here

🏃‍♂️ Running the Server

Direct Execution

python -m malloryai.mcp.app

or

uv run malloryai/mcp/app.py

Via the Claude Desktop Configuration

Add the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "MalloryAI": {
      "command": "/path/to/uv",
      "args": [
        "run",
        "--python",
        "/path/to/mcp-server/.venv/bin/python",
        "/path/to/mcp-server/malloryai/mcp/app.py"
      ],
      "env": {
        "MALLORY_API_KEY": "your_api_key_here"
      }
    }
  }
}

📦 Project Structure

.
├── README.md
├── app.py                  # Main application entry point
├── malloryai/              # Main package
│   ├── __init__.py
│   └── mcp/                # MCP subpackage
│       ├── __init__.py
│       ├── config/         # Configuration modules
│       ├── server/         # Server implementation
│       ├── tools/          # Tool implementations
│       └── utils/          # Utility functions
├── pyproject.toml          # Project metadata and dependencies
├── scripts/                # Utility scripts
│   └── install-commit-hook.sh

🧪 Development

Code Style

This project uses:

  • Black for code formatting
  • isort for import sorting
  • flake8 for linting

Format your code with:

black .
isort .
flake8

Commit Message Format

This project follows the conventional commit format. Each commit message should follow this pattern:

<type>[(scope)]: <description>

Where type is one of:

  • feat or feature: New feature
  • fix, bugfix, or hotfix: Bug fixes
  • chore: Regular maintenance tasks
  • refactor: Code changes that neither fix bugs nor add features
  • docs: Documentation only changes
  • style: Changes that don’t affect the meaning of the code
  • test: Adding or correcting tests
  • perf: Performance improvements
  • ci: Changes to CI configuration
  • build: Changes to build system or dependencies
  • revert: Reverting previous commits

Example: feat(server): add new authentication method

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

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

Featured Templates

View More

Start your free trial

Build your solution today. No credit card required.

Sign In

Register

Reset Password

Please enter your username or email address, you will receive a link to create a new password via email.