FASTA文件处理工具

一个用于在VS Code中处理FASTA文件的模型上下文协议服务器,提供解析、分析和操作生物信息学中常用的FASTA序列文件的功能。

  • by coreymhudson
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 coreymhudson/mcp-fasta

使用说明

MCP FASTA

一个模型上下文协议(MCP)服务器,用于使用Claude在VS Code中处理FASTA文件。该服务器提供用于解析、分析和操纵生物信息学中常用的FASTA序列文件的工具。

特性

  • 加载FASTA文件 -解析FASTA文件并提取序列元数据
  • 总结序列 -获取序列长度和计数的统计信息
  • 获取特定序列 -按ID检索单个序列
  • 按长度过滤 -查找指定长度范围内的序列
  • 写入FASTA文件 -从序列数据创建新的FASTA文件
  • 验证序列 -检查序列格式和组成
  • 反向补码 -产生DNA序列的反向互补
  • 翻译序列 -利用遗传密码将DNA转化为蛋白质
  • 搜索模式 -查找主题、图案或子序列
  • 计算GC含量 -分析核苷酸组成和GC含量
  • 拆分FASTA文件 -将大文件分割成小块
  • 合并FASTA文件 -通过重复处理合并多个文件
  • 提取子序列 -按坐标提取区域
  • 查找重复项 -通过ID或内容识别重复序列

安装

  1. 克隆存储库:
git clone <repository-url>
cd mcp-fasta
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build

用法

使用VS Code和Claude

服务器已使用Claude自动配置为VS Code。一旦构建完成,MCP服务器将在Claude中使用以下工具:

可用工具

  1. load_fasta -加载FASTA文件并解析为序列记录

    • 输入: path (string)-FASTA文件的路径
    • 输出:具有ID、描述和长度的序列记录数组
  2. summarize_fasta -总结FASTA文件中序列的数量和长度

    • 输入: path (string)-FASTA文件的路径
    • 输出:统计数据包括序列数、平均长度、最长和最短
  3. get_sequence_by_id -按ID从FASTA文件中获取单个序列

    • 输入:
      • path (string)-FASTA文件的路径
      • id (string)-要获取的序列ID
    • 输出:完整的序列记录,包括ID、描述和序列
  4. filter_fasta_by_length -返回文件中长度范围内的所有序列

    • 输入:
      • path (string)-FASTA文件的路径
      • minLength (数字)-最小序列长度
      • maxLength (number)-最大序列长度
    • 输出:具有元数据的匹配序列数组
  5. write_fasta -将序列写入FASTA文件

    • 输入:
      • path (string)-FASTA文件的输出路径
      • sequences (array)-序列对象数组 id, sequence,可选 description
    • 输出:带有写入序列数的确认消息
  6. validate_sequence -验证序列的核苷酸/氨基酸组成是否正确

    • 输入:
      • path (string)-FASTA文件的路径
      • sequenceType (enum)-要验证的类型:“dna”、“rna”、“蛋白质”或“auto”
    • 输出:验证结果包含无效字符和检测到的类型
  7. reverse_complement -产生DNA序列的反向互补

    • 输入:
      • path (string)-FASTA文件的路径
      • outputPath (string,可选)-反向补码序列的输出文件
      • sequenceIds (数组,可选)-要处理的特定序列ID
    • 输出:使用统计数据反转补码序列
  8. translate_sequence -使用遗传密码将DNA序列翻译成蛋白质

    • 输入:
      • path (string)-FASTA文件的路径
      • readingFrame (数字)-读取帧(正向1-3,反向-1至-3)
      • geneticCode (字符串,可选)-遗传代码表(“标准”、“脊椎动物线粒体”、“细菌”)
      • outputPath (字符串,可选)-翻译序列的输出文件
    • 输出:翻译的蛋白质序列与统计
  9. search_sequence -搜索图案、图案或子序列

    • 输入:
      • path (string)-FASTA文件的路径
      • pattern (string)-搜索模式(支持IUPAC代码和正则表达式)
      • searchType (enum)-类型:“精确”、“正则表达式”或“iupac”
      • caseSensitive (布尔值,可选)-区分大小写
      • includeReverseComplement (布尔值,可选)-搜索反向链
    • 输出:匹配所有序列的位置和上下文
  10. calculate_gc_content -计算GC含量和核苷酸统计

    • 输入:
      • path (string)-FASTA文件的路径
      • windowSize (数量,可选)-滑动窗口分析的窗口大小
    • 输出:GC含量、核苷酸计数和可选滑动窗口数据
  11. split_fasta -将FASTA文件拆分为多个文件

    • 输入:
      • path (string)-FASTA文件的路径
      • splitBy (enum)-拆分方法:“计数”、“大小”或“单个”
      • value (数字,可选)-每个文件的序列或最大大小(MB)
      • outputDir (string)-输出目录
      • prefix (字符串,可选)-文件名前缀
    • 输出:有关创建的文件的信息
  12. merge_fasta -合并多个FASTA文件

    • 输入:
      • inputPaths (array)-输入文件路径数组
      • outputPath (string)-输出合并文件路径
      • removeDuplicates (boolean,可选)-删除重复序列
      • addFilePrefix (布尔值,可选)-将文件名添加到序列ID中
    • 输出:合并统计信息和序列信息
  13. extract_subsequence -按坐标提取子序列

    • 输入:
      • path (string)-FASTA文件的路径
      • coordinates (array)-包含sequenceId、start、end的提取坐标数组
      • outputPath (字符串,可选)-提取序列的输出文件
    • 输出:提取具有坐标信息的子序列
  14. find_duplicates -查找重复序列

    • 输入:
      • path (string)-FASTA文件的路径
      • duplicateType (enum)-类型:“id”、“sequence”或“both”
      • caseSensitive (布尔值,可选)-序列比较的区分大小写
      • outputDuplicates (字符串,可选)-重复输出文件
      • outputUnique (字符串,可选)-唯一序列的输出文件
    • 输出:重复的分析和分组信息

