Feature Request

Feature request forum for Devolutions PowerShell Universal

Newest

Most active

Most votes

avatar

Matthew Morrow

MCP Server not producing helpful output

The llm asked for a cmdlet and got back a cmdlet with no doc, and then started searching my codebase because for things we have done in the past. [image] Maybe in the MCP response should include metadata on the object so that the llm can do some kind of discovery and get examples or signatures or field level help, allowing it to chose what it needs next.

1

71

4

avatar

Adam Driscoll

avatar

chauberg

Job history is empty, max history is default (100)

We're having an issue with empty or near empty job histories on some of our more aggresive scripts that run multiple times every hour even though we have the default setting of 100 max history on every job. This issue seems to be on scripts that run many times every day and have a lot of jobs being archived by a custom trigger based on the amount of work done in the script. My best guess is that PSU is including archived jobs in the calculation when deciding how many jobs to archive since scripts that don't run as often and don't have a lot jobs archived by our custom trigger don't seem to be affected. This is our custom archive trigger script: param ($Job) #$DebugPreference = "Continue" $jobId = $Job.Id if ([string]::IsNullOrEmpty($jobId)) { Write-Error "No job id supplied." } Write-Information "$jobId - $($Job.Script.Name) ran by $($Job.Identity.Name) @ $($Job.StartTime) for $(($Job.EndTime - $Job.StartTime).TotalSeconds) seconds." if (!$Job.Schedule) { Write-Information "Job is not scheduled - aborting." return } $output = Get-PSUJobPipelineOutput -JobId $jobId -Integrated #-AppToken $apiToken.Token $HostOutput = Get-PSUJobOutput -JobId $jobId -Integrated if ($HostOutput) { Write-Information "[Job Output]" Write-Information ($HostOutput -join [Environment]::NewLine) Write-Information "[/Job Output]" } if ($output.Archive -eq $true) { # Archieve job $apiToken = Get-PSUAppToken -Identity "JobArchiver" -Integrated | Where-Object -Property Revoked -Eq $false | Select-Object -ExpandProperty Token -First 1 if (!$apiToken) { Write-Error "Failed to retrieve api token!" return } Write-Host "Archiving job.. " -NoNewLine $response = Invoke-RestMethod -Uri "https://localhost/api/v1/job/archive/$jobId" -Method "DELETE" -SkipCertificateCheck -Headers @{ Authorization="Bearer $apiToken" } if($response.Archived) { Write-Host "✅ OK" -ForegroundColor Green } else { Write-Host "Not archived?" -BackgroundColor Red } } Write-Debug "Triggered by job:" Write-Debug ($Job | ConvertTo-Json -WarningAction Ignore)

1

74

6

avatar

Adam Driscoll

avatar

callidus2000

Support OpenAI /v1/responses API and configurable model-specific parameters (e.g. reasoning_effort)

When using newer OpenAI models in PowerShell Universal, the current implementation appears to be limited to the legacy /v1/chat/completions endpoint. This creates compatibility issues with newer reasoning-capable models such as gpt-6.1-sol. These models have different API requirements and may require the newer /v1/responses endpoint for function/tool calling scenarios. For example, when using tools/functions with gpt-6.1-sol, OpenAI returns: HTTP 400 (invalid_request_error) Function tools with reasoning_effort are not supported for gpt-6.1-sol in /v1/chat/completions. To use function tools, use /v1/responses or set reasoning_effort to 'none'. At the moment there appears to be no way in PowerShell Universal to: Select the OpenAI API endpoint (/v1/chat/completions vs /v1/responses). Configure model-specific parameters such as: reasoning_effort reasoning settings in general future model-specific options introduced by OpenAI. As a result, users are unable to use newer OpenAI models with tool/function calling even though the models themselves support the required functionality through the Responses API. Requested Enhancements Feature 1: Responses API Support Add support for OpenAI's /v1/responses endpoint and allow selecting the API type in the provider configuration. Example: New-PSUAIProvider -ApiType Responses or New-PSUAIProvider -EndpointType Responses Feature 2: Custom Model Parameters Allow arbitrary model parameters to be passed through to OpenAI. Example: New-PSUAIAgent ` -Model "gpt-6.1-sol" ` -ModelParameter @{ reasoning_effort = "none" } or a similar mechanism on the provider level. Benefit This would allow PowerShell Universal users to adopt newer OpenAI models immediately and avoid compatibility issues caused by hard-coded assumptions around the Chat Completions API and fixed model parameters.

1

39

1

avatar

Adam Driscoll

avatar

realslacker

Correct Documentation for Permissions

The documentation for the permissions page suggests that you can create folder permissions, however the UI elements mentioned don't exist. I have been able to grant permissions to a Folder by manually manipulating the Permissions table in the database, and it works as expected. I think it would be useful to allow string entry from the Security > Permissions page instead of a drop down for the resource. Additionally, since Schedules can be put into "folders" it would be nice if we could grant permissions to the folder in the Schedules area. We would love to be able to delegate access to a subset of Schedules to a team. I'm running 2026.2.5, but this appeared to still be an issue when I was running 2026.3.1

