bilig

Open WebUI WorkPaper MCP setup

Use this when Open WebUI should call spreadsheet tools, but the spreadsheet logic should stay in a formula-backed WorkPaper instead of an Excel browser session.

Open WebUI has two useful integration paths:

Official Open WebUI references:

Fastest smoke test: hosted Streamable HTTP

Open WebUI’s native MCP path can connect to a Streamable HTTP server from Admin Settings -> External Tools with type MCP (Streamable HTTP).

For a quick Bilig proof, add this server URL:

https://bilig.proompteng.ai/mcp

Use Auth: None unless your deployment sits behind its own gateway token.

Then open a chat, enable the Bilig tool from the integrations/tools menu, and ask:

List the available Bilig WorkPaper tools. Then read the sample sheets, set the
conversion-rate input to 0.4, read the recalculated ARR output, and return the
proof object.

Expected tools:

The hosted endpoint is stateless and request-local. It is good for verifying Open WebUI can discover and call the tools. It does not persist a private project workbook.

Persistent project file: mcpo bridge

Use mcpo when Open WebUI needs an OpenAPI tool server for a local stdio MCP process. This is the right shape when the WorkPaper JSON file lives on the host or in a container volume.

From the machine that can reach the WorkPaper file:

uvx mcpo --host 0.0.0.0 --port 8000 -- \
  npx -y --package @bilig/workpaper@latest \
    bilig-workpaper-mcp \
    --workpaper ./pricing.workpaper.json \
    --init-demo-workpaper \
    --writable

Open the generated tool docs:

http://localhost:8000/docs

Then add the tool server URL in Open WebUI. For a personal user tool, the URL can be:

http://localhost:8000

For a global tool server configured from the Open WebUI backend, remember that localhost means the Open WebUI backend container or host, not your laptop. When Open WebUI runs in Docker and the mcpo server is on the host, use:

http://host.docker.internal:8000

Native MCP versus mcpo

Path Use when URL to add
Native MCP Open WebUI can call a Streamable HTTP MCP endpoint directly. https://bilig.proompteng.ai/mcp
mcpo Open WebUI should call a local stdio MCP server through OpenAPI. http://localhost:8000 or http://host.docker.internal:8000

Start with native MCP for tool-discovery smoke tests. Use mcpo for a real writable WorkPaper file that must persist across turns or jobs.

Proof object to ask for

Ask the model to return a concrete proof instead of “the cell was updated”:

{
  "editedCell": "Inputs!B3",
  "before": {
    "Summary!B2": "60000"
  },
  "after": {
    "Summary!B2": "96000"
  },
  "persistedDocumentBytes": 1000,
  "verified": true,
  "limitations": [
    "Hosted smoke endpoint is request-local.",
    "Use mcpo or local stdio for a private writable WorkPaper file."
  ]
}

verified should only be true after a readback of the dependent formula output.

Troubleshooting