UniProt MCP Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

UniProt MCP 서버

UniProt 단백질 정보에 대한 접근을 제공하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버를 통해 AI 보조자는 UniProt에서 단백질 기능 및 서열 정보를 직접 가져올 수 있습니다.

특징

  • UniProt 접근 번호로 단백질 정보를 얻으세요
  • 다중 단백질의 일괄 검색
  • 성능 향상을 위한 캐싱(24시간 TTL)
  • 오류 처리 및 로깅
  • 정보는 다음과 같습니다.
    • 단백질 이름
    • 기능 설명
    • 전체 시퀀스
    • 시퀀스 길이
    • 유기체

빠른 시작

  1. Python 3.10 이상이 설치되어 있는지 확인하세요.
  2. 이 저장소를 복제하세요:지엑스피1
  3. 종속성 설치:
    # Using uv (recommended) uv pip install -r requirements.txt # Or using pip pip install -r requirements.txt

구성

Claude Desktop 구성 파일에 다음을 추가합니다.

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 리눅스: ~/.config/Claude/claude_desktop_config.json
{ "mcpServers": { "uniprot": { "command": "uv", "args": ["--directory", "path/to/uniprot-mcp-server", "run", "uniprot-mcp-server"] } } }

사용 예

Claude Desktop에서 서버를 구성한 후 다음과 같은 질문을 할 수 있습니다.

Can you get the protein information for UniProt accession number P98160?

일괄 쿼리의 경우:

Can you get and compare the protein information for both P04637 and P02747?

API 참조

도구

  1. get_protein_info
    • 단일 단백질에 대한 정보 얻기
    • 필수 매개변수: accession (UniProt 접근 번호)
    • 응답 예시:
      { "accession": "P12345", "protein_name": "Example protein", "function": ["Description of protein function"], "sequence": "MLTVX...", "length": 123, "organism": "Homo sapiens" }
  2. get_batch_protein_info
    • 다양한 단백질에 대한 정보를 얻으세요
    • 필수 매개변수: accessions (UniProt 접근 번호 배열)
    • 단백질 정보 객체의 배열을 반환합니다.

개발

개발 환경 설정

  1. 저장소를 복제합니다
  2. 가상 환경 만들기:
    python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
  3. 개발 종속성 설치:
    pip install -e ".[dev]"

테스트 실행

pytest

코드 스타일

이 프로젝트에서는 다음을 사용합니다.

  • 코드 서식을 위한 검정색
  • 수입 정렬을 위한 isort
  • 린팅용 flake8
  • 유형 검사를 위한 mypy
  • 보안 검사를 위한 산적
  • 종속성 취약성 검사를 위한 안전성

모든 검사를 실행합니다.

black . isort . flake8 . mypy . bandit -r src/ safety check

기술적 세부 사항

  • MCP Python SDK를 사용하여 구축됨
  • 비동기 HTTP 요청에 httpx를 사용합니다.
  • OrderedDict 기반 캐시를 사용하여 24시간 TTL로 캐싱을 구현합니다.
  • 속도 제한 및 재시도를 처리합니다.
  • 자세한 오류 메시지를 제공합니다

오류 처리

서버는 다양한 오류 시나리오를 처리합니다.

  • 잘못된 접근 번호(404개 응답)
  • API 연결 문제(네트워크 오류)
  • 속도 제한(429개 응답)
  • 잘못된 응답(JSON 구문 분석 오류)
  • 캐시 관리(TTL 및 크기 제한)

기여하다

여러분의 참여를 환영합니다! 풀 리퀘스트를 제출해 주세요. 참여 방법은 다음과 같습니다.

  1. 저장소를 포크하세요
  2. 기능 브랜치를 생성합니다( git checkout -b feature/amazing-feature )
  3. 변경 사항을 커밋하세요( git commit -m 'Add some amazing feature' )
  4. 브랜치에 푸시( git push origin feature/amazing-feature )
  5. 풀 리퀘스트 열기

적절하게 테스트를 업데이트하고 기존 코딩 스타일을 준수하세요.

특허

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

감사의 말

  • 단백질 데이터 API를 제공하는 UniProt
  • 모델 컨텍스트 프로토콜 사양에 대한 Anthropic
  • 이 프로젝트를 개선하는 데 도움을 준 기여자

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

AI 보조자가 UniProt에서 직접 단백질 정보에 접근하여 접근 번호로 단백질 이름, 기능, 서열 및 생물체 데이터를 검색할 수 있도록 합니다.

  1. Features
    1. Quick Start
      1. Configuration
        1. Usage Examples
          1. API Reference
            1. Tools
          2. Development
            1. Setting up development environment
            2. Running tests
            3. Code style
          3. Technical Details
            1. Error Handling
          4. Contributing
            1. License
              1. Acknowledgments
                ID: ttjbai3lpx