项目简介

ChEMBL MCP服务器是一个非官方的Model Context Protocol (MCP) 服务器,旨在通过标准化的方式,为AI助手和MCP客户端提供ChEMBL化学数据库的高级访问能力。它集成了27种专门工具,涵盖化合物搜索、靶点分析、生物活性数据、药物开发和化学性质分析等多个领域,帮助用户直接通过ChEMBL REST API进行药物发现研究、化学信息学分析和生物活性调查。

主要功能点

  • 核心化学搜索与检索: 根据化合物名称、InChI、SMILES等进行搜索,获取详细化合物信息和结构数据。
  • 靶点分析与药物发现: 搜索生物靶点,获取靶点详细信息、相关化合物、UniProt集成及通路数据。
  • 生物活性与实验数据: 检索生物活性测量值和实验结果,支持按活性类型、剂量反应和多化合物比较。
  • 药物开发与临床数据: 查询已批准药物、临床候选物、开发状态、治疗适应症和作用机制。
  • 化学性质分析: 分析ADMET性质、计算分子描述符、预测溶解度及评估药物类似性。
  • 高级搜索与交叉引用: 支持亚结构搜索、批量处理ChEMBL ID及获取外部数据库链接。
  • 资源模板: 通过统一资源标识符 (URI) 模板直接访问ChEMBL的化合物、靶点、实验和活性数据。

安装步骤

  1. 环境准备: 确保您的系统已安装Node.js (版本16或更高) 以及npm或yarn包管理器。
  2. 克隆仓库: 打开终端或命令行工具,执行以下命令下载项目代码:
    git clone https://github.com/Augmented-Nature/ChEMBL-MCP-Server.git
    cd ChEMBL-MCP-Server
  3. 安装依赖: 在项目目录下执行以下命令安装所有必要的依赖项:
    npm install
  4. 构建项目: 构建TypeScript项目,生成可执行的JavaScript文件:
    npm run build

服务器配置 (供MCP客户端使用)

MCP服务器通常需要通过MCP客户端进行连接和管理。以下是配置您的MCP客户端以连接到ChEMBL MCP服务器的JSON配置示例及说明:

  • 使用Node.js直接运行:

    {
      "mcpServers": {
        "chembl": {
          "command": "node",
          "args": ["/path/to/chembl-server/build/index.js"],
          "env": {},
          "description": "通过Node.js直接运行的ChEMBL MCP服务器。"
        }
      }
    }
    • 'chembl': 这是您为MCP服务器指定的唯一名称。
    • 'command': 指示MCP客户端启动服务器的命令,这里是'node'。
    • 'args': 启动命令的参数列表。'/path/to/chembl-server/build/index.js' 应替换为服务器构建后主文件'index.js'的绝对路径。
    • 'env': 可选的环境变量,本例中为空。
  • 使用Docker容器运行:

    {
      "mcpServers": {
        "chembl": {
          "command": "docker",
          "args": ["run", "-i", "chembl-mcp-server"],
          "env": {},
          "description": "通过Docker容器运行的ChEMBL MCP服务器。"
        }
      }
    }
    • 'command': 指示MCP客户端启动服务器的命令,这里是'docker'。
    • 'args': 启动Docker容器的参数。'run -i chembl-mcp-server' 会以后台交互模式运行名为'chembl-mcp-server'的Docker镜像。请确保您已按照仓库的“Docker”部分的说明构建了该镜像。

基本使用方法

配置完成后,您的MCP客户端(例如Claude Desktop)将能够识别并连接到ChEMBL MCP服务器。之后,您可以通过客户端界面或编程接口调用服务器提供的工具和访问资源。

  • 调用工具示例(客户端视角): 要搜索化合物,您的MCP客户端可能会向服务器发送类似以下的请求(工具名称为'search_compounds',参数为'query'):
    // 客户端调用 search_compounds 工具
    // 请求参数示例:
    {
      "tool": "search_compounds",
      "arguments": {
        "query": "aspirin",
        "limit": 5
      }
    }
  • 访问资源示例(客户端视角): 要获取某个化合物的详细信息,您的MCP客户端可能会请求特定的URI资源:
    // 客户端访问 chembl://compound/CHEMBL25 资源
    // 请求URI示例:
    "chembl://compound/CHEMBL25"

信息

分类

AI与计算