@bicharts/chart-mcp 0.6.69 → 0.6.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -272,6 +272,36 @@ The server tells the BIC service three things, and nothing else:
272
272
 
273
273
  Set `BIC_MCP_TELEMETRY=0` in the server's environment to turn all of it off.
274
274
 
275
+ ## Hosted server (`--http`)
276
+
277
+ The same server can also run as a remote MCP endpoint over Streamable HTTP, for clients that only take a URL (chat
278
+ connectors, notebook and dashboard tools). It's how the hosted chart server runs behind the RegiaBI site, which
279
+ checks each caller's sign-in before a request reaches it.
280
+
281
+ ```bash
282
+ npx -y @bicharts/chart-mcp --http --host 127.0.0.1 --port 8799
283
+ ```
284
+
285
+ `BIC_MCP_HOSTED=1` starts it the same way, and `BIC_MCP_HTTP_PORT` sets the port. It answers MCP on `POST /mcp`
286
+ and `GET /healthz`. What's different from the local server:
287
+
288
+ - **Every request needs `Authorization: Bearer <access token>`** (a request without one gets a 401), and that token is
289
+ the only credential its calls send. A license key in the environment or `~/.bic/credentials.json` isn't used, and no
290
+ browser sign-in opens. When the service turns the token away, the tool's answer says to reconnect; your MCP
291
+ client signs in again.
292
+ - **It's stateless:** each request gets a fresh server and no session, so `GET` and `DELETE` on `/mcp` answer 405,
293
+ and a question a tool would ask the client (hover drop lines on a 3D scatter) goes to the agent instead.
294
+ - **Five tools:** `assess_data_shape`, `list_eligible_charts`, `generate_chart`, `preview_request` and `get_guide`. The
295
+ tools that work in your project folder (`check_chart`, `check_app`, `setup_fabric_app`, `query_semantic_model`,
296
+ `suggest_charts`) need the local server, since a remote server can't see your machine.
297
+ - **Tables travel in the request,** as `data` or `csv_text`; `csv_path`, `out_dir`, `preview_html` and `project_dir`
298
+ are refused with a one-line reason. The server profiles the table in memory, sends only the profile to generation
299
+ (exactly what the local server sends) and drops the rows: nothing is written to disk or logged. Charts come back
300
+ inline. With no `language` or `renderer`, it generates JavaScript (D3).
301
+ - **Each request it sends says it came from the hosted server,** and an `X-BIC-Client-IP` header on the incoming
302
+ request is passed on, so the service's limits apply to the person rather than to the server. Run it yourself only
303
+ behind something that checks callers, since it trusts that header.
304
+
275
305
  ## The agent skill (recommended)
276
306
 
277
307
  This package ships `skills/bic-charts/SKILL.md` — the golden path from empty directory to a