Описание
模糊匹配两份表格中的公司名称和日期,输出已匹配、待复核和未匹配三种结果,便于数据对账。
README
把两份表格(Excel / CSV / 电子版 PDF)按 公司名称 + 日期 做模糊对碰,
AND 逻辑:名称相似度达标 且 日期在容差内才算匹配。结果分三档:
已匹配 / 待复核 / 未匹配,每条带名称相似度分与日期相差天数。
运行配置(MCP 客户端 / 魔搭自动解析用)
以 stdio 启动,依赖由 uvx 自动安装:
{
"mcpServers": {
"company-reconcile": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/uerdshds/company-data-mcp.git@main",
"company-reconcile-mcp"
]
}
}
}
工具:reconcile_company_tables(file_a, file_b, name_threshold=85, date_tolerance_days=0, ...)。
目录结构
| 文件 | 作用 |
|---|---|
matcher.py |
核心逻辑:读取 + 表头识别 + 公司名规范化 + rapidfuzz 匹配(与 MCP 解耦) |
server.py |
FastMCP 服务,StreamableHTTP 传输,端点 /message |
test_local.py |
本地直接测核心逻辑(不经 MCP) |
test_client.py |
MCP 客户端连服务测试(模拟 DEAP 调用) |
samples/ |
示例数据(含全角/简称/日期格式/容差等噪声) |
deap-config.json |
DEAP「JSON 导入」用的配置 |
本地运行与自测
# 1. 装依赖(已建好 .venv)
.venv/Scripts/python.exe -m pip install -r requirements.txt
# 2. 直接测核心逻辑
.venv/Scripts/python.exe test_local.py # 默认 容差0
.venv/Scripts/python.exe test_local.py --tol 1 # 日期容差1天
# 3. 启动 MCP 服务
.venv/Scripts/python.exe server.py # 监听 0.0.0.0:8000/message
# 4. 另开终端,用 MCP 客户端验证
.venv/Scripts/python.exe test_client.py
部署到魔搭(ModelScope) 托管
魔搭 MCP 托管底层是函数计算 FC,部署后给一个稳定 StreamableHTTP 端点:
https://mcp.api-inference.modelscope.net/<id>/mcp(本项目 id 已为 9a8d78b7a7f649)。
- 部署物:
Dockerfile+matcher.py+server.py+requirements.txt。 - 镜像已设
MCP_HTTP_PATH=/mcp、MCP_TRANSPORT=streamable-http、端口读PORT,与魔搭端点对齐。 - 若魔搭 FC 运行时要求 stdio 包装,把环境变量改成
MCP_TRANSPORT=stdio即可。
本地+ngrok 仍可用作联调:
MCP_HTTP_PATH=/message ngrok http 8000。
接入钉钉 DEAP
拿到公网端点:魔搭托管地址
https://mcp.api-inference.modelscope.net/9a8d78b7a7f649/mcp。注册自定义技能:企业技能中心 → 自定义技能 → 新建 MCP 插件
- 快速创建:类型选
StreamableHTTP,HTTP URL 填上面的魔搭/mcp地址。 - 或 JSON 导入:用
deap-config.json。 - 点「插件检测」,应能拉到工具
reconcile_company_tables。
- 快速创建:类型选
把技能加到智能体:智能体 → 技能 → 添加插件 → 选本技能。
配置智能体提示词,让模型在用户要"对碰/核对"两份表时调用本技能(见下)。
建议的智能体提示词片段
当用户提供两份文件并要求"对碰/核对/匹配"时,调用【公司名对碰】插件,
把两个文件地址传给 file_a / file_b;需要时设置 name_threshold(默认85)、
date_tolerance_days(默认0)。拿到 matched/to_review/unmatched 三档结果后,
用简洁中文汇总,并务必如实列出"待复核"条目,不得自行判定为匹配。
关键约束与说明
- 传输:StreamableHTTP(DEAP 不支持 Stdio)。服务路径默认
/mcp,可用环境变量MCP_HTTP_PATH改;传输用MCP_TRANSPORT切stdio。 - 文件入参:
file_a/file_b支持「可下载 URL(钉盘链接)」或本地路径。DEAP 场景下, 由智能体把用户上传文件的下载地址作为参数传入,本服务自行下载解析。 - 鉴权(可选):设
MCP_API_KEY=xxx后,请求需带 HeaderX-Api-Key: xxx(在 DEAP 技能的「请求头」里加同名 Header)。系统还会自动注入X-DingTalk-User-Id/X-DingTalk-User-Job-Number。 - PDF:仅支持电子版(文字可选);扫描件需先 OCR(项目里
../agent-mcp-workflow/OCR.py可参考)。
可调参数
| 参数 | 默认 | 含义 |
|---|---|---|
name_threshold |
85 | 公司名相似度阈值(0-100),越高越严 |
date_tolerance_days |
0 | 日期容差天数,0=必须同一天 |
strip_suffix |
false | 比对时剥离「有限公司」等组织形式后缀 |
name_col_* / date_col_* |
自动 | 手动指定列名(留空则按表头别名自动识别) |
Установка Company Reconcile
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/uerdshds/company-data-mcpFAQ
Company Reconcile MCP бесплатный?
Да, Company Reconcile MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Company Reconcile?
Нет, Company Reconcile работает без API-ключей и переменных окружения.
Company Reconcile — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Company Reconcile в Claude Desktop, Claude Code или Cursor?
Открой Company Reconcile на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Company Reconcile with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
