rowan-mcp 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of rowan-mcp might be problematic. Click here for more details.

Files changed (35) hide show
  1. rowan_mcp/__init__.py +14 -0
  2. rowan_mcp/__main__.py +14 -0
  3. rowan_mcp/functions/admet.py +94 -0
  4. rowan_mcp/functions/bde.py +113 -0
  5. rowan_mcp/functions/calculation_retrieve.py +89 -0
  6. rowan_mcp/functions/conformers.py +135 -0
  7. rowan_mcp/functions/descriptors.py +92 -0
  8. rowan_mcp/functions/docking.py +340 -0
  9. rowan_mcp/functions/docking_enhanced.py +174 -0
  10. rowan_mcp/functions/electronic_properties.py +263 -0
  11. rowan_mcp/functions/folder_management.py +137 -0
  12. rowan_mcp/functions/fukui.py +355 -0
  13. rowan_mcp/functions/hydrogen_bond_basicity.py +94 -0
  14. rowan_mcp/functions/irc.py +125 -0
  15. rowan_mcp/functions/macropka.py +195 -0
  16. rowan_mcp/functions/molecular_converter.py +423 -0
  17. rowan_mcp/functions/molecular_dynamics.py +191 -0
  18. rowan_mcp/functions/molecule_cache.db +0 -0
  19. rowan_mcp/functions/molecule_lookup.py +446 -0
  20. rowan_mcp/functions/multistage_opt.py +171 -0
  21. rowan_mcp/functions/pdb_handler.py +200 -0
  22. rowan_mcp/functions/pka.py +137 -0
  23. rowan_mcp/functions/redox_potential.py +352 -0
  24. rowan_mcp/functions/scan.py +536 -0
  25. rowan_mcp/functions/scan_analyzer.py +347 -0
  26. rowan_mcp/functions/solubility.py +277 -0
  27. rowan_mcp/functions/spin_states.py +747 -0
  28. rowan_mcp/functions/system_management.py +368 -0
  29. rowan_mcp/functions/tautomers.py +91 -0
  30. rowan_mcp/functions/workflow_management.py +422 -0
  31. rowan_mcp/server.py +169 -0
  32. rowan_mcp-0.1.0.dist-info/METADATA +216 -0
  33. rowan_mcp-0.1.0.dist-info/RECORD +35 -0
  34. rowan_mcp-0.1.0.dist-info/WHEEL +4 -0
  35. rowan_mcp-0.1.0.dist-info/entry_points.txt +2 -0
