ワンクリックで
chembl-molecule-search
Search ChEMBL database for molecule information by name to retrieve bioactivity data and chemical structures.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Search ChEMBL database for molecule information by name to retrieve bioactivity data and chemical structures.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use the local InnoClaw CLI to run app workflows and Deep Research sessions from the terminal. Trigger when the user wants command-line control over this repository instead of only using the web UI.
Use when the user wants the full multi-stage paper discussion workflow, a comprehensive structured discussion of one paper, or an equivalent full-discussion request in another language.
Use when the user wants question-driven help on one paper, including paper understanding, follow-up questions, method or experiment clarification, limitation analysis, or comparison against related work in any language.
Use when the user wants the full research ideation workflow grounded in one seed paper, including complete ideation, feasibility review, experiment planning, and final synthesis, or makes an equivalent ideation request in another language.
ADMET & Drug-Likeness Report - Generate comprehensive ADMET and drug-likeness report: molecular properties, H-bond analysis, hydrophobicity, topology, and ADMET prediction. Use this skill for medicinal chemistry tasks involving calculate mol basic info calculate mol hbond calculate mol hydrophobicity calculate mol topology pred molecule admet. Combines 5 tools from 2 SCP server(s).
Affinity Maturation Pipeline - Affinity maturation: compute binding affinity, predict mutations, compute hydrophilicity, and predict drug-target interaction. Use this skill for antibody engineering tasks involving ComputeAffinityCalculator zero shot sequence prediction ComputeHydrophilicity PredictDrugTargetInteraction. Combines 4 tools from 3 SCP server(s).
| name | chembl-molecule-search |
| description | Search ChEMBL database for molecule information by name to retrieve bioactivity data and chemical structures. |
| license | MIT license |
| metadata | {"skill-author":"PJLab"} |
import asyncio
import json
from contextlib import AsyncExitStack
from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession
class OrigeneClient:
"""Origene-ChEMBL MCP Client"""
def __init__(self, server_url: str, api_key: str):
self.server_url = server_url
self.api_key = api_key
self.session = None
async def connect(self):
try:
self.transport = streamablehttp_client(
url=self.server_url,
headers={"SCP-HUB-API-KEY": self.api_key}
)
self._stack = AsyncExitStack()
await self._stack.__aenter__()
self.read, self.write, self.get_session_id = await self._stack.enter_async_context(self.transport)
self.session_ctx = ClientSession(self.read, self.write)
self.session = await self._stack.enter_async_context(self.session_ctx)
await self.session.initialize()
return True
except Exception as e:
print(f"✗ connect failure: {e}")
return False
async def disconnect(self):
"""Disconnect from server"""
try:
if hasattr(self, '_stack'):
await self._stack.aclose()
print("✓ already disconnect")
except Exception as e:
print(f"✗ disconnect error: {e}")
def parse_result(self, result):
if isinstance(result, dict):
content_list = result.get("content") or []
else:
content_list = getattr(result, "content", []) or []
texts = []
for item in content_list:
if isinstance(item, dict):
if item.get("type") == "text":
texts.append(item.get("text") or "")
else:
if getattr(item, "type", None) == "text":
texts.append(getattr(item, "text", "") or "")
return "".join(texts)
Implementation:
## Initialize client
client = OrigeneClient(
"https://scp.intern-ai.org.cn/api/v1/mcp/4/Origene-ChEMBL",
"<your-api-key>"
)
if not await client.connect():
print("connection failed")
exit()
## Search for molecule by name
result = await client.session.call_tool(
"get_molecule_by_name",
arguments={
"molecule_name": "aspirin"
}
)
result_data = client.parse_result(result)
print(result_data)
await client.disconnect()
Origene-ChEMBL Server:
get_molecule_by_name: Search ChEMBL for molecule information
molecule_name (str): Molecule name to search