Skip to main content
Glama

BioMCP: Enabling agent-based biomedical R&D

BioMCP

Overview

BioMCP is a Model Context Protocol (MCP) server designed to enhance large language models with protein structure analysis capabilities. It provides tools for analyzing protein active sites and searching for disease-related proteins by interfacing with established protein databases.

Future work will be centered around enabling agents to utilize the BioMCP.

Related MCP server: PubMed MCP Server

Features

  • Active Site Analysis: Examine the binding sites and functional residues of proteins using PDB IDs

  • Disease-Protein Search: Find protein structures associated with specific diseases or medical conditions

  • Integrated Data Access: Connect seamlessly with RCSB Protein Data Bank (PDB)

Technical Details

BioMCP implements the Model Context Protocol, allowing language models to access specialized protein structure knowledge without requiring this information to be part of their training data. The server handles API connections, data formatting, and error handling to provide reliable protein structure insights.

API Endpoints

BioMCP exposes two primary tools:

  1. analyze-active-site: Provides detailed information about protein binding sites using a PDB ID

  2. search-disease-proteins: Returns proteins related to specified diseases or medical conditions

Getting Started

Installing via Smithery

To install BioMCP for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @acashmoney/bio-mcp --client claude

Manual Installation

# Clone the repository
git clone https://github.com/acashmoney/bio-mcp.git

# Install dependencies
npm install

# Start the server
npm start

Setup Instructions

Running the MCP Inspector

  1. Start the BioMCP server:

    npm start
  2. In a separate terminal, install the MCP Inspector globally (if not already installed):

    npm install -g @anthropic-ai/mcp-inspector
  3. Launch the MCP Inspector and connect to your local BioMCP server:

    npx @modelcontextprotocol/inspector node build/index.js
  4. Use the inspector interface to test tools and view responses.

Using with Claude Desktop

  1. Build the BioMCP server:

    npm run build
  2. Configure Claude Desktop to launch the MCP server:

    a. Locate your Claude Desktop config.json file (typically in your user directory)

    b. Edit the config.json to include the BioMCP server build path. Example configuration:

    {
      "globalShortcut": "",
      "mcpServers": {
        "bio-mcp": {
          "command": "node",
          "args": [
            "/path/to/your/build/index.js"
          ]
        }
      }
    }

    c. Replace /path/to/your/build with your actual path to the project directory.

  3. Restart Claude Desktop for the changes to take effect.

  4. You can now ask Claude questions that utilize the BioMCP tools:

    • "What are the key residues in the active site of PDB structure 6LU7?"

    • "Find proteins related to Alzheimer's disease"

Example Usage

When integrated with a compatible language model, Bio-MCP enables queries like:

  • "What are the key residues in the active site of PDB structure 6LU7?"

  • "Find proteins related to Alzheimer's disease"

Requirements

  • Node.js 20.0.0 or higher

  • TypeScript 5.0+

  • Compatible MCP client implementation

Testing

BioMCP includes a comprehensive testing suite with unit, integration, and end-to-end tests.

Running Tests

Run all tests:

npm test

Run specific test suites:

# Unit tests only
npm run test:unit

# Integration tests only (API interactions)
npm run test:integration

# End-to-end tests only
npm run test:e2e

Linting

Check code quality:

npm run lint

Fix linting issues automatically:

npm run lint:fix

Roadmap

  • Expand level of detail for active site descriptions

  • Leverage 3-D coordinates

  • Tools for interfacing with literature

  • Tools for interfacing with computational biology models:

    • RFdiffusion

    • ProteinMPNN

    • ColabFold

    • Additional protein design and structure prediction tools

  • Agent-based research pipelines

  • Introduce client with protein visualization tools

Available Tools

2 tools
analyze-active-siteC

Analyze the active site of a protein structure

ParametersJSON Schema
NameRequiredDescriptionDefault
pdbIdYesThe PDB ID of the protein structure to analyze (e.g., 6LU7)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states the action without disclosing behavioral traits. It doesn't mention computational requirements, output format, error conditions, or whether the analysis is read-only or has side effects, leaving significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple tool and front-loaded with the core purpose, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete for a tool that performs analysis. It doesn't explain what the analysis entails, what results to expect, or any behavioral context, which is inadequate for guiding an AI agent effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the single parameter 'pdbId'. The description adds no additional meaning beyond what the schema provides, such as examples of analysis outputs or constraints on PDB IDs, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('analyze') and target resource ('active site of a protein structure'), making the purpose understandable. However, it doesn't differentiate from the sibling tool 'search-disease-proteins' or specify what aspects of the active site are analyzed, preventing a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus the sibling 'search-disease-proteins' or other alternatives. The description implies usage for protein structure analysis but lacks explicit context, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search-disease-proteinsC

Search for proteins related to a disease

ParametersJSON Schema
NameRequiredDescriptionDefault
diseaseYesDisease name (e.g., 'covid', 'alzheimer's')

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states what the tool does ('Search for proteins') without describing how it behaves—no information about response format, pagination, error handling, rate limits, authentication requirements, or whether it's a read-only or mutating operation. This leaves significant gaps in understanding the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—a single sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core functionality, making it efficient and easy to parse, though this conciseness comes at the cost of completeness in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is insufficiently complete. It doesn't explain what the search returns (e.g., protein names, IDs, relevance scores), how results are structured, or any behavioral aspects. For a search tool with no structured output documentation, the description should provide more context about the expected results and operational characteristics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the single parameter 'disease' fully documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema (e.g., it doesn't elaborate on search algorithms, result filtering, or disease name formatting). This meets the baseline expectation when schema coverage is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Search') and resource ('proteins related to a disease'), making it immediately understandable. However, it doesn't explicitly differentiate from the sibling tool 'analyze-active-site', which appears to be a different type of analysis tool rather than a direct alternative for searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention the sibling tool 'analyze-active-site' or any other potential tools, nor does it specify prerequisites, constraints, or typical use cases beyond the basic purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3/5.0
Disambiguation5/5

The two tools have clearly distinct purposes: one analyzes protein structures (active sites), while the other searches for disease-related proteins. There is no overlap in functionality, making it easy for an agent to choose the correct tool based on the task.

Naming Consistency4/5

Both tools use a consistent verb-noun pattern with hyphens (e.g., analyze-active-site, search-disease-proteins). This naming scheme is readable and predictable, though with only two tools, it's hard to assess full consistency across a larger set.

Tool Count2/5

With only two tools, the server feels thin for a bioinformatics domain, which typically involves more operations like sequence alignment, structure prediction, or data retrieval. This limited set may not cover common workflows adequately.

Completeness2/5

The tool surface is severely incomplete for a bioinformatics server. It lacks basic operations such as fetching protein sequences, aligning sequences, predicting structures, or managing datasets. This will likely cause agent failures in handling typical tasks in this domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A comprehensive Model Context Protocol server that enables advanced PubMed literature search, citation formatting, and research analysis through natural language interactions.
    12
    10
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that provides tools for interacting with the STRING database to analyze protein-protein interaction networks and functional enrichment. It enables users to map protein identifiers, retrieve interaction data, and generate biological network visualizations through natural language interfaces.
    11
    3
    BSD 3-Clause

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/acashmoney/bio-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server