x=hub

your toolset

    build deployment
    sign in

    PnP PowerShell

    mcpother
    io.github.pnp/pnp-powershell-mcp-server · v0.1.7-beta
    deploy just this

    Manage Microsoft 365 in natural language with PnP PowerShell and author PnP PowerShell scripts.

    run it

    on your own machines, one way per deploy method
    generated from the record, not tested yet
    #!/usr/bin/env bash
    # pnp-powershell (io.github.pnp/pnp-powershell-mcp-server), recipe baremetal (generated).
    # Generated by Hub for toolset "my-agent"; started by mcp-my-agent-pnp-powershell.service.
    set -euo pipefail
    export HOST=127.0.0.1 PORT=8101
    exec uvx mcp-proxy --host 127.0.0.1 --port 8101 --pass-environment -- dnx [email protected] --yes
    
    [Unit]
    Description=MCP server pnp-powershell (toolset my-agent), generated by Hub
    After=network-online.target
    Wants=network-online.target
    
    [Service]
    Type=simple
    User=mcp
    Group=mcp
    EnvironmentFile=/etc/mcp/my-agent.env
    Environment=HOME=/var/lib/mcp/pnp-powershell
    WorkingDirectory=/var/lib/mcp/pnp-powershell
    ExecStart=/opt/mcp/my-agent/bin/pnp-powershell.sh
    Restart=on-failure
    RestartSec=5
    NoNewPrivileges=true
    ProtectSystem=strict
    ProtectHome=true
    PrivateTmp=true
    ReadWritePaths=/var/lib/mcp/pnp-powershell
    
    [Install]
    WantedBy=multi-user.target
    

    connect to it

    copy what your client needs
    dnx [email protected] --yes
    # env: PNP_MCP_READONLY, PNP_MCP_ALLOW_SETUP
    {
      "mcpServers": {
        "pnp-powershell": {
          "command": "dnx",
          "args": [
            "[email protected]",
            "--yes"
          ],
          "env": {
            "PNP_MCP_READONLY": "${PNP_MCP_READONLY}",
            "PNP_MCP_ALLOW_SETUP": "${PNP_MCP_ALLOW_SETUP}"
          }
        }
      }
    }
    #!/usr/bin/env bash
    # Registers every server with Claude Code (run once; `claude mcp list` to check).
    set -euo pipefail
    set -a; [ -f .env ] && source .env; set +a
    claude mcp add pnp-powershell -e "PNP_MCP_READONLY=${PNP_MCP_READONLY}" -e "PNP_MCP_ALLOW_SETUP=${PNP_MCP_ALLOW_SETUP}" -- dnx [email protected] --yes
    
    {
      "mcpServers": {
        "pnp-powershell": {
          "command": "dnx",
          "args": [
            "[email protected]",
            "--yes"
          ],
          "env": {
            "PNP_MCP_READONLY": "${PNP_MCP_READONLY}",
            "PNP_MCP_ALLOW_SETUP": "${PNP_MCP_ALLOW_SETUP}"
          }
        }
      }
    }
    {
      "servers": {
        "pnp-powershell": {
          "type": "stdio",
          "command": "dnx",
          "args": [
            "[email protected]",
            "--yes"
          ],
          "env": {
            "PNP_MCP_READONLY": "${PNP_MCP_READONLY}",
            "PNP_MCP_ALLOW_SETUP": "${PNP_MCP_ALLOW_SETUP}"
          }
        }
      }
    }
    name: my-agent
    target: local
    servers:
    - hub: io.github.pnp/pnp-powershell-mcp-server
    
    • not probed yet: tools unpinned, ingest lists them

    tools

    Not probed yetThe tools appear once the hub or its worker has listed this entry. Running it still works: your client lists them on first start.