README
🚀 LangExtract MCP 服务器
LangExtract MCP 服务器是一个基于 Google langextract 库的 FastMCP 服务器。它允许像 Claude Code 这样的 AI 助手,通过 MCP 接口利用大语言模型从非结构化文本中提取结构化信息。
🚀 快速开始
概述
LangExtract 是一个 Python 库,它利用大语言模型从文本文档中提取结构化信息,同时保持精确的来源定位。这个 MCP 服务器通过模型上下文协议(Model Context Protocol)将 langextract 的功能暴露出来。服务器具备智能缓存、持久连接和服务器端凭证管理等特性,能够在像 Claude Code 这样的长期运行环境中提供最佳性能。
针对 Claude Code 的快速设置
前提条件
- 已安装并配置好 Claude Code
- 拥有 Google Gemini API 密钥(在此获取)
- Python 3.10 或更高版本
安装
使用内置的 MCP 管理功能直接在 Claude Code 中安装:
claude mcp add langextract-mcp -e LANGEXTRACT_API_KEY=your-gemini-api-key -- uv run --with fastmcp fastmcp run src/langextract_mcp/server.py
服务器将自动启动并与 Claude Code 集成,无需额外配置。
验证
安装完成后,在 Claude Code 中输入以下命令验证集成情况:
/mcp
你应该会看到表明服务器正在运行的输出,并且可以进入服务器查看其工具内容。
✨ 主要特性
服务器提供了以下用于文本提取工作流的工具:
核心提取工具
extract_from_text- 从提供的文本中提取结构化信息extract_from_url- 从网页内容中提取信息save_extraction_results- 将提取结果保存为 JSONL 格式generate_visualization- 创建交互式 HTML 可视化
更多信息可查看 src/langextract_mcp/resources 下客户端可用的资源。
💻 使用示例
基础文本提取
使用自然语言要求 Claude Code 提取信息:
Extract medication information from this text: "Patient prescribed 500mg amoxicillin twice daily for infection"
Use these examples to guide the extraction:
- Text: "Take 250mg ibuprofen every 4 hours"
- Expected: medication=ibuprofen, dosage=250mg, frequency=every 4 hours
高级配置
对于复杂的提取任务,指定配置参数:
Extract character emotions from Shakespeare using:
- Model: gemini-2.5-pro for better literary analysis
- Multiple passes: 3 for comprehensive extraction
- Temperature: 0.2 for consistent results
URL 处理
直接从网页内容中提取信息:
Extract key findings from this research paper: https://arxiv.org/abs/example
Focus on methodology, results, and conclusions
🔧 技术细节
支持的模型
此服务器目前仅支持 Google Gemini 模型,针对具有高级模式约束的可靠结构化提取进行了优化:
gemini-2.5-flash- 推荐默认值 - 在速度、成本和质量之间实现了最佳平衡gemini-2.5-pro- 最适合需要最高精度的复杂推理和分析任务
服务器使用持久连接、模式缓存和连接池,以确保与 Gemini 模型的最佳性能。未来版本可能会增加对其他提供商的支持。
配置参考
环境变量
在安装过程中或服务器环境中设置:
LANGEXTRACT_API_KEY=your-gemini-api-key # 必需
工具参数
通过工具参数配置提取行为:
{
"model_id": "gemini-2.5-flash", # 语言模型选择
"max_char_buffer": 1000, # 文本块大小
"temperature": 0.5, # 采样温度 (0.0 - 1.0)
"extraction_passes": 1, # 提取尝试次数
"max_workers": 10 # 并行处理线程数
}
输出格式
所有提取操作都返回一致的结构化数据:
{
"document_id": "doc_123",
"total_extractions": 5,
"extractions": [
{
"extraction_class": "medication",
"extraction_text": "amoxicillin",
"attributes": {"type": "antibiotic"},
"start_char": 25,
"end_char": 35
}
],
"metadata": {
"model_id": "gemini-2.5-flash",
"extraction_passes": 1,
"temperature": 0.5
}
}
📚 详细文档
使用场景
LangExtract MCP 服务器支持跨多个领域的广泛用例。在医疗保健和生命科学领域,它可以从临床笔记中提取药物、剂量和治疗方案,对放射学和病理学报告进行结构化处理,以及处理研究论文或临床试验数据。在法律和合规应用中,它能够提取合同条款、当事人和义务,分析监管文件、合规报告和判例法。在研究和学术界,该服务器可用于从论文中提取方法、研究结果和引用,分析调查回复和访谈记录,以及处理历史或档案材料。在商业智能方面,它有助于从客户反馈和评论中提取见解,分析新闻文章和市场报告,以及处理财务文件和收益报告。
支持与文档
主要资源:
- LangExtract 文档 - 核心库参考
- FastMCP 文档 - MCP 服务器框架
- 模型上下文协议 - 协议规范
微信扫一扫