bc_get_antibody_list
Search the Antibody Registry to find antibodies by gene symbol, protein name, or UniProt ID. Retrieve catalog numbers, vendors, clonality, applications, and metadata for research.
Instructions
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.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| search | Yes | Gene symbol, protein name, or UniProt ID (e.g., 'TRPC6') | |
| page | No | Page number for pagination (default: 1) | |
| size | No | Number of results per page (default: API default) |
Implementation Reference
- Core implementation of the `get_antibody_list` tool handler, which queries the Antibody Registry API for antibodies based on gene symbol, protein name, or UniProt ID. This becomes `bc_get_antibody_list` when core_mcp is imported under the 'bc' prefix in the main app.@core_mcp.tool() def get_antibody_list( search: Annotated[str, Field(description="Gene symbol, protein name, or UniProt ID (e.g., 'TRPC6')")], page: Annotated[int | None, Field(description="Page number for pagination (default: 1)")] = None, size: Annotated[int | None, Field(description="Number of results per page (default: API default)")] = None, ) -> 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/fts-antibodies" params = {"q": search} if page is not None: params["page"] = page if size is not None: params["size"] = size 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 `get_antibody_list`) into `core_mcp` by importing the module, triggering the @tool decorator execution.from .antibodyregistry import *
- src/biocontext_kb/app.py:35-40 (registration)Imports `core_mcp` (containing `get_antibody_list`) into the main `mcp_app` under the slugified name 'bc', prefixing tools as `bc_get_antibody_list`.for mcp in [core_mcp, *(await get_openapi_mcps())]: await mcp_app.import_server( mcp, slugify(mcp.name), ) logger.info("MCP server setup complete.")
- Pydantic schema definitions for input parameters and return type of the tool.def get_antibody_list( search: Annotated[str, Field(description="Gene symbol, protein name, or UniProt ID (e.g., 'TRPC6')")], page: Annotated[int | None, Field(description="Page number for pagination (default: 1)")] = None, size: Annotated[int | None, Field(description="Number of results per page (default: API default)")] = None, ) -> dict: