Skip to content

A comprehensive Model Context Protocol (MCP) server providing advanced access to the ChEMBL chemical database.

License

Notifications You must be signed in to change notification settings

EmergenceAI/bexson-mcp-servers

Repository files navigation

MCP Servers Mono-Repo (Emergence AI)

A mono-repository for hosting multiple Model Context Protocol (MCP) servers, each deployed as a separate Cloud Run service.

Available Servers

ChEMBL MCP Server

An MCP server that provides tool-based access to the ChEMBL chemical database via the public ChEMBL REST API.

Features:

  • 27 MCP tools covering:
    • Compound search & retrieval
    • Target search & retrieval
    • Bioactivity and assay lookup
    • Similarity / substructure search
    • Basic property and "drug-likeness" summaries derived from ChEMBL molecule properties
  • Resource templates (URI reads), including:
    • chembl://compound/{chembl_id}
    • chembl://target/{chembl_id}
    • chembl://assay/{chembl_id}
    • chembl://activity/{activity_id}
    • chembl://search/{query}

Location: src/chembl/

Prerequisites

  • Node.js 20+
  • pnpm 8+ (for workspace management)

Repository Structure

/
├── src/
│   ├── chembl/              # ChEMBL MCP server
│   │   ├── index.ts
│   │   ├── package.json
│   │   ├── tsconfig.json
│   │   └── Dockerfile
│   └── [future-server]/     # Additional MCP servers
├── package.json             # Root workspace config
├── pnpm-workspace.yaml      # pnpm workspace definition
└── tsconfig.json            # Base TypeScript config

Setup

  1. Install pnpm (if not already installed):
npm install -g pnpm
  1. Install dependencies:
pnpm install
  1. Build all servers:
pnpm build

Or build a specific server:

pnpm build:chembl

Running Servers Locally

ChEMBL Server (stdio MCP)

pnpm --filter @mcp-mono/chembl start

Add to an MCP client (example):

{
  "mcpServers": {
    "chembl": {
      "command": "node",
      "args": ["/absolute/path/to/ChEMBL-MCP-Server/build/chembl/index.js"],
      "env": {}
    }
  }
}

ChEMBL Server (HTTP/SSE)

pnpm --filter @mcp-mono/chembl start:http

The server binds to 0.0.0.0:${PORT:-8080} and exposes HTTP/SSE endpoints.

Development

Watch mode for development:

# All servers
pnpm dev

# Specific server
pnpm dev:chembl

Deployment

Automatic Deployment (Dev)

Push to main branch triggers automatic deployment to Cloud Run for changed servers only.

The CI/CD pipeline:

  1. Detects which servers have changes
  2. Builds and pushes Docker images for changed servers
  3. Deploys to Cloud Run as separate services (e.g., chembl-mcp-dev)

Manual Deployment (Production)

Use GitHub Actions workflow dispatch:

  1. Go to Actions → "Build and Deploy MCP Servers (Production)"
  2. Click "Run workflow"
  3. Enter servers to deploy (e.g., chembl or all)

Each server deploys to its own Cloud Run service (e.g., chembl-mcp-prod)

Docker

Build a specific server:

docker build -f src/chembl/Dockerfile -t chembl-mcp-server .
docker run -p 8080:8080 chembl-mcp-server

Adding New MCP Servers

See ADDING_NEW_SERVER.md for a comprehensive step-by-step guide.

Quick summary:

  1. Create src/your-server-name/ directory
  2. Add required files: index.ts, package.json, tsconfig.json, Dockerfile
  3. Update root package.json with build scripts
  4. Test locally with Docker
  5. Commit and push - CI/CD automatically deploys!

Critical requirements:

  • Use @mcp-mono/your-server-name as package name
  • Create node_modules symlink in Dockerfile: RUN ln -s /app/src/your-server-name/node_modules /app/build/your-server-name/node_modules
  • Bind HTTP server to '0.0.0.0' for Cloud Run compatibility
  • Parse PORT as integer: parseInt(process.env.PORT || '8080', 10)

Notes

  • Each MCP server runs as a separate Cloud Run service for isolation and independent scaling
  • Only changed servers are deployed automatically
  • ChEMBL Data source: ChEMBL REST API (https://www.ebi.ac.uk/chembl/api/data)
  • No API key required for public ChEMBL endpoints (subject to availability and rate limits)

About

A comprehensive Model Context Protocol (MCP) server providing advanced access to the ChEMBL chemical database.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •