项目简介
Keyphrases-MCP是一个基于Model Context Protocol (MCP) 实现的服务器,旨在为大型语言模型(LLM)客户端提供高效、准确的关键词提取服务。它利用KeyBERT框架和BERT模型,从给定文本中识别重要的短语,帮助LLM更好地理解文档主题、生成标签或辅助其他文本处理任务。服务器支持安全的文件访问控制,确保只有提取出的关键词暴露给LLM客户端。
主要功能点
- 智能关键词提取: 运用KeyBERT框架,结合spaCy自然语言处理和BERT嵌入,从文本中提取最相关、最具代表性的关键词。
- 停用词过滤: 允许用户指定停用词列表,在提取过程中忽略这些词,提高关键词的质量。
- 文件安全访问: 仅允许访问预设的指定目录下的文件,并只向客户端返回提取出的关键词,不泄露原始文件内容,保障数据安全。
- 多种传输协议: 支持标准输入/输出 (STDIO) 和流式HTTP (SSE/WebSocket) 两种传输协议与MCP客户端通信。
- 模型自动管理: 在首次启动时自动下载和初始化所需的嵌入模型和spaCy分词模型。
安装步骤
- 克隆仓库:
git clone https://github.com/IvanRublev/keyphrases-mcp.git cd keyphrases-mcp - 创建并激活虚拟环境 (推荐):
python -m venv venv source venv/bin/activate # macOS/Linux # venv\Scripts\activate # Windows - 安装依赖:
pip install uv # 如果没有安装 uv 包管理器 uv sync # 使用 uv 安装所有依赖 - 下载模型 (可选,首次启动服务器时会自动下载):
python src/main.py --download-models
服务器配置
MCP客户端需要以下配置信息来连接和启动Keyphrases-MCP服务器:
{ "name": "Keyphrases MCP Server", "command": "uv", "args": [ "--directory", "/path/to/keyphrases-mcp/src", "run", "main.py", "--allowed-dir", "/path/to/your/documents" // 如果希望通过 HTTP 协议连接,则增加参数 "--http" // "--http" ] }
参数说明:
- 'name': 服务器的名称,通常为"Keyphrases MCP Server"。
- 'command': 启动MCP服务器的可执行文件或命令,这里推荐使用 'uv' 命令以确保环境隔离。
- 'args': 传递给 'command' 的参数列表。
- '--directory /path/to/keyphrases-mcp/src': 指定服务器主程序 'main.py' 所在的目录。请务必将 '/path/to/keyphrases-mcp/src' 替换为你的Keyphrases-MCP项目克隆后 'src' 目录的绝对路径。
- 'run main.py': 运行 'src' 目录下的 'main.py' 文件,这是服务器的入口。
- '--allowed-dir /path/to/your/documents': 必需。指定一个或多个允许服务器读取文本文件的目录的绝对路径。出于安全考虑,服务器只会处理这些目录下的文件。如果需要允许访问多个目录,可以重复指定 '--allowed-dir' 参数,例如:'--allowed-dir /path/to/docs1 --allowed-dir /path/to/docs2'。
- '--http': (可选) 如果你的MCP客户端支持HTTP/WebSocket传输,并且你希望服务器以HTTP模式运行,请添加此参数。默认情况下,服务器使用STDIO模式。
基本使用方法
一旦Keyphrases-MCP服务器配置并启动,你的LLM客户端就可以通过调用其提供的 'extract_keyphrases' 工具来提取关键词。
工具名称: 'extract_keyphrases'
工具参数:
- 'file_path' (字符串, 必填):要提取关键词的文本文件的绝对路径。此路径必须位于服务器配置的 '--allowed-dir' 之一中。
- 'keyphrases_count' (整数, 必填):希望提取的关键词数量(范围1到200)。
- 'stop_words' (字符串列表, 选填):一个字符串列表,包含在提取过程中应忽略的词语。每个词语不能包含空格。
示例(LLM客户端通过自然语言提示调用此工具):
- "从 '/path/to/my/documents/report.txt' 文件中提取5个关键词。"
- "请从文件 '/path/to/notes/meeting.md' 中提取10个关键词,并忽略 'former', 'due', 'amount' 这些词。"
信息
分类
AI与计算