---
name: iblai-connect-ellucian-banner
description: "Read and write Ellucian Banner data through the Ellucian Ethos Integration (Ethos Data Model APIs, Banner Business Process APIs, Ethos GraphQL) and expose it to an ibl.ai agent as an MCP tool. Use when the user asks an agent to work with Ellucian Banner data, or to set up an Ellucian Banner MCP connection on ibl.ai."
metadata:
  kind: guide
---

# Ellucian Banner connector for AI agents

> A starting point maintained on ibl.ai at https://ibl.ai/developer/connectors/ellucian-banner — not part of the iblai/vibe repository. Checked against Ellucian's documentation on October 20, 2026; test it against your own Ellucian Banner setup before you rely on it.

Ellucian Banner is an ERP that colleges and universities use for student, finance and HR administration. Its data includes persons, courses and class sections, class schedules, student account details and employee leave balances.

## Auth & conventions

- **API:** Ellucian Ethos Integration (Ethos Data Model APIs, Banner Business Process APIs, Ethos GraphQL) (Mixed). Ethos Integration proxies calls to Banner: Ethos Data Model (EEDM) REST resources at /api/{resource}, Banner Business Process APIs (BPAPI) for process-level data, GraphQL for object graphs, and change notifications read from /consume.
- **Base URL:** https://integrate.elluciancloud.com/api/{resource}
- **Access:** Issued by your administrator. The institution sets up an application in Ethos Integration, grants it the resources it needs and issues that application's API key. Vendors and developers get the key from the institution, not from a public sign-up.
- **Auth:** API key exchanged for a JWT bearer token. Exchange the application's API key at /auth for a JWT access token, then send it as an Authorization: Bearer header. Tokens expire after 5 minutes; an expired token returns 401 Unauthorized.
- **Limits:** Paging uses offset and limit; the maximum page size varies by resource and Ellucian's SDK reads it per resource. Ellucian warns against fetching all pages of a resource in one request. No request-rate limit was found in public docs.
- Keep Ellucian Banner credentials in environment variables or the ibl.ai credential store. Never print a token in chat and never commit one to a file.
- Destructive or outward-facing calls are marked **Confirm with the user first** — do.

## Reads

- **Ethos Data Model resources** — GET /api/{resource} or /api/{resource}/{id}, e.g. persons; filter with ?filter= and page with offset and limit.
- **Banner Business Process APIs** — Banner-specific APIs called through Ethos; Ellucian's examples use them for student account details and employee leave balances.
- **Ethos GraphQL** — Returns graphs of related objects in one call, e.g. a person's classes for today, cutting round trips.
- **Change notifications** — GET /consume?lastProcessedID=&limit= reads messages from the application's subscriber queue.
- **Available resources** — GET /available-resources and /appconfig list the resources and settings configured for the application.

## Writes

- **Create or update records** — POST and PUT to /api/{resource} create or update records the application is authorized to change.
- **Delete records** — DELETE /api/{resource}/{id} on resources that support deletion. **Confirm with the user first.**
- **Ethos error records** — Create, read and delete entries in the Ethos errors service at /errors.

## Expose it to an ibl.ai agent (MCP)

Ellucian did not publish an MCP server of its own when this skill was checked. Host a small MCP server that wraps the calls above, then register it below.

First install the ibl.ai platform skills and connect your organization (writes `IBLAI_ORG`, `IBLAI_USERNAME` and `IBLAI_API_KEY` to `.env`):

```bash
npx skills add iblai/vibe --all
# then, in your coding agent:
/iblai-api-login
```

Every call below sends `Authorization: Api-Token $IBLAI_API_KEY`.

1. **Register the server** — `POST https://api.iblai.app/dm/api/ai-mentor/orgs/$IBLAI_ORG/users/$IBLAI_USERNAME/mcp-servers/` with `name`, `url`, `transport` (`sse` | `websocket` | `streamable_http`) and `auth_type` (`none` | `token` | `oauth2`). Capture the returned `id`.
   - For an API key or service credential use `auth_type=token` with `auth_scope=platform` for one key across the organization, or scope it to a single agent for one key per agent.
2. **Create the connection** — `POST https://api.iblai.app/dm/api/ai-mentor/orgs/$IBLAI_ORG/users/$IBLAI_USERNAME/mcp-server-connections/` with `server`, `scope` (`platform` | `mentor` | `user`), `auth_type`, and either `credentials` + `authorization_scheme` or a `connected_service` id for OAuth. Credentials are masked on read; never send a masked value back.
3. **Enable it on the agent** — `GET https://api.iblai.app/dm/api/ai-mentor/orgs/$IBLAI_ORG/users/$IBLAI_USERNAME/mentors/{agent_id}/settings/`, add `mcp-tool` to `tool_slugs` and the server id to `mcp_servers`, then `PATCH` the full lists back. They are replaced, not merged.

Full reference: https://ibl.ai/developer/platform/mcp/mcp-connections and the `/iblai-api-agent-mcp` skill.

## Example prompts

- "Find the person record for this student ID and list their addresses"
- "Show today's classes for instructor Jane Smith using Ethos GraphQL"
- "Check the change-notification queue for new admission applications since the last run"
- "What is this student's current account balance?"

## Guardrails

- Banner holds FERPA education records, student account (financial) data and employee HR data. Grant the Ethos application only the resources a task needs.
- Request the narrowest Ellucian Banner scopes or role the task needs, and prefer a read-only credential for agents that only answer questions.
- Return the fields the user asked for, not whole records; do not paste personal data into chat that the user did not request.
- Before any write, show the user exactly what will change and wait for a yes.
- Respect the documented limits above: page through results and back off on rate-limit responses instead of retrying in a loop.

## References

- Ethos Integration SDK documentation: https://ellucian-developer.github.io/integration-sdk-doc/csharp/index.html
- Ethos Integration API collection (Bruno): https://github.com/ellucian-developer/integration-bruno
- Ellucian Experience Ethos examples: https://github.com/ellucian-developer/experience-ethos-examples
- This connector on ibl.ai: https://ibl.ai/developer/connectors/ellucian-banner
- ibl.ai MCP server connections: https://ibl.ai/developer/platform/mcp/mcp-connections
