Binggio

com.binggio由 binggio.com 发布v0.1.9更新于 Nov 7, 2026

Governed answers from your data: approved meanings only, refusals instead of guesses.

概览

AI 生成的概览

Binggio 让你用自然语言查询本地的 CSV、Excel 和数据库数据,只依据人工批准的含义作答,无法回答时说明原因。

可以做什么
  • 列出已批准的表、列、关联、业务术语和概念,以及计划格式
  • 校验并执行查询计划,返回带来源、术语和截止日期的数据行,或给出拒绝理由
  • 直接理解自然语言问题(需要模型密钥)
  • 报告哪些内容已批准、待审核或已过期
  • 为编码值提出含义建议,由人在应用中批准
适用场景
适合希望助手查询业务数据但不能猜测定义、臆造关联或编写 SQL 的场景,例如在已审核的银行或运营数据上回答问题,要求每个答案都有出处,宁可拒绝也不近似作答。
运行要求
以本地进程方式运行(PyPI 包 binggio,可用 uvx 或 python -m binggio),仅限桌面。需要一个包含 binggio.json 的 Binggio 工作区文件夹,通过 BINGGIO_WORKSPACE 环境变量或 -w 参数指定。ask 工具需要模型密钥(BINGGIO_LLM_API_KEY 或 OPENAI_API_KEY),其他工具无需密钥。桌面安装包需 Python 3.10 及以上。
安装前请注意
设计为只读:不接受 SQL,也不会写回数据源,但会在工作区保留一份本地数据副本。批准和定义必须由人在应用中完成,助手只能提出术语建议。在应用中输入的模型密钥和数据库密码仅保存在内存中。目前为 0.1 早期版本,部分问题类型会被拒绝。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Binggio,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[binggio: Enterprise Context Intelligence]

Binggio™

Governed answers from your data. Binggio answers questions only from meanings a person has approved: which column is a key, how tables link, what "delinquent" means. When it cannot answer precisely it says why, instead of guessing.

  • Works on your machine, with your files and databases. Nothing is written back to any source.
  • Every answer shows the terms, filters, links and sources it used.
  • Approvals are recorded with who made them and why, and stop being used the moment the data they were made on changes.

See it in action

https://github.com/user-attachments/assets/9e9f4222-eaf0-4bb0-8a2d-7a162eb2bc14

A two-minute tour: the sample bank, questions with provenance, review and approval, the relationship map, adding your own CSV files, and the data story.

Install

bash
pip install binggio                 # CSV and SQLitepip install binggio[excel]          # + Excel workbookspip install binggio[sqlserver]      # + SQL Server (no ODBC driver needed)pip install binggio[oracle]         # + Oracle (no Oracle client needed)pip install binggio[all]            # everything

If your terminal says binggio is not recognised (common on Windows when pip installs into the user folder), use python -m binggio instead, for example python -m binggio ui, or add the Scripts folder pip mentions to your PATH.

Asking questions in plain language needs a model key: set BINGGIO_LLM_API_KEY (or OPENAI_API_KEY). Everything else (profiling, discovery, review, running saved plans) works without one.

The app

bash
binggio ui

Opens Binggio in your browser: create the sample bank or your own workspace, add CSV files, Excel workbooks or databases (with a folder picker and a "test connection" step), walk through onboarding, approve, reject, revoke or reopen column roles, relationships, concepts and business terms, see the relationship map, and ask questions with the provenance of every answer.

