itential-mcp 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. itential_mcp-0.1.0/.github/workflows/premerge.yaml +30 -0
  2. itential_mcp-0.1.0/.github/workflows/release.yaml +45 -0
  3. itential_mcp-0.1.0/.gitignore +19 -0
  4. itential_mcp-0.1.0/.python-version +1 -0
  5. itential_mcp-0.1.0/CODEOWNERS +2 -0
  6. itential_mcp-0.1.0/CODE_OF_CONDUCT.md +56 -0
  7. itential_mcp-0.1.0/Containerfile +40 -0
  8. itential_mcp-0.1.0/LICENSE +674 -0
  9. itential_mcp-0.1.0/Makefile +62 -0
  10. itential_mcp-0.1.0/PKG-INFO +215 -0
  11. itential_mcp-0.1.0/README.md +192 -0
  12. itential_mcp-0.1.0/pyproject.toml +74 -0
  13. itential_mcp-0.1.0/src/itential_mcp/__init__.py +10 -0
  14. itential_mcp-0.1.0/src/itential_mcp/__main__.py +9 -0
  15. itential_mcp-0.1.0/src/itential_mcp/cli.py +162 -0
  16. itential_mcp-0.1.0/src/itential_mcp/client.py +182 -0
  17. itential_mcp-0.1.0/src/itential_mcp/config.py +37 -0
  18. itential_mcp-0.1.0/src/itential_mcp/env.py +39 -0
  19. itential_mcp-0.1.0/src/itential_mcp/response.py +54 -0
  20. itential_mcp-0.1.0/src/itential_mcp/server.py +166 -0
  21. itential_mcp-0.1.0/src/itential_mcp/stringutils.py +73 -0
  22. itential_mcp-0.1.0/src/itential_mcp/tools/compliance_reports.py +32 -0
  23. itential_mcp-0.1.0/src/itential_mcp/tools/devices.py +60 -0
  24. itential_mcp-0.1.0/src/itential_mcp/tools/jobs.py +31 -0
  25. itential_mcp-0.1.0/src/itential_mcp/tools/system.py +55 -0
  26. itential_mcp-0.1.0/src/itential_mcp/tools/triggers.py +57 -0
  27. itential_mcp-0.1.0/src/itential_mcp/tools/wfe.py +100 -0
  28. itential_mcp-0.1.0/src/itential_mcp/tools/workflows.py +213 -0
  29. itential_mcp-0.1.0/tests/test_cli.py +72 -0
  30. itential_mcp-0.1.0/tests/test_client.py +76 -0
  31. itential_mcp-0.1.0/tests/test_config.py +59 -0
  32. itential_mcp-0.1.0/tests/test_env.py +63 -0
  33. itential_mcp-0.1.0/tests/test_response.py +37 -0
  34. itential_mcp-0.1.0/tests/test_server.py +60 -0
  35. itential_mcp-0.1.0/tests/test_stringutils.py +63 -0
  36. itential_mcp-0.1.0/uv.lock +804 -0
