Skip to content

Commit 44a209d

Browse files
authored
Merge pull request #1 from netwrix/uv-shebang
Use uv for DXT flow
2 parents f7ecc0d + 568734e commit 44a209d

File tree

10 files changed

+64
-49
lines changed

10 files changed

+64
-49
lines changed

.dxtignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
__pycache__/
2+
.claude/
3+
.ruff_cache/
4+
.venv/
5+
build/
6+
lib/
7+
scripts/
8+
*.egg-info/

README.md

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
# Netwrix Privilege Secure MCP Server
2-
The Netwrix Privilege Secure MCP Server is a [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) server that provides seamless integration with Netwrix Privilege Secure (NPS), enabling AI agents to monitor and manage privileged access across your environment.
2+
3+
This [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) server enables AI assistants to interface directly with Netwrix Privilege Secure (NPS), enhancing your organization's Privileged Access Management (PAM) capabilities.
34

45
## Use Cases
5-
- Monitor active privileged sessions and view live screenshots
6-
- Search command history to identify suspicious activity
7-
- Identify administrators with outdated passwords
8-
- Track managed credentials that require rotation
9-
- Automate security audits and compliance reporting
6+
- **Real-time Monitoring:** View active privileged sessions with live screenshots
7+
- **Security Investigation:** Search command history to identify suspicious activity
8+
- **Credential Management:** Identify outdated passwords and credentials needing rotation
109

1110
## Tools
1211

1312
### Session Monitoring
13+
1414
- **get_active_sessions** - Get active activity sessions
1515

1616
- **get_active_session_image** - Get a live image for an active session
@@ -20,13 +20,15 @@ The Netwrix Privilege Secure MCP Server is a [Model Context Protocol (MCP)](http
2020
- `search_term`: Term to search for in command history (string, required)
2121

2222
### Credential Management
23+
2324
- **get_admin_credentials_older_than** - Find administrators with outdated passwords
2425
- `days`: Password age threshold in days (number, required)
2526

2627
- **get_managed_credentials_older_than** - Find managed passwords that need rotation
2728
- `days`: Password age threshold in days (number, required)
2829

2930
### Event Search
31+
3032
- **get_events_from_server** - Find latest 10 events that contain the search text
3133
- `search_text`: Text to search for (str, required)
3234

@@ -35,37 +37,42 @@ The Netwrix Privilege Secure MCP Server is a [Model Context Protocol (MCP)](http
3537

3638
## Installation
3739

38-
Clone the repository:
40+
Prequisites:
41+
42+
- Install [uv](https://docs.astral.sh/uv/getting-started/installation/), a Python project manager
43+
44+
- Clone the repository (or download it as a zip)
45+
46+
To clone the repository:
3947
```bash
4048
git clone https://github.com/netwrix/mcp-server-nps.git
4149
```
4250

4351
### Install in Claude Desktop via Desktop Extensions
4452

45-
**Requirements:** Python 3.12+ installed
46-
47-
- File -> Settings -> Extensions -> Advanced settings -> Install Extension...
48-
- Select the `mcp-server-nps.dxt` file to upload
49-
- Fill out required fields and select Install
53+
- Navigate `File -> Settings -> Extensions -> Advanced settings -> Install Extension...`
54+
- Select the `mcp-server-nps.dxt` file to upload (found in releases)
55+
- Fill out the required fields, select Install and Enable
5056

5157
### Install in Claude Desktop via Configuration File
5258

53-
**Requirements:** uv installed
54-
55-
- File -> Settings -> Developer -> Edit Config
59+
- Navigate `File -> Settings -> Developer -> Edit Config`
5660

5761
Open the `claude_desktop_config.json` file and add the following:
5862

5963
```json
6064
{
6165
"mcpServers": {
6266
"mcp-server-nps": {
63-
"command": "uv",
64-
"args": ["path/to/src/mcp_server_nps/server.py"],
67+
"command": "uv",
68+
"args": [
69+
"run",
70+
"path/to/src/mcp_server_nps/server.py"
71+
],
6572
"env": {
6673
"NPS_URL": "https://example.com",
67-
"NPS_USERNAME": "my_username",
68-
"NPS_PASSWORD": "mypassword"
74+
"NPS_USERNAME": "your_nps_username",
75+
"NPS_PASSWORD": "your_nps_password"
6976
}
7077
}
7178
}
@@ -78,6 +85,6 @@ Then, restart Claude Desktop.
7885

7986
This project is licensed under the terms of the MIT open source license. Please refer to [MIT](./LICENSE) for the full terms.
8087

81-
## Questions & Support
88+
## Connect with Us
8289

83-
If you need help using this MCP server or understanding your results, just visit the [Netwrix Community](https://community.netwrix.com/) - we’re here to help!
90+
If you need help using this MCP server, want to better understand your results, or would like to share feedback, visit the [Netwrix Community](https://community.netwrix.com/) - we’re here to help and eager to hear about your experience!

manifest.json

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,36 @@
44
"version": "0.1.0",
55
"display_name": "Netwrix Privilege Secure MCP Server",
66
"description": "Monitor privileged sessions, search history, manage credentials, and track security events",
7-
"long_description": "This MCP server provides an integration with Netwrix Privilege Secure. It enables AI assistants to monitor active privileged sessions in real-time while searching command history and metadata from past sessions. Security teams can identify credentials that need rotation based on age and retrieve live session screenshots for enhanced monitoring. The system supports querying security events and audit logs as well as checking system version.",
7+
"long_description": "This MCP server provides an integration with Netwrix Privilege Secure, enhancing your Privileged Access Management (PAM) capabilities. It enables AI assistants to monitor active privileged sessions with live screenshots, search command history to identify suspicious activity, and detect credentials requiring rotation.",
88
"author": {
99
"name": "Netwrix Corporation"
1010
},
1111
"keywords": [
1212
"netwrix",
1313
"security",
1414
"privilege",
15+
"access",
16+
"management",
1517
"monitoring"
1618
],
1719
"license": "MIT",
1820
"icon": "assets/icon.png",
1921
"server": {
2022
"type": "python",
21-
"entry_point": "src/mcp_server_nps/server.py",
23+
"entry_point": "server.py",
2224
"mcp_config": {
23-
"command": "python",
25+
"command": "uv",
2426
"args": [
25-
"${__dirname}/src/mcp_server_nps/server.py"
27+
"run",
28+
"--directory",
29+
"${__dirname}",
30+
"python",
31+
"${__dirname}/server.py"
2632
],
2733
"env": {
28-
"PYTHONPATH": "${__dirname}/lib",
2934
"NPS_URL": "${user_config.nps_url}",
3035
"NPS_USERNAME": "${user_config.nps_username}",
31-
"NPS_PASSWORD": "${user_config.nps_password}",
32-
"NPS_VERIFY_TRUST": "false"
36+
"NPS_PASSWORD": "${user_config.nps_password}"
3337
}
3438
}
3539
},

mcp-server-nps.dxt

-40.4 MB
Binary file not shown.
File renamed without changes.
File renamed without changes.

pyproject.toml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,3 @@ select = [
3434
"SIM", # flake8-simplify
3535
"I", # isort
3636
]
37-
38-
[tool.uv]
39-
package = true

scripts/Bundle-DXT.ps1

Lines changed: 0 additions & 6 deletions
This file was deleted.
File renamed without changes.

uv.lock

Lines changed: 17 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)