MCP, MCP server
cdk_pywrapper
A Python wrapper for the Chemistry Development Kit (CDK), which is written in Java * Primary purpose: * Generate diverse chemical compound identifiers (SMILES, InChI).
Compatibility: Not stated.
Grade B
Minor issues only, no Medium or High. Worth a quick look at the findings below before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit b26972e28a1d, unchanged since the check below.
INSTALL_UNPINNED NETWORK_NO_FIXED_HOST SECRETS_PATH_DOTENV PERMISSION_SHELL_DECLARED
Why this grade
- INSTALL_UNPINNED Low
Dependencies use a range or git URL with no lockfile.
requirements.txt, line 1
py4j - NETWORK_NO_FIXED_HOST Low
Makes a network call whose host is not written as a fixed address.
cdk_pywrapper/chemlib.py, line 827
r = requests.get(url, params=params) - SECRETS_PATH_DOTENV Low
Mentions a .env file.
.gitignore, line 82
# dotenv - PERMISSION_SHELL_DECLARED Note
Runs shell commands, and the manifest or description says so.
setup.py, line 64
subprocess.check_call(javac_cmd, shell=True)
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Note
requests shell access. The manifest names this permission.
PERMISSION_SHELL_DECLARED
setup.py, line 64
subprocess.check_call(javac_cmd, shell=True)
setup.py, line 76
subprocess.check_call(javac_cmd, shell=True)
cdk_pywrapper/cdk_pywrapper.py, line 75
# with subprocess.Popen(['{} aux | {} CDK'.format(ps_path, grep_path)], shell=True, stdout=subprocess.PIPE) as proc:
Show more
cdk_pywrapper/cdk_pywrapper.py, line 111
# subprocess.check_call(["javac -cp '{}:.{}' ../cdk/cdk_bridge.java".format(py4j_path, cdk_path)], shell=True)
cdk_pywrapper/cdk_pywrapper.py, line 113
# subprocess.check_call(["javac -cp '{}:{}' ../cdk_pywrapper/cdk/cdk_bridge.java".format(py4j_jar_path,
cdk_pywrapper/cdk_pywrapper.py, line 117
# p = subprocess.Popen(['{} -cp {};{};{}\\ CDKBridge'.format(java_path, py4j_jar_path,
cdk_pywrapper/cdk_pywrapper.py, line 122
p = subprocess.Popen([java_path +
cdk_pywrapper/cdk_pywrapper.py, line 131
p = subprocess.Popen([java_path,
Install and update
Concern
dependencies are not pinned.
INSTALL_UNPINNED
requirements.txt, line 1
py4j
Network
Concern
can reach a host that is not written as a fixed address.
NETWORK_NO_FIXED_HOST
cdk_pywrapper/chemlib.py, line 827
r = requests.get(url, params=params)
cdk_pywrapper/chemlib.py, line 1249
res = requests.get(url=self.base_url.format(k + '.json'), headers=self.headers).json()
cdk_pywrapper/chemlib.py, line 1351
reply = requests.get(url, headers=PubChemMolecule.headers)
Show more
cdk_pywrapper/chemlib.py, line 1362
r = requests.get(cmpnd_url, headers=PubChemMolecule.headers).json()
cdk_pywrapper/chemlib.py, line 1371
descr_json = requests.get(url, headers=PubChemMolecule.headers).json()
cdk_pywrapper/chemlib.py, line 1391
response = requests.get(url, params=params, headers=PubChemMolecule.headers)
cdk_pywrapper/chemlib.py, line 1421
r = requests.get(url, headers=PubChemMolecule.headers).json()
Secrets
Concern
reads a credential or environment file.
SECRETS_PATH_DOTENV
.gitignore, line 82
# dotenv
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Pass
No encoded or minified payload found.
Licence
Pass
A licence file is present (LICENSE).
Maintainer activity
Note
the latest commit is more than 365 days old.
MAINTAINER_STALE
No file path was stored.
2025-09-09T23:04:07+02:00
Note
Hygiene check of commit b26972e28a1d. requests shell access. The manifest names this permission. dependencies are not pinned. can reach a host that is not written as a fixed address. reads a credential or environment file. the latest commit is more than 365 days old.
Date and source
Date checked:
github.com
Commit graded: b26972e28a1df7a1d54041f119eaeb9471b0229b
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.