Built for data stewards:

  • Review with the evidence in front of you. Click any column or relationship to see its profile, example values, how many keys matched, what depends on it and its full history, then decide with a rationale. Relationships can carry an as-of rule, a business meaning, or a corrected join column.
  • Business definitions. Give a business name one exact calculation ("Outstanding exposure = total of outstanding_balance"). Binggio suggests some from approved measures; a person approves.
  • Issues from refused questions. Every question Binggio refuses is kept with the reason, so you can see which meanings people are missing, approve them, and close the issue.
  • Automatic review, off by default. Approves only items that pass a strict technical check, shows a preview first, records every approval, and can roll back a whole run.
  • How do two tables connect? A path finder on the relationship map shows the chains of links between any two tables, and whether questions can use them yet.
  • Shortcuts: a "strong evidence only" filter for bulk approval, and a CSV export of the whole audit trail.
  • Add a relationship yourself. In Review › Relationships, or by drawing an arrow between two tables on the relationship map. Binggio checks it on every row of both tables (how many keys match, whether the parent key is unique) before it is saved, and a person approves it.
  • See where discovery stopped. For every table and key-like column: the closest match, why it was not proposed (too few values matched, the key repeats, the names differ), near misses, and keys that look the same but are written differently (CUST-000123 and C0000123).
  • Data fixes, without touching the source. Trim spaces, read $1,234.50 as a number, fill missing values, pad or strip key prefixes, read dates in a stated form, combine columns into a new key, keep one row per key. Each fix is recorded with who added it and why, and is applied again whenever the data is refreshed. Approvals on a fixed table must be re-confirmed.
  • Key tools. Check a column, or several together, on every row (not a sample): how many rows repeat or are empty, with examples. Make it the table's key only when it is unique.
  • Masters, for data where no column is unique. Enterprise extracts often repeat every record once per reporting month and per version, so no column can be a key. Binggio proposes masters (one row per employee, book, desk ...) from the identifiers it finds on every row, and a calendar; a person approves which columns belong. Approved masters are built as tables, rebuilt on every refresh, sit at the centre of the relationship map, and every member column links to them many-to-one. Gaps are shown (ids used in a table but missing from the system of record), never hidden.
  • Recommended data fixes. From the profiles, Binggio recommends fixes (stray spaces, case variants, numbers written as text, placeholders such as "-", dates written as text, keys written differently from their master), each with its evidence and a preview. A person approves them.
  • Snapshot tables. Once a person marks a table as one copy per reporting period, a total or count across periods is refused: an answer needs one period or a result per period.
  • Profiles on every row, read the way enterprise names are written. Distinct and empty counts come from all rows. Names written as one word are read by their ending: a version, a level, a code or a flag is never a measure; an email is never a key; references stored as domain / id / version, people stored as blocks of columns, code-and-name pairs and flattened hierarchies are shown as groups; columns with no information are kept out of review.

It runs on this computer only (127.0.0.1), needs no internet, and adds no dependencies. The page carries a random session token so other web sites cannot use it. Database passwords and model keys typed into it are kept in memory only, never written to disk. The sample bank includes ten prepared questions that run without a model key. Options: --port 8800, --no-browser. Tables are prepared and profiled at the same time, as many as the computer has processor cores; set BINGGIO_WORKERS=4 to use fewer (or 1 for one at a time).

Use Binggio from AI agents (MCP)

bash
binggio -w C:\banks\my-bank mcp

Binggio speaks the Model Context Protocol, so Claude Desktop, Claude Code, Cursor, VS Code and agent frameworks can use it as a tool. The agent turns the user's question into a plan using Binggio's approved vocabulary; Binggio validates it and answers from approved meanings only, or refuses with the reason. Agents can propose a meaning for a coded value, but only a person can approve it, in the app. No SQL is accepted, nothing is written to your sources, and it runs on this computer.

ToolWhat it does
describe_approvedThe approved tables, columns, links, business terms and concepts, and the plan format
run_planValidates and runs a plan; rows with sources, terms and as-of date, or a refusal with the reason
askLets Binggio interpret the question itself (needs a model key)
statusWhat is approved, waiting for review, or stale
propose_termSuggests what a coded value means; a person approves it in the app

Connect your AI client in one step

bash
binggio connect claude-desktop -w C:\banks\my-bank      # or: cursor, vscode, claude-code

This adds Binggio to the client's settings and keeps everything already there (a dated backup is saved first; if the file is not valid JSON, nothing is changed). Add --print to see the settings without changing anything. Restart the client afterwards.