1

62

5

avatar

Adam Driscoll

avatar

mshepard70

Document the branding features with examples

There are dozens of branding settings, but no examples. Lots of different parameters but not much for how to use them.

1

35

1

avatar

Adam Driscoll

avatar

dylegrand

Improve OpenAPI / Swagger Support for Enums and Context-Aware Required Parameters

Hello, I would like to propose two enhancements that would significantly improve the developer experience and the quality of generated OpenAPI specifications. 1 Support Enumeration Values in OpenAPI / Swagger Current Behavior When defining an API input model, it is currently difficult or impossible to expose a list of allowed values as an OpenAPI enum. For example: enum ActionType { ADD REMOVE } [Documentation()] class GroupMembershipRequest { [ActionType]$Action } Actualy the generated Swagger schema displays: { "action": "string" } 2 Separate Required Parameters by HTTP Method Within the Same Endpoint Current Behavior When documenting an endpoint that supports multiple HTTP methods (for example, GET and POST), the parameters apply to all methods. Would it be possible to have an .INPUTS parameter that is conditional on the method? Thank you in advance.

1

52

1

avatar

Lars Lervik

avatar

Matthew Morrow

Improve MCP output to the llm

json output is better for the llm, this is kind of ugly: [image]

1

36

0

avatar

akapsch

Ability to subscribe to PSU release notifications

It would be nice to get an email with the changes whenever there is a new PSU release, and maybe even have an RSS feed for automated tools to keep track of releases.

1

77

3

avatar

akapsch

avatar

Dynamic66

Public Folder Variables

It would be nice to have some kind of variable or cache availability in published folder files. I know that technically you could just set up an API endpoint, but I still would like it in other ways.

1

59

2

avatar

Dynamic66

avatar

Marco

Extension of the “Max History” Script Setting

Hi, I would like to ask whether it would be possible to extend the “Max History” setting in the script configuration so that it can be specified in days. For example: retain the jobs for a maximum of 30 days before they can be removed. Thank you in advance.

1

43

2

avatar

Marco

avatar

Matthew Morrow

Identities Hook [Cleanup]

i need a button that runs a script that i can use to do user cleanup on ~2300 accounts, since the accounts are in AD i should be able to write a small identity script that can check the users when i click the button. if the hook doesnt exist the button should not be there. or maybe if the button is there the pop up should say 'hook' not configured, would you like me to create a hook for your 'yes/no', then you get a starter hook to do your account look up and and all that nonsense.

1

61

3

avatar

Adam Driscoll

avatar

Matthew Morrow

[any version] Adding administrator is to your identity disables all other roles

Adding a "Role" to a user, should be additive, not 'ONLY', if you want ONLY we need a checkbox in the account that says user can only have these roles, otherwise it needs to be a way to say adding 'Administrator' to x user is an additional role they have.

1

92

5

avatar

Matthew Morrow

avatar

mshepard70

Add a "Restore missing Menus" to admin UI

First of all, I like the new organization of the admin UI. I don't love that dragging a menu item to the favorites area removes it from it's natural habitat. Because, when I delete it from the favorites area, it's not anywhere in the menu anymore. I was shown a non-obvious way to get it back (click and hold on some existing menu item until the search box shows up, then type the name of the missing item in). I'd love a couple of changes: Make the drag to favorites a copy, rather than a move. Add a "reset menus", "restore deleted menu items" or make menu editing a bit more discoverable.

2

56

1

avatar

Adam Driscoll

avatar

Matthew Morrow

New cmdlet to let me send notifications to the admin site bell

i would like to be able to send the admins a notification when something is important to the bell. i need access to all the things that i normally see in the bell notifications.

1

48

1

avatar

Adam Driscoll

avatar

akapsch

Public beta channel

With how many bugs have been in the 2026.3.x releases, I think it would be beneficial to have a public beta channel so releases can be tested and bugs can be identified before being pushed to production.

3

65

1

avatar

Adam Driscoll

avatar

akapsch

Download file from files tab

It would be nice to have the ability to download files from the files tab, as well as being able to select multiple and download them all at the same time.

1

54

1

avatar

Adam Driscoll

avatar

daniel2

Search for word in all scripts

Hi. We often need to find all scripts containing a specific word or phrase, for example all scripts that do "import-module module-x" or that uses "$secret:whatevercredentials". We haven't found any way to do this in PSU, so our current workaround is to start a NP++ directly on the server and do a "Find in files" on the repository folder. This works well, but being able to do this directly in the PSU interface of course would be much better. Would that be possible to implement? /Daniel

2

41

1

avatar

Adam Driscoll

avatar

Matthew Morrow

Add copilot docs to wire up a PAT for github api access

Update doc: https://docs.github.com/en/rest?apiVersion=2026-03-10 With things from here: https://github.com/settings/personal-access-tokens https://docs.github.com/en/rest?apiVersion=2026-03-10 To walk through a github copilot api setup, i guess it would be in the 'custom' category, but a copilot category might be better so we do not have to guess what the URL's and other values are.

1

85

3

