bc_get_antibody_list
Retrieve detailed antibody information by searching the Antibody Registry using gene symbols, protein names, or UniProt IDs to identify catalog numbers, vendors, clonality, and applications.
Instructions
Query the Antibody Registry for available antibodies.
This function searches the Antibody Registry database for antibodies matching the search term. Common search parameters include gene symbols (e.g., 'TRPC6'), protein names, UniProt IDs, or other relevant identifiers.
Note: Some information provided by the Antibody Registry is for non-commercial use only. Users should refer to antibodyregistry.org for complete terms of use and licensing details.
Args: search (str): Search term for antibodies. Can be a gene symbol, protein name, UniProt ID, or similar identifier.
Returns: dict: Antibody search results including catalog numbers, vendor information, clonality, applications, and other antibody metadata, or error message if the request fails.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| search | Yes | Search term for antibodies (e.g., gene symbol, protein name, UniProt ID) |
Implementation Reference
- The handler function get_antibody_list (exposed as bc_get_antibody_list), decorated with @core_mcp.tool(). Implements the tool logic by searching the Antibody Registry API for antibodies based on gene symbol, protein name, or UniProt ID.@core_mcp.tool() def get_antibody_list( search: Annotated[str, Field(description="Gene symbol, protein name, or UniProt ID (e.g., 'TRPC6')")], ) -> dict: """Search Antibody Registry for antibodies. Returns catalog numbers, vendors, clonality, applications, and metadata. Returns: dict: Search results containing list of antibodies with catalog numbers, vendors, clonality, applications, metadata or error message. """ search = search.strip() if not search: return {"error": "Search term cannot be empty."} url = "https://www.antibodyregistry.org/api/antibodies/search" params = {"search": search} headers = {"accept": "application/json"} try: response = requests.get(url, params=params, headers=headers) response.raise_for_status() return response.json() except requests.exceptions.RequestException as e: return {"error": f"Failed to fetch antibody information from Antibody Registry: {e!s}"}
- src/biocontext_kb/core/__init__.py:5-5 (registration)Registers the antibodyregistry tools (including bc_get_antibody_list) on core_mcp by importing the module containing the decorated handler.from .antibodyregistry import *
- src/biocontext_kb/app.py:35-39 (registration)Registers all tools from core_mcp (prefixed with 'bc_') into the main MCP app, making get_antibody_list available as 'bc_get_antibody_list'.for mcp in [core_mcp, *(await get_openapi_mcps())]: await mcp_app.import_server( mcp, slugify(mcp.name), )
- src/biocontext_kb/core/_server.py:3-6 (registration)Defines the core_mcp FastMCP instance named 'BC', whose tools are later prefixed with 'bc_'.core_mcp = FastMCP( # type: ignore "BC", instructions="Provides access to biomedical knowledge bases.", )
- Pydantic schema definition for the input parameter 'search' using Annotated and Field.search: Annotated[str, Field(description="Gene symbol, protein name, or UniProt ID (e.g., 'TRPC6')")],