Other ways in:

  • Claude Desktop bundle: download binggio-<version>.mcpb from the releases page and open it; Claude Desktop asks for your workspace folder. Needs Python 3.10 or later installed.
  • Without installing anything first (with uv): command uvx, arguments binggio mcp, and the environment variable BINGGIO_WORKSPACE set to your workspace.
  • By hand: {"mcpServers": {"binggio": {"command": "python", "args": ["-m", "binggio", "-w", "C:\\banks\\my-bank", "mcp"]}}}

Every command also reads the workspace from BINGGIO_WORKSPACE when -w is not given.

Two-minute demo (command line)

bash
binggio demo my-bank                 # a synthetic bank, already reviewed and approvedcd my-bankbinggio statusbinggio ask "Which customers in the PREMIUM segment have a delinquent loan?"binggio ask                          # a conversation: follow-ups like "which of these ..." work

Your own data

bash
binggio init my-data && cd my-data
binggio add-csv   "Core export"   C:\exports\core          # a folder of .csv filesbinggio add-excel "Branch report" C:\reports\branches.xlsx # each sheet becomes a tablebinggio add-db    "Core banking"  sqlserver --host dbserver --database core --user reader --schema dbobinggio add-db    "Loans"         oracle    --host orahost  --database ORCLPDB1 --user reader --schema LOANS
binggio profile                      # what each column looks likebinggio discover                     # which tables link to whichbinggio impact                       # how the new source fits what you already havebinggio onboard --by "Your Name"     # review: column roles, links, concepts, words for codesbinggio ask

onboard walks through four steps and records every decision under your name:

  1. Column roles: keys, measures, dates, statuses. Suggestions are shown; you approve per table.
  2. Links: which column points to which table, with the evidence (how many values match).
  3. Concepts: names for the things in your data ("collection case", "collateral").
  4. Words for codes: kept = N means "broken promise"; status = W means "written off". Questions can use those words only after you define them.

binggio onboard --accept-suggestions --by "Your Name" accepts all suggestions at once (still recorded as your decision). It never approves a duplicate copy of an existing table, and leaves weak alternative links for you to look at.

What Binggio will not do

  • Guess a meaning. A word with no approved meaning, or two approved meanings, is refused with the choices.
  • Answer from part of the data. Answers read whole tables. Large tables are prepared once (a local copy in the workspace's data/prepared and data/cache folders, about the size of the data, safe to delete) so later questions do not re-read the files. Longer result lists show the first 200 rows and say how many there are.
  • Change your data. Databases are read with SELECT statements only; the copy lives in the workspace, and binggio refresh <connection> re-reads it in place.

Not yet supported, and refused with a clear message: ratios and shares, time windows relative to today ("last 30 days"), durations, change over time, conditions on counts ("more than one complaint").

Python

python
import binggiows = binggio.Workspace.create("my-data")ws.add_excel("Branch report", r"C:\reports\branches.xlsx")ws.profile(); ws.discover()print(ws.status())answer = ws.ask("What is the total balance of OPEN loans by branch?")

Checking it on your own database

tools/check_database.py connects to a real SQL Server, Oracle or PostgreSQL database. --list is read-only. --cross-source loads a small test bank into a scratch schema, checks that it gives the same answers as the CSV copy, and removes it again.

Status

0.1, early.

Licence

Binggio is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file for details.

In short: use it freely, inside your organisation too. If you modify Binggio and let other people use the modified version, including over a network, you must make your modified source code available to them under the same licence.

Trademark. Binggio™ and the Binggio logo are trademarks of Ashish Kumar (applications filed in India). The AGPL covers the code, not the name: forks are welcome under a different name. See TRADEMARKS.md.

Contact. Feedback, questions, commercial licences, implementation and partnerships: [email protected]. Security issues: see SECURITY.md.

Commercial licence. If the AGPL does not fit your organisation (for example, you want to embed Binggio in a closed product or service), a commercial licence is available: see COMMERCIAL.md.

来源:README.md,提交 afaff9c

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:服务器未能启动。

版本历史

3
  1. v0.1.9最新Nov 7, 2026
  2. v0.1.3Nov 3, 2026
  3. v0.1.2Oct 30, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分