关于 mcp-file-processor
mcp-file-processor 是面向 RAG 流程的本地 MCP 服务,可从文档和代码中提取并整理文本。它结合格式处理、关键词提取、内容类型检测和可配置分块。
主要功能
- 01从文档和代码提取文本
- 02提取排序后的关键词
- 03识别代码与自然语言
- 04将文本切分为重叠片段
- 05一次操作完成文件处理
适用场景
- 01为 RAG 准备 PDF 和办公文档
- 02为嵌入流程切分文本
- 03识别文件内容中的编程语言
MCP 相关
它向 MCP 客户端提供文件处理工具和支持类型资源。服务在本地运行,无需 API 密钥。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| content | string | 是 | 文件内容——二进制格式(PDF、DOCX)采用 Base64 编码,文本格式采用原始文本 |
| fileType | string | 是 | MIME 类型(例如 "application/pdf")或文件扩展名(例如 ".pdf"、"pdf"、".ts") |
详细介绍
@opafex/mcp-file-processor
用于通用文本提取、关键词提取、语言检测和文本分块的 MCP 服务,专为 RAG 工作流设计。
支持 PDF、DOCX、CSV、JSON、Markdown、HTML 和代码文件。零平台依赖。
安装
npm install @opafex/mcp-file-processor
需要 Node.js 20+。
快速开始
添加到 Claude Code / Claude Desktop
{
"mcpServers": {
"file-processor": {
"command": "npx",
"args": ["@opafex/mcp-file-processor"]
}
}
}
无需 API 密钥——所有操作都在本地运行。
工具
extract_text
从文件中提取文本内容。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
content | 字符串 | 是 | 文件内容——二进制格式(PDF、DOCX)使用 base64,文本格式使用原始文本 |
fileType | 字符串 | 是 | MIME 类型(例如 "application/pdf")或扩展名(例如 ".pdf"、"pdf") |
示例响应
{
"success": true,
"text": "Extracted text content here...",
"wordCount": 142,
"pageCount": 3,
"processingTimeMs": 45
}
extract_keywords
从文本中提取并排序关键词。过滤停用词,按出现频率排序。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
text | 字符串 | 是 | 要从中提取关键词的文本 |
limit | 数字 | 否 | 返回的关键词数量上限(默认值:20) |
示例响应
{
"success": true,
"keywords": [
{ "word": "javascript", "frequency": 8 },
{ "word": "framework", "frequency": 4 },
{ "word": "react", "frequency": 3 }
],
"totalWords": 156
}
detect_language
检测内容属于代码、自然语言还是混合内容。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
text | 字符串 | 是 | 要分析的文本 |
fileName | 字符串 | 否 | 用于基于扩展名进行检测的文件名(例如 "app.ts") |
示例响应
{
"success": true,
"contentType": "code",
"programmingLanguage": "typescript"
}
chunk_text
将文本拆分为相互重叠的分块,用于 RAG/嵌入工作流。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
text | 字符串 | 是 | 要分块的文本 |
chunkSize | 数字 | 否 | 分块的目标字符数(默认值:1000) |
overlap | 数字 | 否 | 分块之间重叠的字符数(默认值:200) |
示例响应
{
"success": true,
"chunks": [
{ "index": 0, "text": "...", "startOffset": 0, "endOffset": 1000, "wordCount": 167 },
{ "index": 1, "text": "...", "startOffset": 800, "endOffset": 1800, "wordCount": 172 }
],
"totalChunks": 5,
"totalCharacters": 4200
}
process_file
一站式处理:提取文本、检测内容类型、提取关键词并进行分块。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
content | 字符串 | 是 | 文件内容(base64 或原始文本) |
fileType | 字符串 | 是 | MIME 类型或文件扩展名 |
chunkSize | 数字 | 否 | 分块大小(字符数,默认值:1000) |
chunkOverlap | 数字 | 否 | 重叠大小(字符数,默认值:200) |
keywordLimit | 数字 | 否 | 关键词数量上限(默认值:20) |
server_info(内置)
返回服务元数据、已注册工具和资源。
资源
| 资源 | 描述 |
|---|---|
file-processor://supported-types | 列出所有支持的 MIME 类型和文件扩展名 |
支持的格式
| 格式 | 扩展名 | 输入 |
|---|---|---|
.pdf | base64 | |
| Word | .docx、.doc | base64 |
| 纯文本 | .txt | 原始文本 |
| Markdown | .md | 原始文本 |
| CSV | .csv | 原始文本 |
| JSON | .json | 原始文本 |
| HTML | .html | 原始文本 |
| XML | .xml | 原始文本 |
| JavaScript | .js、.jsx、.mjs | 原始文本 |
| TypeScript | .ts、.tsx | 原始文本 |
| Python | .py | 原始文本 |
| Java | .java | 原始文本 |
| Go | .go | 原始文本 |
| Rust | .rs | 原始文本 |
| C/C++ | .c、.cpp、.h | 原始文本 |
开发
npm run build # Compile TypeScript
npm run dev # Run with tsx
npm test # Run tests
npm start # Run compiled server
库用法
import { FileProcessorService } from '@opafex/mcp-file-processor/service';
const service = new FileProcessorService();
const result = await service.processFile(
'Hello world, this is a document.',
'.txt',
500, // chunk size
100 // overlap
);
贡献
发现错误或有功能建议?提交 issue。
许可证
MIT — 请参阅 LICENSE。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。