Skip to main content
Glama
MihasikPro

pbu-fsbu-mcp

by MihasikPro

pbu-fsbu-mcp

MCP-服务器,带有俄罗斯会计准则(ПБУ и ФСБУ)的文本。

它做什么

  • 返回标准条款的准确文本,附有财政部命令的详细信息(реквизиты)和版本号。

  • 根据自然语言查询搜索条款。

  • 考虑日期:答案总是“按日期”给出,该日期的标准状态明确说明。

  • 显示具体条款由哪些БП 3.0对象实现:账户、寄存器、文档、会计政策设置。

  • 解决逆问题:根据配置对象找到其背后的规范。

  • 提供与条款主题相关的ITS文章标识符。

Related MCP server: onec-meta-mcp

它不做什么

  • 不提供超出标准准确文本范围的咨询或解释。

  • 工作时不访问网络。

  • 对1С:Бухгалтерии对象的映射——目前是草稿:见“语料库当前状态”。

语料库当前状态

语料库涵盖财政部登记册中的所有29项会计准则 (现行和已失效的ПБУ和ФСБУ)——29项标准,每项一个版本, 共1768个条款(含子条款)。

可用工具:list_standards, get_standard, get_clause, search_clauses, get_1c_mapping, find_by_1c_object, get_its_references。 资源:pbu-fsbu://registry。

对1С:Бухгалтерия 3.0的映射和ITS链接目前仅填充了 ФСБУ 6/2020,且这是草稿:每条记录标记为verified: false——它 仅由代码验证(对象在目录中,confidence不低于60),但未经 人类专家验证。对于其他标准,get_1c_mapping和 get_its_references返回空列表并附明确消息,而不是 沉默。添加新记录及其验证的规则见 CONTRIBUTING.md。

来源