@@ -0,0 +1,216 @@
1
+ Metadata-Version: 2.4
2
+ Name: rowan-mcp
3
+ Version: 0.1.0
4
+ Summary: Model Context Protocol server for Rowan computational chemistry platform
5
+ Project-URL: Homepage, https://github.com/k-yenko/rowan-mcp
6
+ Author-email: Katherine Yenko <katherineyenko@example.com>
7
+ License: MIT
8
+ Classifier: Development Status :: 3 - Alpha
9
+ Classifier: Intended Audience :: Science/Research
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Topic :: Scientific/Engineering :: Chemistry
16
+ Requires-Python: >=3.10
17
+ Requires-Dist: fastapi>=0.104.0
18
+ Requires-Dist: fastmcp>=0.2.0
19
+ Requires-Dist: pubchempy>=1.0.4
20
+ Requires-Dist: pydantic>=2.0.0
21
+ Requires-Dist: python-dotenv>=1.0.0
22
+ Requires-Dist: rdkit>=2025.3.2
23
+ Requires-Dist: rowan-python>=0.1.0
24
+ Requires-Dist: typing-extensions>=4.0.0
25
+ Requires-Dist: uvicorn>=0.24.0
26
+ Provides-Extra: dev
27
+ Requires-Dist: black>=23.0.0; extra == 'dev'
28
+ Requires-Dist: isort>=5.0.0; extra == 'dev'
29
+ Requires-Dist: mypy>=1.0.0; extra == 'dev'
30
+ Requires-Dist: pytest>=7.0.0; extra == 'dev'
31
+ Description-Content-Type: text/markdown
32
+
33
+ # Rowan MCP Server
34
+
35
+ 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.
36
+
37
+ ---
38
+
39
+ ## **Quick Install - Desktop Extension**
40
+
41
+ **For Claude Desktop users - this is the easiest way:**
42
+
43
+ 1. **Download** the extension: [`rowan-dxt.dxt`](./rowan-dxt.dxt)
44
+ 2. **Drag and drop** the file into **Claude Desktop > Settings > Extensions**
45
+ 3. **Enter your API key** from [labs.rowansci.com](https://labs.rowansci.com)
46
+ 4. **Enable** the MCP tool in the extension settings
47
+ 5. **Start chatting** Try: *"Using the Rowan MCP tool, calculate the pKa of aspirin"*
48
+
49
+ That's it - no command line setup needed!
50
+
51
+ ---
52
+
53
+ ## **Manual Installation**
54
+
55
+ **For developers or users who prefer command-line setup:**
56
+
57
+ ### **1. Clone and Setup**
58
+ ```bash
59
+ git clone https://github.com/k-yenko/rowan-mcp.git
60
+ cd rowan-mcp
61
+ uv sync
62
+ ```
63
+
64
+ ### **2. Get API Key**
65
+ - Visit [labs.rowansci.com](https://labs.rowansci.com)
66
+ - Create free account → Generate API key
67
+
68
+ ### **3. Configure Your MCP Client**
69
+
70
+ **Claude Desktop Example:**
71
+ ```json
72
+ {
73
+ "mcpServers": {
74
+ "rowan": {
75
+ "command": "uv",
76
+ "args": ["run", "python", "-m", "rowan_mcp"],
77
+ "cwd": "/path/to/rowan-mcp",
78
+ "env": {
79
+ "ROWAN_API_KEY": "your_api_key_here"
80
+ }
81
+ }
82
+ }
83
+ }
84
+ ```
85
+
86
+ *Replace `/path/to/rowan-mcp` with the actual path where you cloned the repository*
87
+
88
+ **To find your path:**
89
+ ```bash
90
+ # After cloning, run this in the rowan-mcp directory:
91
+ pwd
92
+ # Copy the output and use it as your "cwd" value
93
+ ```
94
+
95
+ ### **4. Start Using**
96
+ Ask your AI: *"Calculate the pKa of aspirin"* or *"Optimize the geometry of caffeine"*
97
+
98
+ ### **Alternative: Use .env file**
99
+ Instead of putting your API key in the MCP config, create a `.env` file:
100
+ ```bash
101
+ # In the rowan-mcp directory:
102
+ echo "ROWAN_API_KEY=your_actual_api_key_here" > .env
103
+ ```
104
+
105
+ Then use this simpler config (no env section needed):
106
+ ```json
107
+ {
108
+ "mcpServers": {
109
+ "rowan": {
110
+ "command": "uv",
111
+ "args": ["run", "python", "-m", "rowan_mcp"],
112
+ "cwd": "/path/to/rowan-mcp"
113
+ }
114
+ }
115
+ }
116
+ ```
117
+
118
+ ---
119
+
120
+ ## **What You Can Do**
121
+
122
+ Ask the LLM to:
123
+ - **Calculate drug properties**: *"Predict drug-likeness of aspirin"*
124
+ - **Optimize molecular structures**: *"Optimize the geometry of aspirin"*
125
+ - **Predict chemical behavior**: *"What's the pKa of acetic acid?"*
126
+ - **Run calculations**: *"Calculate the HOMO and LUMO of benzene"*
127
+
128
+ ## **System Requirements**
129
+
130
+ - **Python 3.10+** (Python 3.11+ recommended)
131
+ - **[uv](https://docs.astral.sh/uv/) package manager**
132
+ - **Rowan API key** (free at [labs.rowansci.com](https://labs.rowansci.com))
133
+ - **MCP-compatible client** (Claude Desktop, Continue, etc.)
134
+
135
+ ## **Testing Your Setup**
136
+
137
+ You can test the server directly:
138
+ ```bash
139
+ # In the rowan-mcp directory:
140
+ uv run python -m rowan_mcp --help
141
+ ```
142
+
143
+ ## **Development**
144
+
145
+ The installation above is the same for development! Additional commands:
146
+ ```bash
147
+ # Run server in HTTP/SSE mode
148
+ uv run python -m rowan_mcp --http
149
+
150
+ # Run server in STDIO mode (default)
151
+ uv run python -m rowan_mcp
152
+ ```
153
+
154
+ ---
155
+
156
+ ## Available Tools
157
+
158
+ ### Chemistry Calculations
159
+ - `rowan_basic_calculation` - Energy, optimization, frequencies
160
+ - `rowan_multistage_opt` - geometry optimization
161
+ - `rowan_electronic_properties` - HOMO/LUMO, orbitals
162
+ - `rowan_molecular_dynamics` - MD simulations
163
+
164
+ ### Molecular Properties
165
+ - `rowan_pka` - Acid/base strength
166
+ - `rowan_conformers` - Conformational search
167
+ - `rowan_tautomers` - Tautomer enumeration
168
+ - `rowan_descriptors` - ML-ready molecular features
169
+ - `rowan_solubility` - Aqueous solubility
170
+ - `rowan_redox_potential` - Electrochemical potentials
171
+
172
+ ### Drug Discovery
173
+ - `rowan_admet` - ADME-Tox properties
174
+
175
+
176
+ ### Reactivity Analysis
177
+ - `rowan_fukui` - Reactivity sites
178
+ - `rowan_spin_states` - Spin multiplicities
179
+
180
+ ### Project Management
181
+ - `rowan_folder_create/list/update/delete` - Organize calculations
182
+ - `rowan_workflow_create/list/status/stop` - Manage workflows
183
+
184
+ ## Requirements
185
+
186
+ - Python 3.10+
187
+ - Rowan API key
188
+ - MCP-compatible AI assistant (Claude Desktop, etc.)
189
+
190
+ ## Getting Help
191
+
192
+ - **Documentation**: [docs.rowansci.com](https://docs.rowansci.com/)
193
+ - or ping me!
194
+
195
+ ---
196
+
197
+ ## **Todo**
198
+
199
+ - [ ] Remove unnecessary AI spaghetti formatting 🙃
200
+ - [ ] Some complex conformer searches hang on "running"
201
+ - [ ] Edit MCP one-liner context
202
+ - [ ] Transition state finding and IRC
203
+ - [X] `rowan_scan` - Potential energy surfaces
204
+ - [ ] `rowan_docking` - Protein-ligand docking
205
+ - [X] add in h-bond, BDE and macroscopic pka, logD, BBB
206
+ - [ ] Folder listing API bug (returns 500 error) - Rowan side?
207
+ - [ ] Multistage optimization sometimes shows unexpected imaginary frequencies
208
+ - [ ] Some calculations show as finished in logs but not in Rowan UI
209
+
210
+ ## Citation
211
+
212
+ If you use this MCP tool in your research, please cite the underlying Rowan platform:
213
+
214
+ Rowan Scientific. https://www.rowansci.com (accessed 2025-07-01).
215
+
216
+ For complete citation information including specific computational engines, methods, and workflows used in your calculations, please refer to [Rowan's citation guidelines](https://docs.rowansci.com/citations).
@@ -0,0 +1,35 @@
1
+ rowan_mcp/__init__.py,sha256=5aKQpVtWYO9EkP3ohOtYwQhdDQPAlD_pcrdDA4eTabk,381
2
+ rowan_mcp/__main__.py,sha256=I7wCpoCPLrCx_tWozFBtCtnoL65lmgDiZnEumj3vijM,388
3
+ rowan_mcp/server.py,sha256=47MsJchxzqRVd4mFQXR81wYXBX8B8fFUkl7wDYB5uMs,7702
4
+ rowan_mcp/functions/admet.py,sha256=m_RD7OJ8GDocEInHw4zOmk4tBf2mWBGTL3LVt-vo_mU,2438
5
+ rowan_mcp/functions/bde.py,sha256=x6Wmnqzy3zRDvSM_AlxSm_0ksg9lI2zV1PiBzXjU_sU,3634
6
+ rowan_mcp/functions/calculation_retrieve.py,sha256=jL28RKvZX3QUeZ_qDlBfLdGG_Lsk6LyA1xjsHvPM-mg,3376
7
+ rowan_mcp/functions/conformers.py,sha256=tzMMeZ44Vw5ZmD9wZtGxyFlwoeu1izr6wdAFNwwwGKA,5171
8
+ rowan_mcp/functions/descriptors.py,sha256=HJXsMZmgx-PdqfSe39D0BcMxzRYmR38gt98fXIMc69w,2747
9
+ rowan_mcp/functions/docking.py,sha256=J-bcgig_68x07eCpVPG1ZJKdUFsPVeDuvhoeM9Y9V9I,13954
10
+ rowan_mcp/functions/docking_enhanced.py,sha256=lwviIWg_26VW8VlITIlHd-Lbw8E25tnvNrLfzK6fLJs,5528
11
+ rowan_mcp/functions/electronic_properties.py,sha256=qJpn-iEXTsk_wVcHYVq-7TLK7_T3JP-z7viHxg2L434,11741
12
+ rowan_mcp/functions/folder_management.py,sha256=qPZ6cjC2AFxr1BhXpRsJk2AZAF7GV5ojy6oJDQjYKbw,4874
13
+ rowan_mcp/functions/fukui.py,sha256=HvR8qC_eBJ2ojGhf50DIGVr9luowMvfPnU8txyfCVaQ,15339
14
+ rowan_mcp/functions/hydrogen_bond_basicity.py,sha256=xH7czHEF_stKnQoh-F93b8G8936DCTYjkf6nTa7kmKo,3081
15
+ rowan_mcp/functions/irc.py,sha256=ulMfkpVTXoQDwFVzAJRcEbyZpFxM2LucO7Mq-XkgNTs,4096
16
+ rowan_mcp/functions/macropka.py,sha256=CreAYpGKpJ9pQBgpEHXnN3kCH33qbm08Xa7jKhPkMic,8219
17
+ rowan_mcp/functions/molecular_converter.py,sha256=j9YeCnaHZahwkhG2EZNPu5VVmGy2sqIHPB_qf1ojoec,17349
18
+ rowan_mcp/functions/molecular_dynamics.py,sha256=yzA03LeFv8K59Cg1SAnavWwmodl4_KW667pRHJQTXNw,6990
19
+ rowan_mcp/functions/molecule_cache.db,sha256=Fq1LLzSFPy4f7MrZPLhMhU3yA_gE10YQUPLhIQcfHQU,28672
20
+ rowan_mcp/functions/molecule_lookup.py,sha256=I0infAB-9zN6LNCEyEQNDvLvlQ5L5nOrVJGWF6jLD9s,18466
21
+ rowan_mcp/functions/multistage_opt.py,sha256=lWwgXZgpXnWsjgonkA1toks4t01Cdxo822xmT2EOssM,6185
22
+ rowan_mcp/functions/pdb_handler.py,sha256=EnhRqxStnke5kiSnDaWOzcJT8fAHW6VVIhTaH6ODkWE,6241
23
+ rowan_mcp/functions/pka.py,sha256=EFGIFtq2HrtNzcU5-3-ncgmpiwIGnOE-vROjr_eC1Nk,5014
24
+ rowan_mcp/functions/redox_potential.py,sha256=NXU1sEkMqI-2-LD9qv7qaBhkmAvwU3dFGLQ988DG4cc,13114
25
+ rowan_mcp/functions/scan.py,sha256=LWr6YKwCG3gv0ZtyCbPaJ81NlQyFTHFZ4WnXvSRxmVg,24235
26
+ rowan_mcp/functions/scan_analyzer.py,sha256=vnAokCFOxYbv3Px3p9dEIxQXL7ot6UMjeUfMb_ZF6Ug,13479
27
+ rowan_mcp/functions/solubility.py,sha256=-duTeVLEhnhNtNkA0L_cBk8Xjqw5bbAXrrEFqtElg4I,11112
28
+ rowan_mcp/functions/spin_states.py,sha256=NG7uJjTi_Fx-E4Qr7RzjNhfFmKlHfIGMD0Uhyo7sKT4,31895
29
+ rowan_mcp/functions/system_management.py,sha256=UwdKD46FNEJh1zEPpvFW7-JBD6g8x-xSbmH7lrcubx0,20089
30
+ rowan_mcp/functions/tautomers.py,sha256=oXFUpMgCVtXy2JnyCb8G04vYj_anJj4WThD26ZGOsZ0,2694
31
+ rowan_mcp/functions/workflow_management.py,sha256=EqXRqj0EuJz7h2igqOHBpq23Qyo-KT9geWp39URacxw,21130
32
+ rowan_mcp-0.1.0.dist-info/METADATA,sha256=TfHD5ogfzGBMh3oUjSrj-HuUWBerl31bhlca61Gtgug,6336
33
+ rowan_mcp-0.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
34
+ rowan_mcp-0.1.0.dist-info/entry_points.txt,sha256=QkmK3GHkTNA6gqyTIFrl2V2eVBm-VBdRAlDNsvi4Rl0,52
35
+ rowan_mcp-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.27.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ rowan-mcp = rowan_mcp.server:main