* Add Fabric Jobs Cancel Item Job Instance tool
Request cancellation once for an explicitly identified Fabric job, preserve accepted receipts and safe failure guidance, and cover routing, consent, and response edge cases offline.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* Preserve cancellation failures for malformed Unicode metadata
Limit lazy JSON decoding handling to optional error metadata, retain HTTP status and retry guidance, add service and routed regression cases, and align the Jobs namespace overview with cancellation support.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* Refresh Fabric REST API specifications and item definitions
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* Prepare for Fabric MCP Server 1.7.0 release
Compile and curate synchronized Fabric release notes, preserving version 1.7.0 and consuming five pending fragments. Attribute resource refresh to #4078 and omit internal-only file I/O infrastructure.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* Include shipped Fabric namespace concurrency fix in release notes
Attribute the user-visible namespace cache fix to #4057. Remote registry-only changes do not affect the shipped Fabric empty registry.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* Keep merged resource refresh fragment consumed
Remove the fragment reintroduced by the squash-ancestry merge; its attributed release note is already present in both 1.7.0 changelogs.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add Fabric operation-state and operation-result tools, shared hybrid LRO handling, and optional bounded Create Item polling.
Keep a 120-second default with a server-enforced 600-second maximum, resumable receipts, and no automatic resubmission of the initiating mutation. Integrate the merged Get Item tooling and centralized catalog coverage.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* docs: make Fabric tool description evaluation optional
Keep Azure and other non-Fabric evaluation gates, including stricter toolset requirements, and all other validation unchanged.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* docs: use absolute links for Fabric evaluation policy
Fix the three AGENTS.md policy links rejected by repository link-format guidance. Policy scope is unchanged.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* docs: minimize Fabric evaluator exception wording
Keep only short Fabric qualifiers in existing guidance, preserving the original requirements and examples. Remove the expanded policy section and links as requested.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Read the tool catalog only from stdout while leaving stderr diagnostics visible. Add focused native-process Pester coverage for valid, malformed, and contaminated stdout without changing exit-code handling.
Adapted the engineering fix and regression tests from Hasan Abo-Shally's microsoft/mcp#3701 (commit 0c8bc64a3b). No Fabric tool implementation is included.
Co-authored-by: Hasan Abo-Shally <HasanAboShally@gmail.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* Simplify Fabric and OneLake endpoint configuration to production
The core and onelake toolsets resolved their API endpoints through a lookup table keyed off an environment variable. Only the production endpoints are usable by consumers of this server, so the indirection added configuration surface without adding value.
Replace the lookup with a single set of production endpoint constants and drop the now-unused environment lookup helpers. Test URLs and README notes are updated to match.
* Collapse duplicated endpoint literals into single constants
Address review feedback: the base URL and scope strings were repeated across the constants, the FabricScopes array, and the endpoint initializers, so updating one without the others could silently diverge.
Define each endpoint value once as a constant and derive the rest from it. The endpoint container types are no longer reachable now that the lookup is gone, so remove them along with the stale JSON context registration. LRO test URLs are built from OneLakeEndpoints, matching the convention in the sibling test classes.
* Rename Fabric docs workload terminology to item type
The docs toolset exposed --workload-type, but the accepted values are almost entirely Fabric item types (notebook, lakehouse, dataPipeline, report, warehouse, ...), verified against the info.title of each embedded OpenAPI spec. Only platform, admin, spark and realTimeIntelligence are genuinely not items.
This also removed a same-server inconsistency: core_create-item already used --item-type for the very same values.
Changes:
- --workload-type renamed to --item-type; description now enumerates the four non-item API areas and points at the list tool
- docs_workloads renamed to docs_list-item-types; docs_workload-api-spec renamed to docs_item-api-spec
- ListWorkloadsCommand/GetWorkloadApisCommand/GetWorkloadDefinitionCommand/WorkloadCommandOptions and the FabricWorkloadPublicApi model renamed to match; service methods renamed accordingly
- ListItemTypesCommand result property renamed from workloads to itemTypes
- Fixed error messages that referenced a non-existent list_workloads command
- Updated unit tests, Fabric server README, TROUBLESHOOTING, SUPPORT and added a changelog entry
Azure.Mcp.Tools.AzureBackup keeps its own --workload-type flag: there the values really are Azure Backup workload types (AzureVM, SQL, SAPHANA), which is correct usage.
* Fix test assertion and terminology typos from scripted rename
The scripted rename in the previous commit corrupted three things:
- GetExamplesCommandTests asserted on 'Missing Required options: --itemType-type', because the replacement ran inside the string literal '--workload-type'. This was the CI test failure.
- 'Workload' -> 'ItemType' applied to 'WithEmptyWorkloadType' produced the doubled 'WithEmptyItemTypeType'; same for two sibling test names. Flagged by review.
- Prose inside comments and assertion messages read 'itemTypes'/'itemType' where it should read 'item types'/'item type'.
Also renames the GetFabricItemTypeItemDefinition test region and methods to GetItemDefinition, matching the service method they exercise.
Separately, sharpens the --item-type description: the four non-item values are not all the same kind of thing. platform and admin are platform/tenant APIs, spark is workspace settings, and realTimeIntelligence is a workload.
* Fix camelCase in test literal and clarify list tool description
Full diff review against main surfaced two remaining issues from the scripted rename:
- CombinedWorkflowTests used the sentinel 'this-itemType-does-not-exist', where camelCase leaked into an otherwise kebab-case literal. Not a test failure (the assertion only checks the status is not OK), but inconsistent.
- ListItemTypesCommand still described platform, admin, spark and realTimeIntelligence as 'non-item API areas', lumping together things that differ. realTimeIntelligence is a workload; spark is workspace settings; platform and admin are platform/tenant APIs. Now matches the wording used on --item-type.
All onelake tool names used snake_case leaf names (onelake_list_workspaces), while every other Fabric namespace (core, docs, datafactory) uses kebab-case (core_search-catalog, docs_best-practices, datafactory_list-pipelines). Converts all 34 OneLake command names to kebab-case to match.
Also fixes OneLakeItemListDfsCommand, whose name 'onelake-item-list-dfs' would have rendered as the namespace-duplicated tool 'onelake_onelake-item-list-dfs'. Renamed to 'list-item-paths-dfs' (it cannot reuse 'list-items-dfs', which belongs to the registered OneLakeItemDataListCommand). The command is not registered, so it was never exposed.
Updates unit tests, the Fabric server and OneLake READMEs, tool names embedded in the get-data-access-role description and OneLake prompts, and renames the onelake_confirm_delete prompt to onelake_confirm-delete (its sibling onelake_best-practices was already kebab-case).
Compile user-facing changelog entries into the 1.3.0 section, set the release date, and sync the VS Code extension changelog. Internal-only entries (telemetry instrumentation, IServiceProvider refactor) were consumed but omitted from the changelog per Fabric's user-facing documentation policy.
* Update Fabric REST API specifications and item definition documentation
* Fix broken relative link in plan-definition.md
* Remove databricks-storage-definition.md with no matching workload in API specs
* Restore Azure Databricks Storage definition with name matching azureDatabricksStorage workload
* Prepare for Fabric MCP Server 1.2.0 release
Compile changelog entries into the 1.2.0 section, set the release date, and sync the VS Code extension changelog.
* Remove pre-release suffix from 1.2.0 VS Code changelog entry
* Update Fabric REST API specifications and item definition documentation
* Remove databricks-storage and plan item definition docs
* Fix broken Update Spark Job Definition Definition link in spark-job docs
* Use minor-increment GA versioning for Fabric MCP post-release auto-bump
Fabric MCP Server follows a GA-only, minor-increment versioning strategy. The post-release Update-Version.ps1 auto-increment now reuses the shared IncrementAndSetToPrerelease('Minor') to bump the minor segment and reset patch, then strips the prerelease label so the result is a stable GA release for Fabric.Mcp.Server (e.g. 1.1.0 -> 1.2.0). All other servers keep the existing patch + prerelease behavior. The synced eng/common SemVer.ps1 is intentionally left untouched.
* Use explicit minor bump for Fabric GA increment
Address PR review feedback: IncrementAndSetToPrerelease is designed to produce a prerelease and bumps the prerelease number when the input already has a label, so reusing it for a GA minor bump is fragile. Use a direct Minor++/Patch=0 instead, which has no dependency on the input being GA and no conflict with the 0.x prerelease rule.
* Use csproj version for Fabric MCP VSIX instead of Major.0.X
The VSIX version was computed independently of the csproj version using a Major.0.<next-marketplace-patch> scheme, so Fabric's 1.1.0 release published the extension as 1.0.1. Fabric MCP Server follows a GA-only, minor-increment strategy and drives its own explicit versions, so use the .csproj version verbatim for the VSIX to keep it in sync with the npm, NuGet, ADO feed, and MCR targets. Other servers keep the existing marketplace-derived patch behavior.
* Correct post-release version bump to 1.2.0
The post-release auto-increment (#2881) ran before the new minor-increment GA strategy landed and set the in-development version to 1.1.1-beta.1. Correct it to 1.2.0 in the csproj and CHANGELOG to match Fabric's GA-only, minor-increment strategy.
- Add missing AddRegistryRoot() call to ConfigureServices in Program.cs
- Add using Azure.Mcp.Core.Areas.Server namespace
- Add Fabric.Mcp.Server.UnitTests project with ServerStartupTests
- Test validates server starts without DI errors and responds to MCP initialize
- Bump version from 0.0.0-beta.5 to 0.0.0-beta.6
- Update CHANGELOG.md with new release section
- Add changelog entry for updated Fabric REST API specifications with KeyPair credential support and Key Vault secret references
* Update Fabric REST API specs with KeyPair credentials and Key Vault secret references
- Added KeyPair credential type for connections with identifier and private key support
- Added Key Vault secret reference support for Basic, Key, ServicePrincipal, and SharedAccessSignature credentials
- Added recreateTables option for SQL endpoint metadata refresh
- Updated connection examples to demonstrate Key Vault secret references
- Fixed rate limiting documentation for apply/unapply tags APIs
- Updated SparkJobDefinition format documentation links
* SQL DB definition
* Add Fabric API best practices for throttling and Admin APIs
- Added comprehensive throttling guide with retry patterns, exponential backoff, circuit breakers, and code examples in C#, Python, and TypeScript
- Added Admin APIs usage guidelines to help LLMs detect when admin privileges are needed and request explicit user permission
- Updated README with new example prompts
- Created changelog entries for both features
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Initial work on VSIX for Fabric MCP sever
* Enhanced Fabric MCP Server README for VSIX extension
- Added package-specific annotations for VSIX, NuGet, and NPM packages
- Added installation badges with Fabric branding (hidden from VSIX)
- Added GitHub Release badge for version tracking
- Simplified description for VSIX users vs GitHub viewers
- Enhanced example prompts (added 3 new practical examples)
- Hidden CLI tools table from VSIX (not relevant for extension users)
- Added VSIX-specific installation instructions
- Customized support section for different package types
- Updated table of contents to reflect conditional sections
- Followed Azure MCP Server patterns for consistency
* Update Fabric MCP extension display name to 'Microsoft Fabric MCP Server'
* Remove .DS_Store files and add to .gitignore
* Clean up .DS_Store file deletions
* addressing PR comments
* Comment out broken link from the README file
* Fix README
* Fix icon and enabled vsix in build.yml
* Remove Extension Packs
---------
Co-authored-by: Hasan Abo-Shally <HasanAboShally@gmail.com>