Getting Started
The OpenBI MCP Server is a standard ASP.NET Core 9 web application. You can run it directly with the .NET SDK or as a Docker container.
Prerequisites
| Requirement | Version | Required for |
|---|---|---|
| .NET SDK | 9.0 or later | dotnet run / dotnet publish |
| Docker | any recent version | Docker container |
Install the .NET 9 SDK: https://dotnet.microsoft.com/download/dotnet/9.0
Option 1 — dotnet run
The MCP endpoint is available at:
Option 2 — Docker
A Dockerfile and docker-compose.yml are provided in the OpenBI/ folder. The compose file sets the build context to the repo root automatically, so all project references resolve correctly.
This builds the image and starts the container with all four configuration folders mounted as volumes (resolved relative to OpenBI/OpenBI.MCP.Server/).
The MCP endpoint is available at:
Secrets volume
The secrets/ volume contains credentials. Never bake secrets into the image — always mount them at runtime and ensure the host path is not committed to source control.
Manual build (advanced)
If you need to build the image without docker compose, run from the repo root:
Running from any other directory will fail because the Dockerfile references paths relative to the repo root.First-time setup checklist
Regardless of how you run the server, you need the following before any MCP tool calls will succeed:
- Platform definitions — populate
platforms/with at least one platform folder (info.json,visualtypes.json,assetTypes/). - At least one site — create
sites/my-site.json(see Configuration). - Secrets — create
secrets/my-site.jsonwith credentials for that site. - Connector + converter plugins — publish them into
plugins/(see Plugins).
Build for production (dotnet)
The published output is self-contained: appsettings.json and the sites/, secrets/, and platforms/ folders are all copied alongside the binary.
Installing a plugin
Plugins must be published into the runtime plugins/ directory — either the build output folder (when using dotnet run) or the mounted volume (when using Docker).
Build output vs project folder
When using dotnet run, the plugin loader reads AppContext.BaseDirectory at runtime (bin/Debug/net9.0/). Publishing to the project source plugins/ folder has no effect. When using Docker, publish to the path that maps to the /app/plugins volume.
Verifying startup
On a successful start you should see log lines similar to:
[INF] Plugin loaded: MyOrg.Connectors.MyPlatform - 1 type(s) registered
[INF] Plugin loaded: MyOrg.Converters.MyPlatform - 1 type(s) registered
[INF] Site registry: FileSiteRegistry loaded 2 site(s)
[INF] Now listening on: http://localhost:5000
If no sites are configured the server still starts without crashing. Tools that require id_site will return "Unknown or invalid id_site" until at least one site is registered.