Ameed.Xrm.SearchPOALandscape 1.2026.4.15

dotnet add package Ameed.Xrm.SearchPOALandscape --version 1.2026.4.15
                    
NuGet\Install-Package Ameed.Xrm.SearchPOALandscape -Version 1.2026.4.15
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Ameed.Xrm.SearchPOALandscape" Version="1.2026.4.15" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Ameed.Xrm.SearchPOALandscape" Version="1.2026.4.15" />
                    
Directory.Packages.props
<PackageReference Include="Ameed.Xrm.SearchPOALandscape" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Ameed.Xrm.SearchPOALandscape --version 1.2026.4.15
                    
#r "nuget: Ameed.Xrm.SearchPOALandscape, 1.2026.4.15"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Ameed.Xrm.SearchPOALandscape@1.2026.4.15
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Ameed.Xrm.SearchPOALandscape&version=1.2026.4.15
                    
Install as a Cake Addin
#tool nuget:?package=Ameed.Xrm.SearchPOALandscape&version=1.2026.4.15
                    
Install as a Cake Tool

Search data in PrincipalObjectAccess (POA), to see which entity records are shared with who, allowing what kind of access

Product Compatible and additional computed target framework versions.
.NET Framework net481 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.2026.4.15 317 4/14/2026
1.2026.4.14 102 4/14/2026
1.2026.4.4 232 4/3/2026
1.2026.4.3 143 4/2/2026
1.2026.4.1 129 4/1/2026
1.2020.2.10 33,263 2/10/2020
1.2018.12.31 15,752 12/31/2018
1.2018.12.28 1,651 12/28/2018
1.2018.12.18 2,489 12/18/2018
1.2018.1.4 35,537 1/4/2018
1.2017.5.23 76,445 5/23/2017
1.2017.5.17 10,120 5/17/2017
1.2017.5.16 2,389 5/16/2017
1.2017.4.23 16,629 4/23/2017
1.2017.4.21 2,818 4/21/2017
Loading failed

1.2026.4.15:

Same feature set as 1.2026.4.14 (full notes below). This release adds two UI fixes:

== UI fixes ==
- Right column layout: the Reset button and the Details panel are no longer clipped when the XrmToolBox window is narrower than the plugin's design width. AutoScroll is now enabled on the plugin UserControl, so users on smaller monitors get scrollbars and can reach every control instead of a squeezed or chopped layout.
- MCP log overlay positioning: the dark-console log overlay now anchors correctly to the bottom-right of the visible client area. Previously, after AutoScroll was enabled, the overlay could appear in the middle of the plugin area because the initial position was calculated from the UserControl's outer size instead of its client area. Position is now recalculated on every Show so it follows window resizes and scroll position correctly.

1.2026.4.14:

== MCP client identification ==
- MCP server now reads clientInfo from the initialize handshake and logs the client name and version on connect
- Log line format: "claude-code 0.x.y connected — session abc12345" (one line per session open, replaces the generic "Session ready" line)
- Makes cross-client activity visible at a glance in the log overlay — works with any MCP-compliant client (Claude Code, Codex, GitHub Copilot Chat, Cline, Continue.dev, etc.)
- Falls back to "unknown unknown" if the client omits clientInfo (spec-optional)

1.2026.4.13:

== Download FetchXML (UI) ==
- Download FetchXML for the current Retrieve Shares query (entity search and per-principal-tab search), pretty-printed and saved as .xml
- Per-tab query tracking in Search by Principal mode; XML button enables/disables based on whether a query has run

== MCP server (Model Context Protocol) ==
- Embedded MCP server inside the plugin — exposes POA query tools to AI agents (Claude Code, Claude Desktop, etc.)
- Streamable HTTP protocol (MCP spec 2025-03-26), single /mcp endpoint, Mcp-Session-Id header for session management
- Manual Start/Stop button with inline editable port (default 5580), readonly JSON config display, color status (gray=stopped, green=running), 4-digit port validation (1000-9999)

== MCP tools (9) ==
- poa_list_shareable_entities — list all entity types that support sharing
- poa_record_shares — get all principals with access to a specific record + decoded access rights
- poa_search_entity_shares — search all shared records of a given entity type, paged
- poa_discover_principal_entities — discover entity types where a principal has shares (with counts)
- poa_search_principal_shares — search records of a given entity type shared with a specific user or team, paged
- poa_decode_access_mask — decode an access rights bitmask to its named flags
- poa_list_entity_columns — list all columns of an entity (logical name, display name, type)
- poa_resolve_columns — fuzzy match free-text column names to logical names (4-tier: exact/contains/word overlap)
- poa_resolve_principal — resolve a user or team name (or email) to a Dataverse principal with GUID and type
- All tools use poa_ prefix and include natural-language question hints in their descriptions for LLM routing

== Additional columns in MCP search ==
- poa_search_entity_shares and poa_search_principal_shares both accept a "columns" parameter (comma-separated logical names) to include extra columns in results
- Resolve free-text column names via poa_resolve_columns first; LLM orchestrates the resolve → search pipeline

== Disambiguation behaviour for AI agents ==
- When poa_resolve_columns returns multiple candidates for an ambiguous free-text input, the agent is now instructed to present the candidates to the user and let the user pick — instead of silently picking the most likely match
- The directive is enforced in three layers: server-level instructions (returned at MCP initialize), the poa_resolve_columns tool description, and the Hint field on the tool response
- Works the same across all MCP-compliant clients (Claude Code, Codex VS Code extension, GitHub Copilot Chat agent mode) with no per-client configuration

== MCP log overlay ==
- Toggleable log overlay panel (dark console theme, Show/Hide button, Clear button)
- Per-tool-call download buttons in a right-side strip — each button has the call timestamp, blue accent, download icon, and a tooltip; click saves the FetchXML used for that specific call (with paging attributes stripped) to disk
- Enriched logging: arg/result summaries (entity, columns, record count, resolved/unresolved, decoded rights), tool list and protocol-level logging on server start

- More at https://ntit.ai/blog/search-shared-data-crm-entities
- Feedback/comments: https://ameedsheikh.wordpress.com/2017/04/19/search-shared-data-across-crm-entities/
- Connect: https://www.linkedin.com/in/ameeds