条款文本的主要来源是财政部网站上标准自己的页面 (https://minfin.gov.ru/ru/document?id_4=NNNN,链接在标准登记册中): 那里的文本以普通服务器HTML形式提供,没有扫描件,也没有OCR,甚至对 早于publication.pravo.gov.ru档案的标准也可用(该档案大约从2011年11月开始)。

例外——ФСБУ 27/2021:其在财政部网站上的页面完全没有文本, 只有带PDF查看器的<iframe>。对于这29项标准中唯一的一项,文本 是通过识别publication.pravo.gov.ru上官方命令扫描件获得的 (Tesseract 5.x,来自tessdata_best的rus模型)。OCR是文档化的备用 路径,以防未来标准在财政部页面上也没有文本, 而不是获取语料库文本的主要方式。

在所有情况下,文本在从data/drafts/移动到data/sources/standards/之前, 都会逐行与官方文件进行人工核对。

语料库中不包含的内容

标准本身的附录(不是批准命令的附录)——报告表格样本、 作为独立附录并带有自己编号的详细数值示例——不包含在语料库中。 形式上它们是文件的一部分,但它们自己的编号(“1.”、“2.”……)重新开始, 与标准本身的条款冲突,因此etl.minfin_document._one_copy_of_the_standard 从附录标题开始到文档末尾截断文本。与条款内工作示例的区别 (参见ПБУ 18/02 пп. 14–15,其中数值示例是条款本身文本的一部分,而不是独立附录) 仅在于源标记:真正的附录有自己的标题,如“Приложение к Положению по бухгалтерскому учету «…»”。

已截断附录的标准(测试test_html_sourced_standard_reproduces_byte_for_byte 从相同的HTML快照重新生成语料库,并检查截断是否未偏移):

标准

已截断

ПБУ 8/2010

12 010字符

ПБУ 24/2011

4 062字符

ПБУ 16/02

3 814字符

ПБУ 19/02

3 208字符

ПБУ 7/98

2 768字符

ПБУ 18/02

2 372字符

ПБУ 3/2006

1 508字符

规范性法律文件不是版权对象(俄罗斯联邦民法典第1259条)。 代码以MIT许可证分发,数据条件见data/LICENSE。

本地运行

在将服务器部署到网络服务器之前,可以直接在工作站上试用。 有三种选项——根据您的客户端需要的传输方式。

stdio——用于Claude Desktop

uv run pbu-fsbu-mcp

进程通过stdio与MCP通信,并通过Ctrl+C终止。语料库必须事先构建 (见下文“开发”)。

Claude Desktop从Anthropic云端拨号,无法访问 http://localhost,也无法访问局域网地址——对它来说,本地唯一的路径 是stdio。在claude_desktop_config.json中配置本地检出 (将路径替换为您自己的):

{
  "mcpServers": {
    "pbu-fsbu": {
      "command": "uv",
      "args": ["--directory", "C:\\path\\to\\pbu-fsbu-mcp", "run", "pbu-fsbu-mcp"]
    }
  }
}

HTTP——用于Codex CLI和Claude Code

uv run pbu-fsbu-mcp --transport http --port 18010

检查:curl http://127.0.0.1:18010/healthz → {"status":"ok"}。MCP端点 — http://127.0.0.1:18010/mcp。

Codex CLI(~/.codex/config.toml):

[mcp_servers.pbu_fsbu]
url = "http://127.0.0.1:18010/mcp"

Claude Code:

claude mcp add --transport http pbu-fsbu http://127.0.0.1:18010/mcp

容器

docker compose -f deploy/compose.local.yml up --build

从仓库源代码构建镜像(不拉取已发布的),并且仅将 端口发布到127.0.0.1:18010——容器对局域网不可见,只能从 同一台机器访问。客户端连接方式与上面HTTP部分相同。

语料库在docker build阶段构建一次(参见Dockerfile), corpus_meta.built_at在该时刻固定——而不是在每次容器启动时。 关于过时语料库的警告(“语料库更新”部分) 从镜像构建日期起计算90天,而不是从上次重启日期起。 更新built_at的唯一方法是重新构建并 重新部署镜像;重启(docker compose restart / 不带--build的up) 不会更新语料库。

安装

Codex CLI

~/.codex/config.toml:

[mcp_servers.pbu_fsbu]
url = "http://192.168.100.172:18010/mcp"

Claude Code

claude mcp add --transport http pbu-fsbu http://192.168.100.172:18010/mcp

Claude Desktop

Claude Desktop无法连接到局域网地址:应用程序拒绝 http://方案,而custom connector连接是从Anthropic云端建立的, 无法访问192.168.x.x。Codex CLI和Claude Code是本地进程, 直接访问LAN地址,因此它们只需要上面的配置。

对于Claude Desktop,请在本地以stdio模式运行服务器——语料库自包含, 不需要网络。配置与上面“stdio——用于Claude Desktop”部分相同 (uv --directory <путь к чекауту> run pbu-fsbu-mcp):data/build/不会进入 仓库,因此从git地址安装(uvx --from git+...)不会构建 语料库,build_server将拒绝启动——需要的是本地检出 且已构建好数据库。

语料库更新

语料库从data/sources/standards/中的YAML构建。当财政部发布新命令时 (新标准或对现行标准的修订),更新顺序如下:

  1. uv run --group etl python -m etl.watch --live — 将财政部网站上的标准登记册 与语料库进行比较,并显示差异(新增/缺失的标准、 更改的命令详细信息、适用日期)。

  2. uv run --group etl python -m etl.draft_yaml --live — 提取条款文本 (首先从财政部网站上的标准HTML页面,如果没有,则通过OCR 识别publication.pravo.gov.ru上的扫描件)并将草稿放入data/drafts/。

  3. 逐行根据官方命令校对条款文本,将文件移动到 data/sources/standards/,删除# ЧЕРНОВИК横幅。

  4. uv run python -m etl.build_db && uv run python -m etl.validate。

  5. uv run --group etl pytest。

每周一次,etl-watch工作流执行相同的登记册与语料库比较,如果 有差异,则打开带有报告的pull request。没有自动合并:新命令 由人工阅读和校对。

开发

uv sync --all-groups
uv run python -m etl.build_db
uv run python -m etl.validate
uv run pytest

真相来源是data/sources/中的YAML。文件data/build/pbu_fsbu.db由它们构建, 并且不提交到仓库。

OCR测试和Tesseract

uv run --group etl pytest包括识别测试(tests/test_ocr_text.py), 这些测试需要本地安装的Tesseract 5.x和rus模型。如果找不到二进制文件 或模型,这些测试会自动跳过(SKIPPED)——其余 测试套件不受影响。

要让OCR测试实际执行,请安装带有rus语言包的Tesseract 5.x, 如果它不在标准位置,请通过环境变量指定路径:

  • TESSERACT_CMD — tesseract可执行文件的路径(如果二进制文件不在PATH中,则需要)。

  • TESSDATA_PREFIX — 模型(*.traineddata)所在目录的路径,如果它非标准。

例如,在Windows上:

$env:TESSERACT_CMD = "C:\Program Files\Tesseract-OCR\tesseract.exe"
$env:TESSDATA_PREFIX = "C:\Users\<user>\.tessdata"
uv run --group etl pytest

在CI(Ubuntu)中,Tesseract和rus模型通过apt-get安装——参见.github/workflows/ci.yml。

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    MCP server for 1C:Enterprise ERP with 35 tools: metadata inspection, document CRUD, register queries, and BSP integration. First MCP server for Russian ERP systems (300,000+ organizations). JSON-RPC 2.0 compliant BSL implementation.
    51
    40
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server for searching and analyzing 1C enterprise metadata and BSL code using a SQLite backend. Enables querying configuration structure, code routines, and performing compliance checks via natural language.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for RAG-based search over 1C Enterprise configuration documentation, enabling natural language queries to find objects like справочники, документы, and отчеты.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP сервер с встроенным AI агентом для поиска по графу метаданных и кода конфигураций 1С
    105
    AGPL 3.0