← All posts

GAEB in your AI assistant, with the pyGAEB MCP server

pyGAEB now ships a Model Context Protocol server — ask ChatGPT, Gemini, Claude, or Cursor about a GAEB tender file in plain language, locally, no upload.

Last time we showed how to read GAEB files in Python with pyGAEB. That is the right tool when you are writing code. But plenty of the people who deal with tenders are not writing code — they are estimators and project leads who now have an AI assistant open all day. pyGAEB 1.15 gives them a way in: a Model Context Protocol (MCP) server. Drop a .X83 into ChatGPT, Gemini, Claude, or Cursor and ask what it costs, in plain language.

What MCP is, in one paragraph

MCP is an open standard for letting AI assistants call tools. It is not an Anthropic thing — it was handed to the Linux Foundation's Agentic AI Foundation and is backed by OpenAI, Google, and Microsoft as well. The important consequence: pyGAEB's server never talks to a model itself. It exposes tools; whichever assistant you already use does the talking. So there is no API key to manage, no provider lock-in, and — because it runs as a local process — no upload.

Install and connect

pip install pyGAEB[mcp]

Then point your assistant at it. For Claude:

claude mcp add pygaeb -- pygaeb-mcp --root ~/tenders

Or the equivalent config block that any MCP client understands:

{
  "mcpServers": {
    "pygaeb": {
      "command": "pygaeb-mcp",
      "args": ["--root", "/Users/you/tenders"]
    }
  }
}

--root is the one thing worth setting deliberately: it is the only directory the server may read from. Requires Python 3.10 or newer.

What you can actually ask

Once connected, the questions are the ones an estimator actually has:

  • "What's the grand total of tender.X83, and which five items cost the most?"
  • "Are there any alternative positions I should be aware of?"
  • "Search the specification for asbestos and show me where it's mentioned."
  • "Compare last week's version with this one — what changed, and what's the financial impact?"

Behind the scenes the assistant calls small, typed tools — open the file, list the structure, pull the expensive items, read one item's specification, diff two versions, rank bids. You do not see any of that; you see the answer.

The hard part: not drowning the assistant

A real tender is megabytes. Thousands of positions, specification text that runs to tens of thousands of characters per item, embedded attachments. The naive approach — one tool that hands the whole document to the model — is useless: it blows the context window on the first call and costs a fortune.

So the pyGAEB server is deliberately query-oriented, not dump-oriented. It never returns attachment bytes or a whole-document dump. Long text is previewed and paged on request. Every list is paginated and tells the model how much it did not see. The result: "which five items drive the cost on this 5,000-item tender?" comes back in about two kilobytes, not two megabytes. That discipline is the whole reason it is usable on files this size.

It is also correct where correctness is easy to get wrong. Totals follow VOB/A — alternative and eventual positions carry prices but are not counted toward the contract value, exactly as pyGAEB's own grand_total does. An assistant reporting "the total" will not quietly include positions the client never has to pay for.

An honest word on privacy

The file never leaves your machine — there is no upload, and nothing is sent to DatumOS. But be clear-eyed about the rest: the small, bounded answers the tool returns do travel to whichever AI provider your assistant uses, because that provider is the one reading them. The query-oriented design shrinks that from megabytes to kilobytes, which is a real difference, but it is not zero. If you need processing that is fully local, use the pyGAEB library directly, or point its classification layer at a local model. The MCP server is read-only by default; writing files back is off unless you explicitly turn it on.

Where this fits

The MCP server is pyGAEB meeting people where they already work. It is the same open-source parsing engine as the library — MIT-licensed, on GitHub — now reachable from any AI assistant without writing a line of Python. When a team needs more than ad-hoc questions — shared classification, pricing, a review workflow, and their data staying in one place — that is what the DatumOS platform is built for.

If you already live in an AI assistant and you deal with GAEB files, this is a two-minute setup. pip install pyGAEB[mcp], point it at your tenders folder, and ask.

Comments

Comments are reviewed before they appear.

Loading comments…

    Only used if we need to reply to you directly.

    Your name and comment will be published after review. Privacy policy.