@@ -0,0 +1,30 @@
1
+ # .github/workflows/premerge.yml
2
+ ---
3
+ name: Run pre merge pipeline
4
+
5
+ on:
6
+ pull_request:
7
+ branches:
8
+ - devel
9
+
10
+ jobs:
11
+ test:
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - name: Checkout repository
16
+ uses: actions/checkout@v4
17
+
18
+ - name: Set up Python
19
+ uses: actions/setup-python@v5
20
+ with:
21
+ python-version: '3.x' # You can specify an exact version like '3.11'
22
+
23
+ - name: Install uv
24
+ uses: astral-sh/setup-uv@v5
25
+
26
+ - name: Install the project
27
+ run: uv sync --all-extras --dev
28
+
29
+ - name: Run the permerge target
30
+ run: make premerge
@@ -0,0 +1,45 @@
1
+ # .github/workflows/release.yml
2
+ # This workflow will create a new release and upload it to PyPI. It will run
3
+ # whenever a new tag is merged into the repository. It builds the application
4
+ # and pushes it to PyPI.
5
+ ---
6
+ name: Deploy package to PyPI
7
+
8
+ on:
9
+ push:
10
+ tags:
11
+ - 'v*'
12
+
13
+ permissions:
14
+ contents: write
15
+
16
+ jobs:
17
+ build:
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+
22
+ - name: Set up Python
23
+ uses: actions/setup-python@v5
24
+ with:
25
+ python-version: '3.11'
26
+
27
+ - name: Install uv
28
+ uses: astral-sh/setup-uv@v5
29
+
30
+ - name: Install the project
31
+ run: uv sync --all-extras --dev
32
+
33
+ - name: Install tools
34
+ run: uv run pip install build twine
35
+
36
+ - name: Build package
37
+ run: uv run python -m build
38
+
39
+ - name: Publish to PyPI or TestPyPI
40
+ env:
41
+ TWINE_USERNAME: __token__
42
+ TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
43
+ run: |
44
+ echo "Publishing to PyPI..."
45
+ twine upload dist/*
@@ -0,0 +1,19 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+ coverage.*
9
+ htmlcov/
10
+ .pytest_cache/
11
+ .coverage
12
+
13
+ # Virtual environments
14
+ .venv
15
+
16
+ # dotenv
17
+ .env
18
+
19
+
@@ -0,0 +1 @@
1
+ 3.10
@@ -0,0 +1,2 @@
1
+ # Global owners for the whole repository
2
+ * @itential/mcp-committers
@@ -0,0 +1,56 @@
1
+ # Open Source Code of Conduct
2
+
3
+ ## Purpose
4
+
5
+ This Code of Conduct sets expectations for behavior in our open source community. It ensures a respectful, safe, and inclusive environment for contributors, maintainers, users, and newcomers—regardless of background, skill level, or personal identity.
6
+
7
+ Open source thrives when everyone can contribute without harassment, discrimination, or toxicity. If you're here to collaborate, you're expected to follow this.
8
+
9
+ ## Expected Behavior
10
+
11
+ We expect all contributors to:
12
+
13
+ - **Be respectful**: Value different perspectives. Disagree without personal attacks.
14
+ - **Be constructive**: Critique code and ideas, not people. If something’s broken, propose a fix.
15
+ - **Be inclusive**: Welcome beginners, mentor others, and use inclusive language.
16
+ - **Take responsibility**: Own your mistakes, learn from feedback, and help improve the project.
17
+ - **Communicate clearly**: Write good issues, PRs, and commit messages. Default to transparency.
18
+
19
+ ## Unacceptable Behavior
20
+
21
+ These are **not tolerated**:
22
+
23
+ - Hate speech, slurs, or discriminatory jokes.
24
+ - Harassment, intimidation, or sustained disruption.
25
+ - Doxxing or sharing private information without consent.
26
+ - Trolling, flame wars, or intentionally derailing conversations.
27
+ - “Gatekeeping” or belittling others based on experience, tools, or tech stack.
28
+
29
+ ## Enforcement
30
+
31
+ Violations will be handled promptly and decisively:
32
+
33
+ - Minor incidents may result in a warning.
34
+ - Repeated or severe behavior can lead to bans from the project (GitHub issues, PRs, Slack/Discord, etc.).
35
+ - Reports will be reviewed by the maintainers or a designated moderation team.
36
+
37
+ ## Reporting
38
+
39
+ If you experience or witness a violation, **speak up**:
40
+
41
+ - Email: opensource@itential.com
42
+ - Or DM a maintainer in private on our official chat
43
+
44
+ All reports are confidential. Retaliation against reporters **will not be tolerated**.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies in all project spaces, including:
49
+
50
+ - GitHub issues and PRs
51
+ - Community forums, chats, and meetings
52
+ - Social media when representing the project
53
+
54
+ ## Attribution
55
+
56
+ This code is based on the [Contributor Covenant](https://www.contributor-covenant.org), with pragmatic additions tailored for modern open source development.
@@ -0,0 +1,40 @@
1
+ # Copyright (c) 2025 Itential, Inc
2
+ # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
3
+
4
+ # Create the builder container
5
+ FROM ghcr.io/astral-sh/uv:python3.10-bookworm-slim AS builder
6
+
7
+ # Install the project into `/app`
8
+ WORKDIR /app
9
+
10
+ # Enable bytecode compilation
11
+ ENV UV_COMPILE_BYTECODE=1
12
+
13
+ # Copy from the cache instead of linking since it's a mounted volume
14
+ ENV UV_LINK_MODE=copy
15
+
16
+ COPY pyproject.toml .
17
+ COPY README.md .
18
+
19
+ # Generate uv lock file
20
+ RUN uv lock
21
+
22
+ # Install the project's dependencies using the lockfile
23
+ RUN uv sync --frozen --no-install-project --no-dev --no-editable
24
+
25
+ # Then, add the rest of the project source code and install it
26
+ ADD . /app
27
+ RUN uv sync --frozen --no-dev --no-editable
28
+
29
+ # Create the final container with the application installed
30
+ FROM python:3.10-slim
31
+
32
+ WORKDIR /app
33
+
34
+ #COPY --from=builder --chown=app:app /app/.venv /app/.venv
35
+ COPY --from=builder /app/.venv /app/.venv
36
+
37
+ # Place executables in the environment at the front of the path
38
+ ENV PATH="/app/.venv/bin:$PATH"
39
+
40
+ ENTRYPOINT ["itential-mcp"]