protein-mcp-server
공개 호스팅 서버: https://protein.caseyjhand.com/mcp
도구
구조 연구의 전체 흐름을 아우르는 일곱 가지 도구 — 탐색, 조회, 상동체 검색, 리간드 추적, 비교, 코퍼스 프로파일링, 주석 — 실험(PDB) 및 예측(AlphaFold) 구조를 하나의 인터페이스에서 제공합니다:
도구 | 설명 |
| 자유 텍스트, 서열, 또는 생물체/방법/해상도 필터로 실험 및 예측 구조를 검색하며, 선택적 패싯(facet) 분석을 지원합니다. |
| ID로 메타데이터와 좌표 파일 URL을 조회합니다 — 실험(PDB), 예측(AlphaFold), 또는 최적 가용 모델 — 배치 부분 성공 및 선택적 좌표 인라인을 지원합니다. |
| 서열(RCSB mmseqs2) 또는 폴드(Foldseek) 기준 상동체를 서열, PDB ID, 또는 UniProt 접근 번호로부터 찾습니다. |
| 리간드 이름/화학식을 컴포넌트 ID로 변환하고, 리간드를 포함하는 구조를 찾거나, 결합 부위 잔기를 매핑합니다. |
| 여러 구조를 참조 구조에 맞추거나 전체 쌍별 행렬로 구조 정렬합니다(TM-align / jFATCAT). |
| 서버 측 패싯으로 PDB를 분포와 추세로 프로파일링합니다 — 개수, 히스토그램, 타임라인, 교차 분석. |
| UniProt 기능 및 자연 변이와 GO 용어를 포함한 InterPro 도메인/패밀리 소속을 조회합니다. |
protein_search_structures
RCSB Search v2를 통한 실험(PDB) 및 예측(계산 모델) 구조 간 연합 검색.
자유 텍스트, 단백질 서열(mmseqs2 유사성 검색 트리거), 생물체/방법/해상도 필터
content_type은 검색 범위를experimental,predicted, 또는all로 한정합니다 — 기본값all은 두 세계의 진정한 합집합이므로 계산 모델이 PDB 항목과 함께 표시됩니다모든 결과는
source를 명시합니다; 실험 결과는 제목, 방법, 해상도, 생물체 정보가 보강되고, 계산 모델은 ID에서 파싱된 UniProt 접근 번호를 포함합니다선택적
facets는 추가 호출 없이 결과와 함께 방법/생물체/출시 연도 분석을 반환하며, 각 차원에 대해 값이 없는 일치 항목 수를 보고합니다; 각 차원은 한 번만 나열될 수 있습니다체인 히트 ID를
protein_get_structure에 직접 전달할 수 있습니다
protein_get_structure
메타데이터와 좌표 파일 URL로 구조를 조회하며, source에 따라 제공자를 결정합니다.
source: experimental은 PDB 항목 ID를 받아 하나의 RCSB GraphQL 호출로 배치 처리합니다; 또한 검색이 반환하는 계산 모델 ID(AF_*/MA_*)도 해석하며, 이들은 해당 모델링 제공자에 귀속된source: predicted로 반환됩니다source: predicted는 UniProt 접근 번호를 받아 pLDDT/PAE 신뢰도를 포함한 AlphaFold 모델을 반환합니다source: best_available은 UniProt 접근 번호를 받아 최적 연합 모델(실험 모델이 있으면 그것, 없으면 최상의 예측)을 반환합니다ID별 부분 성공 — 해석되지 않은 ID는 배치 수준 오류가 아닌
failed[]에 나열됩니다include_coords는 좌표 내용을 인라인합니다; 배치가 응답 예산을 초과하면 구조별 크기 개요를 반환하므로 특정 구조에 대해sections: [ids]로 다시 호출할 수 있습니다모든 응답은 업스트림 데이터 라이선스와 인용을 명시하는
attribution블록을 포함합니다 (업스트림 데이터 라이선스 참조)
protein_find_similar
서열 또는 폴드 기준으로 구조적 또는 진화적으로 관련된 단백질을 찾습니다.
by: sequence는 동기식 RCSB mmseqs2 검색을 실행합니다;by: structure는 실험 및 예측 데이터베이스에 대해 비동기식 Foldseek 검색을 실행합니다원시 한 글자 서열, PDB ID, 또는 UniProt 접근 번호로 질의할 수 있습니다
Foldseek 대상은 기본적으로
pdb100+afdb50입니다;databases로 재정의할 수 있습니다(예:afdb-swissprot,BFVD)폴링 예산을 초과하는 비동기 작업은
ticketId와 함께status: computing을 반환합니다 — 동일한 작업을 다시 제출하는 대신ticket_id에 해당 값을 설정하여 다시 호출하면 같은 작업을 폴링합니다각 결과는 출처 엔진과 원본 데이터베이스를 명시합니다
protein_track_ligands
PDB 전반에 걸친 리간드 발견 및 결합 부위 분석.
mode: find_ligand는 이름 또는 화학식을 화학식, 분자량, SMILES, InChIKey가 포함된 화학 컴포넌트 ID로 해석합니다mode: structures_with_ligand는 정확한 컴포넌트 ID로 리간드를 포함하는 PDB 항목을 반환합니다mode: binding_site는 구조에서 리간드 포켓을 둘러싼 단백질 잔기를 접촉 거리와 함께 반환합니다결합 부위는 실험 전용입니다 — 기탁된 좌표에서 계산됩니다(예측 모델에는 결합 리간드가 없음)
protein_compare_structures
RCSB 구조 비교 서비스를 통한 여러 구조(구성된 PROTEIN_MAX_COMPARE_STRUCTURES 상한까지)의 구조 정렬.
방법:
tm-align,fatcat-rigid,fatcat-flexiblereference: first는 모든 구조를 첫 번째 구조에 정렬합니다;reference: all_pairs는 전체 쌍별 행렬을 계산합니다선택적 구조별
chain은 정렬을 단일 체인으로 제한합니다structures[]에 반복된 구조는 한 번만 비교됩니다 — 반복은 자기 정렬과 대칭 쌍만 추가할 뿐이며, 재개 메커니즘이 원본과 구분할 수 없습니다각 쌍은 독립적인 비동기 작업으로, 동시성 상한과 쌍별 부분 성공으로 확장됩니다 — 예산이 소진될 때까지 계산 중인 쌍은 해당 작업
uuid와 함께status: computing을 반환하고, 실패한 쌍은 다른 쌍에 영향을 주지 않고 해당 행만 저하시킵니다이전 응답의
pairs[]에서 복사한 일치하는{ a, b, uuid }항목을resume[]에 포함하여 다시 호출하면 재제출 대신 계산 중인 쌍의 작업을 폴링합니다쌍별로 TM-score, RMSD, 정렬된 잔기 수를 반환하며,
modeledResidues와coverage도 포함합니다 — 각각[a, b]튜플이며, coverage는 해당 구조 자체의 모델링된 잔기 수 대비 0–100 백분율입니다
protein_analyze_collection
선택적 범위 질의에 대해 PDB를 분포와 추세로 프로파일링합니다 — RCSB의 서버 측 패싯 엔진 기반(단일 호출, 압축된 버킷, 행 풀 없음).
method,organism,polymer_type,resolution,release_year, 또는molecular_weight로 그룹화분석에는
group_by차원 하나, 교차 분석에는 서로 다른 차원 두 개(첫 번째가 두 번째를 중첩)를 사용합니다; 반복된 차원은 거부됩니다interval은 값 히스토그램의 빈 너비 또는 날짜 히스토그램의 기간(year/month/quarter)을 설정합니다자유 텍스트
query,organism,method, 또는max_resolution으로 범위를 한정합니다;content_type은 구조 세계를 선택합니다bucket_limit은 응답이 아닌 차원 수준별 버킷 수를 제한합니다 — 교차 분석에서는 상위 차원과 각 상위 버킷 내 중첩 하위 차원에 별도로 적용되므로 최대bucket_limit × (1 + bucket_limit)개의 버킷이 반환됩니다. 각 수준은 자체 잘림을 표시하고,bucketsReturned는 실제 총계를 제공합니다모든 차원은
missingValueCount를 보고합니다 — 범위 내에서 해당 속성에 값이 없어 어떤 버킷에도 속하지 않는 일치 항목입니다(resolution분석은 NMR 항목을 포함하지 않으며,method와resolution모두 계산 모델을 포함하지 않습니다)
protein_get_annotations
단백질의 서열 및 기능 주석.
UniProt 기능(도메인, 결합 부위, PTM) 및 자연 서열 변이
GO 용어가 포함된 InterPro 도메인/패밀리 소속(Pfam, PROSITE, …)
UniProt 접근 번호를 직접 제공하거나 PDB ID를 제공할 수 있습니다 — 구조의 서열 교차 참조를 통해 UniProt 접근 번호로 해석됩니다
다중 체인 PDB 항목은 여러 접근 번호에 매핑될 수 있습니다; 기본값은 결정론적 최저 저자 체인 선택이며, 대안은
ambiguity아래에 나열됩니다. 특정 체인을 선택하려면chain(저자 체인 ID, 예:A)을 전달하세요include는 가져올 주석 클래스를 한정합니다:features,domains,variants, 또는all모든 응답은 업스트림 데이터 라이선스와 인용을 명시하는
attribution블록을 포함합니다 (업스트림 데이터 라이선스 참조)
Related MCP server: UniProt MCP Server
리소스
유형 | 이름 | 설명 |
리소스 |
| PDB 항목의 실험 구조 요약 — 제목, 방법, 해상도, 생물체, 체인, 결합 리간드. |
리소스 |
| AlphaFold DB의 UniProt 접근 번호에 대한 예측 구조 요약 — 평균 pLDDT, 신뢰 구간 비율, 모델 URL, 버전. |
모든 리소스 데이터는 도구를 통해서도 접근할 수 있습니다 — pdb://{entry_id}는 source: experimental에 대한 protein_get_structure를 미러링하고, af://{uniprot}는 source: predicted에 대한 그것을 미러링합니다. 많은 MCP 클라이언트는 도구 전용이며 리소스를 표시하지 않습니다; 요약은 도구를 통해 계속 접근할 수 있습니다.
기능
@cyanheads/mcp-ts-core 기반으로 구축:
선언적 도구 및 리소스 정의 — 프리미티브당 단일 파일, 프레임워크가 등록 및 검증 처리
통합 오류 처리 — 핸들러가 throw하면 프레임워크가 포착, 분류, 포맷
플러그형 인증:
none,jwt,oauth교체 가능한 스토리지 백엔드:
in-memory,filesystem,Supabase,Cloudflare KV/R2/D1선택적 OpenTelemetry 추적이 포함된 구조화된 로깅
STDIO 및 Streamable HTTP 전송
단백질 특화:
실험(PDB) 및 예측(AlphaFold / 3D-Beacons) 구조에 대한 단일 통합 표면 — 검색, 가져오기, 비교가 두 세계를 동일하게 처리
모든 업스트림에서 키 없이 사용 — RCSB, AlphaFold DB, 3D-Beacons, UniProt, InterPro, Foldseek, 프로비저닝할 API 키 없음
코퍼스 분석은 RCSB의 패싯 엔진에서 서버 측 실행 — 분포, 히스토그램, 교차 집계를 한 번의 호출로 처리, 행 풀링 및 SQL 워크스페이스 불필요
비동기 정렬 및 Foldseek 작업은 제한된 예산 내에서 폴링하고 차단 대신 작업 티켓(
ticketId/ 쌍별uuid)을 반환 —ticket_id또는resume[]항목으로 다시 호출하여 동일한 작업을 재제출하지 않고 폴링
에이전트 친화적 출력:
모든 응답에 출처 정보 — 각 히트는
source(experimental/predicted), 이를 생성한 엔진 및 데이터베이스, 유효 쿼리 / 총 개수 에코를 포함하여 에이전트가 커버리지를 추론할 수 있음우아한 부분 실패 — 배치 가져오기 및 쌍별 비교는 전체 요청을 실패시키는 대신 항목별 행(
failed[], 쌍별status)을 반환하며, 각각 실행 가능한 복구 텍스트 포함판별된 출력 계약 — 타입화된
source및status유니온, 재개 티켓이 있는computing결과, 예산 초과 개요를 통해 호출자가 문자열 파싱이 아닌 데이터로 분기 가능
시작하기
공개 호스팅 인스턴스
공개 인스턴스는 https://protein.caseyjhand.com/mcp에서 사용 가능 — 설치 불필요. Streamable HTTP를 통해 모든 MCP 클라이언트를 연결:
{
"mcpServers": {
"protein": {
"type": "streamable-http",
"url": "https://protein.caseyjhand.com/mcp"
}
}
}자체 호스팅
MCP 클라이언트 구성 파일에 다음을 추가하세요. API 키가 필요 없습니다 — 모든 업스트림 제공자가 키 없이 사용 가능합니다.
{
"mcpServers": {
"protein-mcp-server": {
"type": "stdio",
"command": "bunx",
"args": ["@cyanheads/protein-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info"
}
}
}
}또는 npx 사용(Bun 불필요):
{
"mcpServers": {
"protein-mcp-server": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@cyanheads/protein-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info"
}
}
}
}또는 Docker 사용:
{
"mcpServers": {
"protein-mcp-server": {
"type": "stdio",
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "ghcr.io/cyanheads/protein-mcp-server:latest"]
}
}
}Streamable HTTP의 경우 전송을 설정하고 서버를 시작하세요:
MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http
# Server listens at http://localhost:3010/mcp사전 요구 사항
Bun v1.3.2 이상(또는 Node.js v24+).
계정 또는 API 키 불필요 — RCSB, AlphaFold DB, 3D-Beacons, UniProt, InterPro, Foldseek는 모두 공개이며 키 없이 사용 가능합니다.
설치
저장소 클론:
git clone https://github.com/cyanheads/protein-mcp-server.git디렉터리로 이동:
cd protein-mcp-server의존성 설치:
bun install구성
모든 업스트림 제공자는 키가 없으므로 서버는 구성 없이 바로 실행됩니다. 아래의 모든 변수는 선택 사항입니다.
변수 | 설명 | 기본값 |
|
|
|
| 한 배치에서 |
|
|
|
|
|
|
|
| ID별 / 쌍별 팬아웃을 위한 최대 동시 업스트림 요청 수(1–16). |
|
| RCSB Search API v2의 기본 URL. |
|
| AlphaFold 단백질 구조 데이터베이스 API의 기본 URL. |
|
| Foldseek 구조 유사성 검색 서비스의 기본 URL. |
|
| 전송: |
|
| HTTP 서버 포트. |
|
| 인증 모드: |
|
| 로그 수준(RFC 5424). |
|
| OpenTelemetry 계측 활성화. |
|
제공자 기본 URL 재정의 및 튜닝 제한의 전체 목록은 .env.example를 참조하세요.
서버 실행
로컬 개발
빌드 및 실행:
# One-time build bun run rebuild # Run the built server bun run start:stdio # or bun run start:http검사 및 테스트 실행:
bun run devcheck # Lint, format, typecheck, security bun run test # Vitest test suite bun run lint:mcp # Validate MCP definitions against spec
Docker
docker build -t protein-mcp-server .
docker run --rm -e MCP_TRANSPORT_TYPE=http -p 3010:3010 protein-mcp-serverDockerfile은 기본적으로 HTTP 전송, 무상태 세션 모드로 설정되며 /var/log/protein-mcp-server에 로그를 기록합니다. OpenTelemetry 피어 의존성은 기본적으로 설치됩니다 — 생략하려면 --build-arg OTEL_ENABLED=false로 빌드하세요.
프로젝트 구조
디렉터리 | 용도 |
|
|
| Zod를 사용한 서버별 환경 변수 파싱 및 검증. |
| 도구 정의( |
| 리소스 정의( |
| 제공자 서비스 계층 — RCSB, AlphaFold, 3D-Beacons, UniProt, InterPro, Foldseek 및 공유 HTTP/식별자 헬퍼. |
|
|
개발 가이드
개발 지침 및 아키텍처 규칙은 CLAUDE.md/AGENTS.md를 참조하세요. 요약:
핸들러는 throw하고 프레임워크가 포착 — 도구 로직에
try/catch없음요청 범위 로깅에는
ctx.log, 테넌트 범위 스토리지에는ctx.state사용src/mcp-server/*/definitions/index.ts의 배럴을 통해 새 도구 및 리소스 등록외부 API 호출 래핑: 원시 검증 → 도메인 타입으로 정규화 → 출력 스키마 반환; 누락된 필드를 임의로 생성하지 않음
기여
이슈 및 풀 리퀘스트를 환영합니다. 제출 전에 검사 및 테스트를 실행하세요:
bun run devcheck
bun run test업스트림 데이터 라이선스
구조 및 주석 데이터는 각각 자체 라이선스가 적용되는 공개 업스트림 데이터베이스에서 제공됩니다. protein_get_structure 및 protein_get_annotations는 모든 응답에 attribution 블록을 포함합니다 — 해당 특정 응답에 기여한 각 소스의 라이선스, 인용, 홈페이지 — 따라서 저작자 표시 의무는 여기만이 아니라 다운스트림 소비자에게 데이터와 함께 전달됩니다. CC BY / CC BY-SA 소스는 재배포 시 저작자 표시가 필요합니다. CC0 소스는 인용만 필요합니다(저작자 표시 권장, 필수 아님).
소스 | 기여 대상 | 라이선스 |
| CC0 1.0 Universal | |
| CC BY 4.0 | |
| CC BY 4.0 | |
| CC BY-SA 4.0 | |
| CC BY 4.0 | |
| CC BY 4.0 | |
| CC0 1.0 Universal | |
| CC BY 4.0 |
best_available는 3D-Beacons를 통해 예측 모델을 통합하므로 attribution 블록은 실제 기여 제공자(AlphaFold DB, SWISS-MODEL, BFVD, …)를 표시합니다. 큐레이션된 라이선스 항목이 없는 제공자는 3D-Beacons로 연결되는 See provider terms 폴백을 사용하며 임의 생성된 라이선스가 아닙니다. InterPro 자체의 도메인/패밀리 분류는 CC0입니다. 함께 전달되는 GO 용어는 별도로 CC BY 4.0이므로 각각 실제로 기여할 때만 독립적으로 표시됩니다. 각 소스의 전체 인용은 관련 도구 응답의 attribution 블록에 포함됩니다. 이는 업스트림 데이터 라이선스를 다룹니다 — 서버 자체 코드는 별도로 라이선스가 적용됩니다(라이선스 참조).
라이선스
Apache-2.0 — 자세한 내용은 LICENSE를 참조하세요.
This server cannot be installed
Maintenance
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
RCSB PDB MCP — experimentally determined macromolecular structures.
Model Context Protocol server for Studex tools, notifications, and profile integrations
PDBe (Protein Data Bank in Europe, EBI) MCP.
UniProt MCP — protein sequence + function database.
Related MCP Servers
- FlicenseBqualityDmaintenanceA Model Context Protocol server that enhances language models with protein structure analysis capabilities, enabling detailed active site analysis and disease-related protein searches through established protein databases.218
- FlicenseCqualityDmaintenanceA comprehensive Model Context Protocol (MCP) server providing advanced access to the UniProt protein database.2620
- FlicenseAqualityFmaintenanceA Model Context Protocol (MCP) server that provides access to the Protein Data Bank (PDB) - the worldwide repository of information about the 3D structures of proteins, nucleic acids, and complex assemblies.525
- FlicenseBqualityDmaintenanceA comprehensive Model Context Protocol (MCP) server that provides access to the AlphaFold Protein Structure Database through a rich set of tools and resources for protein structure prediction analysis.1935
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/cyanheads/protein-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server