mcpField
S
Sifter - Turn a folder of documents into typed records you can query

Sifter - Turn a folder of documents into typed records you can query

本地服务
github.com/sifter-ai文件与存储546 周前更新

关于 Sifter - Turn a folder of documents into typed records you can query

Sifter 是一个开源文档智能引擎,可依据自然语言字段描述,从 PDF、扫描件、合同、发票等文档中提取结构化记录,并支持精确查询与聚合。它面向需要对大量同类文档进行统计的团队,区别于基于相似度检索的 RAG。

主要功能

  1. 01依据自然语言描述自动推断提取结构
  2. 02存储为带类型的结构化记录
  3. 03支持过滤、计数、求和等精确查询
  4. 04提供 MCP 服务,支持读写工具
  5. 05提供 Python 与 TypeScript SDK 及命令行

适用场景

  1. 01汇总一个季度所有发票的未付总额
  2. 02查找即将在 90 天内到期的合同
  3. 03按技能与经验筛选候选人简历

MCP 相关

该项目是一个 MCP 服务,通过 stdio 传输向 MCP 客户端提供读写工具,用于查询已提取的文档记录。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sifter": {
"command": "uvx",
"args": [
"sifter-mcp"
],
"env": {
"SIFTER_API_KEY": "<SIFTER_API_KEY>"
}
}
}
}
启动命令uvx sifter-mcp
需要配置的环境变量
SIFTER_API_KEY密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypisifter-mcp

工具

15

收录的工具列表 · 更新于 2 周前

参数类型必填说明
limitinteger否
offsetinteger否

详细介绍

Sifter

CI codecov PyPI npm Python Node License: MIT

你的文档是一座暗数据仓库。

开源文档智能引擎——由模式驱动的信息提取、自然语言查询、MCP 服务,以及 Python 和 TypeScript SDK。采用 MIT 许可证,可自托管。

Sifter 演示


为什么不选 RAG?

RAG 专为检索而构建——找出与此查询相似的文本块。但面对发票、合同或收据这类同质文档集合时,它就会失效:这些文档看起来都很相似,而问题需要的是汇总,而不是搜索。

将文档转换为结构化记录

Sifter 的做法是:一次性提取结构化字段(客户、日期、总额),将其存储为类型化记录,再通过实际筛选条件和聚合进行查询。答案准确且可复现——因为它来自数据库查询,而非相似性搜索。


快速开始

git clone https://github.com/sifter-ai/sifter
cd sifter/code
cp server/.env.example server/.env.local    # set SIFTER_DEFAULT_API_KEY (required)
docker compose up -d

打开 http://localhost:3000——创建一个 sift,上传文档并查询结果。


Python SDK

pip install sifter-ai
from sifter import Sifter

s = Sifter(api_key="sk-...")

sift = s.create_sift("Invoices", "client name, date, total amount")
sift.upload("./invoices/")
sift.wait()

for record in sift.records():
    print(record["extracted_data"])
# {"client": "Acme Corp", "date": "2024-01-15", "total_amount": 1500.0}

TypeScript SDK

npm install @sifter-ai/sdk
import { Sifter } from "@sifter-ai/sdk";

const client = new Sifter({ apiKey: "sk-..." });

const sift = await client.createSift("Invoices", "client, date, total amount");
await sift.upload("./invoices/");
await sift.wait();

const records = await sift.records();
console.log(records);

MCP 服务(Claude Desktop / Cursor / AI Agent)

{
  "mcpServers": {
    "sifter": {
      "command": "uvx",
      "args": ["sifter-mcp", "--base-url", "http://localhost:8000"],
      "env": { "SIFTER_API_KEY": "sk-dev" }
    }
  }
}

然后提问:

“上季度所有发票中未付款项的总额是多少?” “列出未来 90 天内到期的所有合同。” “哪些候选人会 Python,且拥有超过 5 年的经验?”

Sifter 会以结构化数据作答——提供准确的计数、总和和筛选后的行,而不是一大段文本。

想要远程 MCP URL,又不想运行本地服务?→ Sifter Cloud


仪表板

Sifter 内置仪表板——无需 Metabase、Grafana 或 SQL。

用自然语言描述你想查看的内容:

sift = client.sifts.get("invoices")
sift.create_dashboard("Show total invoiced and unpaid by vendor, monthly trend")

即可生成 KPI 卡片、分类汇总和时间序列,并在每次提取后自动更新。


包含的功能

  • 模式驱动的信息提取——用自然语言描述要提取的内容;系统会自动推断模式,并导出为 Pydantic / TypeScript 类型
  • 自然语言查询——用自然语言提问;Sifter 会生成可检查的 MongoDB 聚合管道
  • MCP 服务——stdio 传输方式,提供读取和写入工具,无需编写自定义集成代码
  • REST API + SDK——完整的 OpenAPI 规范,以及适用于 Python 和 TypeScript 的类型化客户端
  • Webhooks——每次提取事件都会触发使用 HMAC 签名的 HTTP 回调
  • 规范驱动的仪表板——简短的自然语言规范 → 自动生成看板(KPI、分类汇总、表格、时间序列)
  • 命令行工具——sifter extract、sifter records、sifter sifts,用于终端工作流和 CI
  • 可自托管——使用 Docker Compose,接入你自己的 MongoDB 和大模型 API 密钥

不想运行基础设施?

Sifter Cloud 是托管版本——无需 MongoDB 或运维,提供远程 MCP 端点、Google Drive 和电子邮件接入。提供免费套餐。


文档

完整文档请访问 docs.sifter.run——包含快速开始指南、SDK 参考、MCP 指南、实用示例和自托管说明。


许可证

MIT——参见 LICENSE。

由 Bruno Fortunato 创建。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。