Skip to main content
Glama
brainmakeassistant

Fusion BIP MCP Server

README.md
# Fusion BIP MCP Server

An [MCP](https://modelcontextprotocol.io) server that gives an AI agent safe, described access to **Oracle Fusion BI Publisher**. Instead of handing an agent raw credentials, you expose a small set of scoped tools it can call — run a query, run a report, fetch or deploy catalog objects — and the server talks to Fusion's BI Publisher SOAP service directly. No database and no middle tier to stand up.

This is a public, source-only mirror of the core server for people who want to read the code or point their own agent at their own Fusion instance.

## The tools

| Tool | What it does | Access |
|------|--------------|--------|
| `query_fusion` | Run a read-only SELECT against Oracle Fusion and return the rows | read |
| `run_report` | Run a deployed BI Publisher report and return its output | read |
| `get_catalog_object` | Download a catalog object definition (`.xdm` / `.xdo`) for inspection | read |
| `deploy_data_model` | Deploy a BI Publisher data model (`.xdm`) to a catalog folder | write |
| `deploy_report` | Deploy a BI Publisher report (`.xdo`) linked to a data model | write |
| `delete_catalog_object` | Delete a data model or report from the catalog | write, **off by default** |

The destructive `delete_catalog_object` tool stays unregistered unless you explicitly opt in with `FUSION_MCP_ENABLE_DELETE=1`, so an agent cannot delete anything it was never given.

## How it fits together

```
AI agent (Claude Code, etc.)
      │  MCP (stdio)
      ▼
  server.py        registers the tools, meters usage
      │
  client.py ─────► direct_client.py ──► BI Publisher SOAP  ──►  Oracle Fusion
      │                                   (soap.py builds the envelopes,
  context.py                               execute.py runs them,
  (credentials/targets)                    builders.py shapes .xdm/.xdo)
```

- `server.py` — the MCP server; registers each tool and its description.
- `client.py` — the backend seam the server imports.
- `direct_client.py` — the six operations implemented against BI Publisher SOAP.
- `soap.py` / `execute.py` / `builders.py` — envelope construction, execution, and `.xdm`/`.xdo` artifact building.
- `context.py` — where the Fusion pod and user credentials are resolved for a call. The defaults in this mirror are placeholders (`your-pod`, `bip_user`); wire in your own.
- `metering.py` — an append-only, metadata-only usage log.

## Running it locally

```bash
pip install -e ".[stdio]"    # installs the mcp runtime
# set your Fusion pod + user in context.py (or via environment) and register
# fusion-mcp with your MCP client (Claude Code / Desktop) over stdio.
```

## Notes

- This mirror is the **direct-over-SOAP** path only. Credential wiring is intentionally left as placeholders — it does not run as-is against any real instance until you supply your own Fusion pod and a user with the BI Publisher Author role.
- No credentials, tokens, or private endpoints are included.

## License

MIT — see [LICENSE](LICENSE).

TDQS

A4.3/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct operation: direct SQL query, report execution, catalog object download, data model deployment, and report deployment. There is no overlap or ambiguity between them.

Naming Consistency5/5

All five tool names follow a consistent verb_noun pattern in snake_case (query_fusion, run_report, get_catalog_object, deploy_data_model, deploy_report). Minor variation in the verb (query, run, get, deploy) is natural and predictable.

Tool Count5/5

With only 5 tools, the server is tightly scoped to core Fusion BIP operations: querying data, running reports, and managing catalog objects. Each tool earns its place, and the count is ideal for the stated purpose.

Completeness4/5

The tool set covers the main lifecycle: query, run, get, deploy (with replace for updates). However, it lacks a catalog listing/browsing tool and an explicit delete operation, which would make it fully self-sufficient. These are workable gaps for agents that already know the exact catalog paths.

Maintenance

ActivityStale
ResponsivenessNo issues