Skip to main content

Model Context Protocol server for Rowan computational chemistry platform

Project description

Rowan MCP Server

This project wraps an MCP (Model Context Protocol) around Rowan's tools, making it easy for users to submit complex quantum chemistry calculations in natural everyday language.


Quick Install - Desktop Extension

For Claude Desktop users - this is the easiest way:

  1. Download the extension: rowan-dxt.dxt
  2. Drag and drop the file into Claude Desktop > Settings > Extensions
  3. Enter your API key from labs.rowansci.com
  4. Enable the MCP tool in the extension settings
  5. Start chatting Try: "Using the Rowan MCP tool, calculate the pKa of aspirin"

That's it - no command line setup needed!


Package Installation

Using uv (recommended):

# Install the package
uv add rowan-mcp

Using pip:

# Install the package
pip install rowan-mcp

# Or in a virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install rowan-mcp

Get API Key & Configure

  1. Get your API key: Visit labs.rowansci.com → Create account → Generate API key

  2. Configure your MCP client (e.g., Claude Code, VSCode, Cursor, etc.):

With uv:

{
  "mcpServers": {
    "rowan": {
      "command": "uv",
      "args": ["run", "rowan-mcp"],
      "env": {
        "ROWAN_API_KEY": "your_api_key_here"
      }
    }
  }
}

With pip/system Python:

{
  "mcpServers": {
    "rowan": {
      "command": "rowan-mcp",
      "env": {
        "ROWAN_API_KEY": "your_api_key_here"
      }
    }
  }
}

Start Using

Ask your AI: "Calculate the pKa of aspirin" or "Optimize the geometry of caffeine"


Development Installation

For developers or contributors:

1. Clone and Setup

git clone https://github.com/k-yenko/rowan-mcp.git
cd rowan-mcp
uv sync

2. Configure for Development

{
  "mcpServers": {
    "rowan": {
      "command": "uv",
      "args": ["run", "python", "-m", "rowan_mcp"],
      "cwd": "/path/to/rowan-mcp",
      "env": {
        "ROWAN_API_KEY": "your_api_key_here"
      }
    }
  }
}

Replace /path/to/rowan-mcp with your actual clone path. Find it with pwd in the project directory.


What You Can Do

Ask the LLM to:

  • Calculate drug properties: "Predict drug-likeness of aspirin"
  • Optimize molecular structures: "Optimize the geometry of aspirin"
  • Predict chemical behavior: "What's the pKa of acetic acid?"
  • Run calculations: "Calculate the HOMO and LUMO of benzene"

System Requirements

  • Python 3.10+ (Python 3.11+ recommended)
  • Package manager: uv (recommended) or pip
  • Rowan API key (free at labs.rowansci.com)
  • MCP-compatible client (Claude Desktop, etc.)

Development commands (if you cloned the repo):

# Run from source
uv run python -m rowan_mcp --http

Available Tools

Chemistry Calculations

  • rowan_basic_calculation - Energy, optimization, frequencies
  • rowan_multistage_opt - geometry optimization
  • rowan_electronic_properties - HOMO/LUMO, orbitals
  • rowan_molecular_dynamics - MD simulations

Molecular Properties

  • rowan_pka - Acid/base strength
  • rowan_conformers - Conformational search
  • rowan_tautomers - Tautomer enumeration
  • rowan_descriptors - ML-ready molecular features
  • rowan_solubility - Aqueous solubility
  • rowan_redox_potential - Electrochemical potentials

Drug Discovery

  • rowan_admet - ADME-Tox properties

Reactivity Analysis

  • rowan_fukui - Reactivity sites
  • rowan_spin_states - Spin multiplicities

Project Management

  • rowan_folder_create/list/update/delete - Organize calculations
  • rowan_workflow_create/list/status/stop - Manage workflows

Requirements

  • Python 3.10+
  • Rowan API key
  • MCP-compatible AI assistant (Claude Desktop, etc.)

Getting Help


Todo

  • Remove unnecessary AI spaghetti formatting 🙃
  • Some complex conformer searches hang on "running"
  • Edit MCP one-liner context
  • Transition state finding and IRC
  • rowan_scan - Potential energy surfaces
  • rowan_docking - Protein-ligand docking
  • add in h-bond, BDE and macroscopic pka, logD, BBB
  • Folder listing API bug (returns 500 error) - Rowan side?
  • Multistage optimization sometimes shows unexpected imaginary frequencies
  • Some calculations show as finished in logs but not in Rowan UI

Citation

If you use this MCP tool in your research, please cite the underlying Rowan platform:

Rowan Scientific. https://www.rowansci.com (accessed 2025-07-01).

For complete citation information including specific computational engines, methods, and workflows used in your calculations, please refer to Rowan's citation guidelines.


Publishing (Maintainer Notes)

To publish a new version to PyPI:

# Update version in pyproject.toml and rowan_mcp/__init__.py
# Build the package
uv build

# Publish to PyPI (requires API token)
uv publish

# Or publish to TestPyPI first
uv publish --index-url https://test.pypi.org/simple/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rowan_mcp-1.0.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rowan_mcp-1.0.0-py3-none-any.whl (94.6 kB view details)

Uploaded Python 3

File details

Details for the file rowan_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: rowan_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.12

File hashes

Hashes for rowan_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 cae6c5d9706021da2a9138939a34518f4b1c5e5bb4c6deed842693dfeda91bc3
MD5 1de8b865fe6e54e11963334b8b9e66fc
BLAKE2b-256 fdc6d4689901de7dc966820491145d2e149de227ff8d5937e62b23c846a10f3a

See more details on using hashes here.

File details

Details for the file rowan_mcp-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: rowan_mcp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 94.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.12

File hashes

Hashes for rowan_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ecb6443e0a05b92c30b849552663bfd80effddfdad976b4e68cb22262aa5fb0
MD5 bd8a68107d3df877cf1bb4cbb164f05c
BLAKE2b-256 eecd1c5a8ab0b04c972b8040caaeb93cc972e31dab9e33d6d8bac848732384a0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page