Skip to content
Back to skills

Pubchem Deep Dive

ASecurity

'PubChem Deep Dive Analysis - Deep dive into PubChem: compound info,

  • 170 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 11, 2026
toolspythonapidatabase

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add InternScience/DrClaw --skill pubchem_deep_dive --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pubchem Deep Dive?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Pubchem Deep Dive
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/internscience-pubchem-deep-dive-e9d91d0c/badge)](https://www.skillsdirectory.com/skills/internscience-pubchem-deep-dive-e9d91d0c)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: pubchem_deep_dive
description: 'PubChem Deep Dive Analysis - Deep dive into PubChem: compound info,
  bioassay summary, 3D conformers, synonyms, and general description. Use this skill
  for chemical databases tasks involving get pubchem compound by cid get assay summary
  by cid get conformers by cid get compound synonyms by name get general info by compound
  name. Combines 5 tools from 1 SCP server(s).'
i18n:
  zh:
    description: PubChem深度分析:化合物。
---

# PubChem Deep Dive Analysis

**Discipline**: Chemical Databases | **Tools Used**: 5 | **Servers**: 1

## Description

Deep dive into PubChem: compound info, bioassay summary, 3D conformers, synonyms, and general description.

## Tools Used

- **`get_pubchem_compound_by_cid`** from `pubchem-server` (streamable-http) - `https://scp.intern-ai.org.cn/api/v1/mcp/8/Origene-PubChem`
- **`get_assay_summary_by_cid`** from `pubchem-server` (streamable-http) - `https://scp.intern-ai.org.cn/api/v1/mcp/8/Origene-PubChem`
- **`get_conformers_by_cid`** from `pubchem-server` (streamable-http) - `https://scp.intern-ai.org.cn/api/v1/mcp/8/Origene-PubChem`
- **`get_compound_synonyms_by_name`** from `pubchem-server` (streamable-http) - `https://scp.intern-ai.org.cn/api/v1/mcp/8/Origene-PubChem`
- **`get_general_info_by_compound_name`** from `pubchem-server` (streamable-http) - `https://scp.intern-ai.org.cn/api/v1/mcp/8/Origene-PubChem`

## Workflow

1. Get full compound info
2. Get bioassay summary
3. Get 3D conformers
4. Get all synonyms
5. Get general description

## Test Case

### Input
```json
{
    "compound_name": "aspirin",
    "cid": 2244
}
```

### Expected Steps
1. Get full compound info
2. Get bioassay summary
3. Get 3D conformers
4. Get all synonyms
5. Get general description

## Usage Example

> **Note:** Replace `<YOUR_SCP_HUB_API_KEY>` with your own SCP Hub API Key. You can obtain one from the [SCP Platform](https://scphub.intern-ai.org.cn).

```python
import asyncio
import json
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
from mcp.client.sse import sse_client

SERVERS = {
    "pubchem-server": "https://scp.intern-ai.org.cn/api/v1/mcp/8/Origene-PubChem"
}

async def connect(url, transport_type):
    transport = streamablehttp_client(url=url, headers={"SCP-HUB-API-KEY": "<YOUR_SCP_HUB_API_KEY>"})
    read, write, _ = await transport.__aenter__()
    ctx = ClientSession(read, write)
    session = await ctx.__aenter__()
    await session.initialize()
    return session, ctx, transport

def parse(result):
    try:
        if hasattr(result, 'content') and result.content:
            c = result.content[0]
            if hasattr(c, 'text'):
                try: return json.loads(c.text)
                except: return c.text
        return str(result)
    except: return str(result)

async def main():
    # Connect to required servers
    sessions = {}
    sessions["pubchem-server"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/8/Origene-PubChem", "streamable-http")

    # Execute workflow steps
    # Step 1: Get full compound info
    result_1 = await sessions["pubchem-server"].call_tool("get_pubchem_compound_by_cid", arguments={})
    data_1 = parse(result_1)
    print(f"Step 1 result: {json.dumps(data_1, indent=2, ensure_ascii=False)[:500]}")

    # Step 2: Get bioassay summary
    result_2 = await sessions["pubchem-server"].call_tool("get_assay_summary_by_cid", arguments={})
    data_2 = parse(result_2)
    print(f"Step 2 result: {json.dumps(data_2, indent=2, ensure_ascii=False)[:500]}")

    # Step 3: Get 3D conformers
    result_3 = await sessions["pubchem-server"].call_tool("get_conformers_by_cid", arguments={})
    data_3 = parse(result_3)
    print(f"Step 3 result: {json.dumps(data_3, indent=2, ensure_ascii=False)[:500]}")

    # Step 4: Get all synonyms
    result_4 = await sessions["pubchem-server"].call_tool("get_compound_synonyms_by_name", arguments={})
    data_4 = parse(result_4)
    print(f"Step 4 result: {json.dumps(data_4, indent=2, ensure_ascii=False)[:500]}")

    # Step 5: Get general description
    result_5 = await sessions["pubchem-server"].call_tool("get_general_info_by_compound_name", arguments={})
    data_5 = parse(result_5)
    print(f"Step 5 result: {json.dumps(data_5, indent=2, ensure_ascii=False)[:500]}")

    # Cleanup
    print("Workflow complete!")

if __name__ == "__main__":
    asyncio.run(main())
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…