microsoft / microsoft/mcp

[Feature] getDefinition / long-running operations require hand-rolled polling; no MCP tool polls to completion

Open
#3,255 2 comments 0 reactions 2 assignees View on GitHub

@AmosHersch is already working on this.

Since Aug 18, 2026.

customer-reported enhancement needs-team-triage server-Fabric.Mcp
Dominant language
C#
Stars
3.7k
Forks
624
Avg merge
2d 20h
Merged PRs (30d)
220

Description

**Describe the bug**
This is a feature request. `items/{id}/getDefinition` (and other long-running Fabric operations) return `202 Accepted` with `Location` and `x-ms-operation-id` headers and an empty body. There is no MCP tool that polls this to completion and returns the decoded result -- every caller has to hand-roll the poll loop (`GET /v1/operations/{id}` until status is terminal, then `GET /v1/operations/{id}/result`) themselves in whatever scripting environment they're using.

**Expected behavior**
A tool like `core_get-item-definition(workspace-id, item-id)` that internally polls the LRO to completion and returns the decoded definition parts directly, removing the need for callers to implement their own polling/backoff logic.

**Actual behavior**
Every retrieval of a notebook or pipeline definition required manually:
1. POST to `getDefinition`
2. Check for `202` status + extract `x-ms-operation-id` header
3. Poll `GET /v1/operations/{id}` on an interval until `status` is `Succeeded`/`Failed`
4. GET `/v1/operations/{id}/result` for the actual payload
5. Base64-decode each `definition.parts[].payload`

This boilerplate was repeated many times across a single session building a Fabric Data Pipeline + notebooks.

**Reproduction Steps**
1. Call `items/{itemId}/getDefinition` on any Fabric item
2. Observe a `202` with `Location`/`x-ms-operation-id` headers and no body
3. Note no MCP tool exists to poll this LRO to completion

**Environment**
- Fabric MCP Server / Fabric REST API `v1`
- Windows 11

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.