avatar

Adam Driscoll

avatar

Adam Driscoll

Implemented

Improved Terminal Experience in Admin Console

Both the terminals and admin terminal in PSU do not behave like a standard terminal outside of PSU. Often features like backspace or up\down errors do not do what is expected. We should evaluate the highest value behaviors and get them implemented properly. Publishing here based on suggestions from Discord.

2

63

0

avatar

Matthew Morrow

Roles Filterable/sortable

in /identities it would be nice to have a way to see all the users maybe and filter having the ability to filter/search/sort by role would be better than clicking through 23 pages of 100 users to find who is using what role.

2

63

2

avatar

Adam Driscoll

avatar

silentkillzr

Monitoring Externally

I see there are some performance counters available and application insights which is great. Haven't played with that but I'd like to see some integration available for monitoring tools such as Zabbix or PRTG, snmp, http agent? in the mean time ill look into this swagger api documentation, maybe i can just build some templates myself.

1

54

1

avatar

Adam Driscoll

avatar

Marco

XLSX Export Options - New-UDTable

Hello everyone, I have a feature request regarding the export functionality of new-udtable. The PSU app already allows users to filter and sort columns. Would it be possible to export the data exactly as it is displayed in the app? Additionally, it would be great if the following options could be enabled when exporting: AutoFilter AutoSize FreezeTopRow

1

48

1

avatar

Adam Driscoll

avatar

clemaire

Request: A public, read-only, version-aware docs MCP

Hello, I'm a huge fan of Microsoft Learn's MCP and would love a public, read-only, version-aware MCP server for PowerShell Universal documentatio too. I created one for dbatools at https://dbatools.io/mcp/ and it's been surprisingly effective (tho i dont version yet) I realize PSU has MCP support built in now too, but that seems more oriented toward understanding and interacting with a running PSU instance than serving the documentation itself. (Maybe I'm wrong?) I also found the GitBook MCP at https://docs.devolutions.net/~gitbook/mcp , but it doesn't appear to support scoping queries to a specific PSU version. Since PSU can change dramatically between versions, version-aware search and page retrieval would be especially useful. Thank you for your consideration.

1

77

1

avatar

Adam Driscoll

avatar

realslacker

Add ability to create "System Identity" tokens using Grant-PSUAppToken

There doesn't seem to be a parameter for "System" yet, and using the API directly I can't seem to create a system identity or token at all.

1

58

1

avatar

Adam Driscoll

avatar

callidus2000

Cross-Server AI Tool and MCP Integration for AI Agents

Enable AI Agents to Access AI Tools and MCP Servers Across Multiple PowerShell Universal Instances Currently, AI Agents in PowerShell Universal can only use AI Tools that are available on their local PSU instance. This limitation makes it difficult to build AI-driven workflows that span multiple specialized PSU environments. I would like to request support for cross-server AI Tool discovery and execution , preferably by allowing AI Agents to consume MCP (Model Context Protocol) servers from other PowerShell Universal instances. Proposed Solution Allow administrators to register remote MCP servers and/or remote AI Tool providers from other PSU instances and expose them to local AI Agents as if they were native tools. Possible implementation options: Register one or more remote MCP servers per PSU instance. Allow AI Agents to access tools published by trusted remote MCP servers. Support authentication, authorization, and tool scoping for remote resources. Provide the option to selectively expose AI Tools across PSU environments. Example Use Case We operate two dedicated PowerShell Universal environments: FW-PSU : Firewall management and firewall-related automation SM-PSU : Service management and service request processing A typical workflow involves service requests for new firewall rules. Today, the process looks like this: An AI Agent runs on SM-PSU . The agent uses a local AI Tool to extract IP addresses and FQDNs from the service request. The agent invokes another local AI Tool that calls a custom API exposed by FW-PSU . That API determines the corresponding firewall objects and returns the results. The agent then uses another local AI Tool to generate comments or enrich the service request. This requires additional custom API endpoints solely to bridge the gap between the two PSU environments. Expected Benefit If MCP servers from multiple PSU instances could be connected and made available to AI Agents, the agent on SM-PSU could directly use firewall-related tools hosted on FW-PSU . Benefits include: Reduced integration complexity Elimination of custom API bridge endpoints Better separation of responsibilities between PSU instances Improved reuse of existing AI Tools Faster implementation of cross-domain AI workflows More scalable architecture for organizations operating multiple PSU environments Example Instead of: SM Agent → Local Tool → Custom FW API → FW Logic → Local Tool The workflow could become: SM Agent → Remote FW MCP Tool → Result This would provide a cleaner and more maintainable architecture while leveraging the existing MCP ecosystem and AI Tool framework within PowerShell Universal. Business Value Organizations often deploy multiple PowerShell Universal instances that are responsible for different operational domains such as Service Management, Identity Management, Firewall Management, Cloud Operations, or Infrastructure Automation. Enabling AI Agents to consume remote MCP servers and AI Tools would significantly improve interoperability between these environments and reduce the need for custom integration layers.

1

84

1

avatar

Adam Driscoll

1 - 25 of 86 items