MCP FASTA
一个模型上下文协议(MCP)服务器,用于使用Claude在VS Code中处理FASTA文件。该服务器提供用于解析、分析和操纵生物信息学中常用的FASTA序列文件的工具。
特性
- 加载FASTA文件 -解析FASTA文件并提取序列元数据
- 总结序列 -获取序列长度和计数的统计信息
- 获取特定序列 -按ID检索单个序列
- 按长度过滤 -查找指定长度范围内的序列
- 写入FASTA文件 -从序列数据创建新的FASTA文件
- 验证序列 -检查序列格式和组成
- 反向补码 -产生DNA序列的反向互补
- 翻译序列 -利用遗传密码将DNA转化为蛋白质
- 搜索模式 -查找主题、图案或子序列
- 计算GC含量 -分析核苷酸组成和GC含量
- 拆分FASTA文件 -将大文件分割成小块
- 合并FASTA文件 -通过重复处理合并多个文件
- 提取子序列 -按坐标提取区域
- 查找重复项 -通过ID或内容识别重复序列
安装
- 克隆存储库:
git clone
cd mcp-fasta- 安装依赖项:
npm install- 构建项目:
npm run build用法
使用VS Code和Claude
服务器已使用Claude自动配置为VS Code。一旦构建完成,MCP服务器将在Claude中使用以下工具:
可用工具
load_fasta-加载FASTA文件并解析为序列记录
- 输入: path (string)-FASTA文件的路径 - 输出:具有ID、描述和长度的序列记录数组
summarize_fasta-总结FASTA文件中序列的数量和长度
- 输入: path (string)-FASTA文件的路径 - 输出:统计数据包括序列数、平均长度、最长和最短
get_sequence_by_id-按ID从FASTA文件中获取单个序列
- 输入: - path (string)-FASTA文件的路径 - id (string)-要获取的序列ID - 输出:完整的序列记录,包括ID、描述和序列
filter_fasta_by_length-返回文件中长度范围内的所有序列
- 输入: - path (string)-FASTA文件的路径 - minLength (数字)-最小序列长度 - maxLength (number)-最大序列长度 - 输出:具有元数据的匹配序列数组
write_fasta-将序列写入FASTA文件
- 输入: - path (string)-FASTA文件的输出路径 - sequences (array)-序列对象数组 id, sequence,可选 description - 输出:带有写入序列数的确认消息
validate_sequence-验证序列的核苷酸/氨基酸组成是否正确
- 输入: - path (string)-FASTA文件的路径 - sequenceType (enum)-要验证的类型:“dna”、“rna”、“蛋白质”或“auto” - 输出:验证结果包含无效字符和检测到的类型
reverse_complement-产生DNA序列的反向互补
- 输入: - path (string)-FASTA文件的路径 - outputPath (string,可选)-反向补码序列的输出文件 - sequenceIds (数组,可选)-要处理的特定序列ID - 输出:使用统计数据反转补码序列
translate_sequence-使用遗传密码将DNA序列翻译成蛋白质
- 输入: - path (string)-FASTA文件的路径 - readingFrame (数字)-读取帧(正向1-3,反向-1至-3) - geneticCode (字符串,可选)-遗传代码表(“标准”、“脊椎动物线粒体”、“细菌”) - outputPath (字符串,可选)-翻译序列的输出文件 - 输出:翻译的蛋白质序列与统计
search_sequence-搜索图案、图案或子序列
- 输入: - path (string)-FASTA文件的路径 - pattern (string)-搜索模式(支持IUPAC代码和正则表达式) - searchType (enum)-类型:“精确”、“正则表达式”或“iupac” - caseSensitive (布尔值,可选)-区分大小写 - includeReverseComplement (布尔值,可选)-搜索反向链 - 输出:匹配所有序列的位置和上下文
calculate_gc_content-计算GC含量和核苷酸统计
- 输入: - path (string)-FASTA文件的路径 - windowSize (数量,可选)-滑动窗口分析的窗口大小 - 输出:GC含量、核苷酸计数和可选滑动窗口数据
split_fasta-将FASTA文件拆分为多个文件
- 输入: - path (string)-FASTA文件的路径 - splitBy (enum)-拆分方法:“计数”、“大小”或“单个” - value (数字,可选)-每个文件的序列或最大大小(MB) - outputDir (string)-输出目录 - prefix (字符串,可选)-文件名前缀 - 输出:有关创建的文件的信息
merge_fasta-合并多个FASTA文件
- 输入: - inputPaths (array)-输入文件路径数组 - outputPath (string)-输出合并文件路径 - removeDuplicates (boolean,可选)-删除重复序列 - addFilePrefix (布尔值,可选)-将文件名添加到序列ID中 - 输出:合并统计信息和序列信息
extract_subsequence-按坐标提取子序列
- 输入: - path (string)-FASTA文件的路径 - coordinates (array)-包含sequenceId、start、end的提取坐标数组 - outputPath (字符串,可选)-提取序列的输出文件 - 输出:提取具有坐标信息的子序列
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编译为JavaScriptnpm 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 utilitiesFASTA格式支持
此服务器支持标准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文件。