命令行Claude用法

要使用命令行Claude,只需从项目目录运行启动脚本:

./start-claude.sh

此脚本会自动执行以下操作:

  • 更改到正确的目录
  • 使用正确的MCP配置启动Claude
  • 自动加载所有FASTA工具

或者,您可以手动运行Claude:

cd "/path/to/mcp-fasta"
claude --mcp-config mcp-config-portable.json

手动服务器使用

您还可以手动运行MCP服务器进行调试:

npm start

服务器使用stdio传输并通过JSON-RPC进行通信。

发展

脚本

  • npm run build -将TypeScript编译为JavaScript
  • npm start -启动MCP服务器
  • npm run dev -在一个命令中构建和启动

项目结构

src/
├── server.ts              # Main MCP server
├── tools/                 # Tool implementations
│   ├── loadFasta.ts      # Load and parse FASTA files
│   ├── summarizeFasta.ts # Generate sequence statistics
│   ├── getSequence.ts    # Fetch sequences by ID
│   ├── filterFasta.ts    # Filter sequences by length
│   ├── writeFasta.ts     # Write sequences to FASTA files
│   ├── validateSequence.ts # Validate sequence composition
│   ├── reverseComplement.ts # Generate reverse complement
│   ├── translateSequence.ts # Translate DNA to protein
│   ├── searchSequence.ts    # Search patterns and motifs
│   ├── calculateGC.ts       # Calculate GC content
│   ├── splitFasta.ts        # Split FASTA files
│   ├── mergeFasta.ts        # Merge multiple FASTA files
│   ├── extractSubsequence.ts # Extract by coordinates
│   └── findDuplicates.ts     # Find duplicate sequences
└── utils/
    └── fastaParser.ts    # FASTA file parsing utilities

FASTA格式支持

此服务器支持标准FASTA格式文件:

>sequence_id_1 Description of sequence 1
ATCGATCGATCGATCG
ATCGATCGATCGATCG
>sequence_id_2 Description of sequence 2
GCTAGCTAGCTAGCTA
GCTAGCTAGCTAGCTA

需求

  • Node.js 18+
  • TypeScript 5.1+
  • 带Claude扩展的VS代码(用于集成使用)

许可证

有关详细信息,请参阅LICENSE文件。