> For the complete documentation index, see [llms.txt](https://knowledgebase.fabricdata.com/xytech/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://knowledgebase.fabricdata.com/xytech/xytech-x2-mcp-server/xytech-x2-mcp-server.md).

# Xytech X2 MCP Server

The X2 MCP server exposes Xytech's operational surface to autonomous agents and any MCP-compatible client — orders, media workflows, resource scheduling, transmission, timecards, and invoicing — through structured tools governed by OAuth with **permission scoping at the individual tool level**.

{% hint style="info" %}
**Access model:** OAuth 2.1 (Authorization Code + PKCE). Your Xytech administrator grants each agent identity access to a specific set of tools. An agent granted `xytech_search_orders` but not `xytech_create_order` can read but never write. All tool invocations are audited.
{% endhint %}

## Connect

|                             |                                                                                               |
| --------------------------- | --------------------------------------------------------------------------------------------- |
| **Server URL (production)** | `https://mcp.xytech.fabricdata.com/mcp`                                                       |
| **Health**                  | `https://mcp.xytech.fabricdata.com/health`                                                    |
| **Transport**               | Streamable HTTP                                                                               |
| **Auth**                    | OAuth 2.1 — Authorization Code grant with PKCE (S256). Dynamic Client Registration supported. |
| **Scopes**                  | Per-tool grants managed in Xytech administration                                              |

### OAuth endpoints

The server publishes standard discovery documents, so MCP clients configure themselves automatically:

|                                   |                                           |
| --------------------------------- | ----------------------------------------- |
| **Authorization**                 | `/oauth/authorize`                        |
| **Token**                         | `/oauth/token`                            |
| **Dynamic Client Registration**   | `/oauth/register`                         |
| **Authorization Server Metadata** | `/.well-known/oauth-authorization-server` |
| **Protected Resource Metadata**   | `/.well-known/oauth-protected-resource`   |
| **OpenID Configuration**          | `/.well-known/openid-configuration`       |

Authentication is interactive: agents complete a browser-based OAuth consent to obtain a token. (A headless client-credentials/service-account flow is not currently offered.)

**Claude / Claude Code:**

```bash
claude mcp add xytech-x2 https://mcp.xytech.fabricdata.com/mcp --transport http
# Complete the OAuth prompt in your browser; tool availability reflects your grants.
```

Any MCP-compatible client (agent frameworks, IDEs, orchestration platforms) connects the same way: register the server URL, complete OAuth, discover tools.

## Tool catalog

Tools are organized by operational lifecycle area.

### Orders & operations

`xytech_create_order` · `xytech_get_order` · `xytech_update_order` · `xytech_search_orders` · `xytech_search_all_orders` · `xytech_get_order_services` · `xytech_get_order_transactions` · `xytech_update_order_transaction` · `xytech_add_order_source` · `xytech_get_order_sources` · `xytech_search_orders_by_resource` · `xytech_update_service_row_field`

Create, read, update, and search work orders; manage order services, transactions, and sources.

### Media orders & assets

`xytech_create_media_order` · `xytech_get_media_order` · `xytech_update_media_order` · `xytech_search_media_orders` · `xytech_get_media_order_details` · `xytech_search_media_order_services` · `xytech_get_media_asset` · `xytech_search_media_assets`

Full media order lifecycle: instantiate orders for ingest, processing, and delivery workflows; query media assets.

### Transmission

`xytech_get_transmission_order` · `xytech_search_transmission_orders`

Query and track transmission orders for broadcast delivery coordination.

### Scheduling & resources

`xytech_check_resource_availability` · `xytech_check_group_availability` · `xytech_get_resource_schedule_v2` · `xytech_search_resources` · `xytech_create_quick_hold` · `xytech_get_resource_compatibility` · `xytech_search_resource_compatibility` · `xytech_get_scheduling_counter_rule` · `xytech_evaluate_counter_rules`

Check availability of people, rooms, and equipment; read schedules; place holds; evaluate scheduling rules.

### Jobs & titles

`xytech_create_job` · `xytech_get_job` · `xytech_search_jobs` · `xytech_create_title` · `xytech_get_title` · `xytech_update_title` · `xytech_search_titles`

### Personnel, timecards & payroll

`xytech_create_timecard_entry` · `xytech_get_timecard` · `xytech_list_timecards` · `xytech_search_timecards` · `xytech_upsert_timecard_lines` · `xytech_add_timecard_activity` · `xytech_get_timecard_batch` · `xytech_search_timecard_batches` · `xytech_approve_timecard_batch` · `xytech_get_employee_timecard_info` · `xytech_search_employees` · `xytech_get_employee_contract` · `xytech_search_employee_contracts` · `xytech_run_personnel_rule_check` · `xytech_list_personnel_rule_sets` · `xytech_get_personnel_rule_set` · `xytech_list_personnel_rule_categories` · `xytech_get_personnel_rule_category` · `xytech_list_payroll_rules` · `xytech_get_payroll_rule` · `xytech_list_payroll_types` · `xytech_list_penalty_types` · `xytech_get_penalty_type` · `xytech_list_unions` · `xytech_get_union` · `xytech_list_union_rules` · `xytech_get_union_rule` · `xytech_list_qualifications` · `xytech_get_qualification` · `xytech_list_qualification_groups`

Timecard entry through batch approval, with union, payroll, and personnel rule evaluation.

### Financials

`xytech_create_invoice_batch` · `xytech_get_invoice` · `xytech_get_invoice_batch` · `xytech_search_invoices` · `xytech_search_invoice_batches`

### Customers & contacts

`xytech_get_customer` · `xytech_update_customer` · `xytech_search_customers` · `xytech_get_contact` · `xytech_search_contacts`

### Monitoring & alerts

`xytech_healthcheck` · `xytech_create_alert` · `xytech_get_alert` · `xytech_search_alerts` · `xytech_dismiss_alert` · `xytech_get_notification` · `xytech_search_notifications`

Operational health checks and alert lifecycle — agents can monitor, raise, and clear alerts.

### Configuration & reference data

`xytech_list_reference_data` · `xytech_get_custom_field_info` · `xytech_refresh_custom_fields` · `xytech_get_service_template` · `xytech_search_service_templates` · `xytech_list_service_template_details` · `xytech_search_service_profiles` · `xytech_get_spec_detail_template` · `xytech_search_spec_detail_templates` · `xytech_get_effective_spec_values` · `xytech_compare_spec_values`

## Example agent session

> **Goal:** instantiate a media order for an image-ingest workflow and confirm resource availability.

```
1. xytech_healthcheck                          → verify connectivity
2. xytech_search_customers {name: "..."}       → resolve customer ID
3. xytech_create_media_order {...}             → instantiate the order
4. xytech_check_resource_availability {...}    → confirm ingest capacity
5. xytech_get_media_order_details {id}         → verify state
```

## Errors, retries, and safety

* Tools return structured errors with actionable messages; validation failures identify the offending field.
* Read tools (`get_*`, `search_*`, `list_*`) are safe to retry. For write tools, re-read state with the corresponding `get_*`/`search_*` tool before retrying, to avoid duplicate creation — the server does not deduplicate writes via idempotency keys.
* The server exposes a `/health` endpoint and the `xytech_healthcheck` tool for connectivity and liveness checks.

## Governance

* **Tool-level OAuth scoping** — grants map to Xytech's RBAC model; agents hold exactly the authority an administrator assigns.
* **Audit** — every invocation is logged against the agent identity.
* **Environments** — production (`mcp.xytech.fabricdata.com`) and staging (`mcp.fox.stg.xytech.fabricdata.com`) are provisioned separately; agent integrations are typically validated against staging first. Contact your Fabric account team for provisioning.

## See also

* [REST API v3](https://knowledgebase.fabricdata.com/xytech/rest-api-v3/) — machine-readable schemas, migration guide
* [Webhooks](https://knowledgebase.fabricdata.com/xytech/webhooks/) — event-driven workflows instead of polling
* [llms.txt](https://knowledgebase.fabricdata.com/xytech/llms.txt) — full markdown documentation index


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://knowledgebase.fabricdata.com/xytech/xytech-x2-mcp-server/xytech-x2-mcp-server.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
