Skip to content

πŸ€– Add Comprehensive AI Agent Friendly CLI Support #221

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 90 additions & 0 deletions .github/workflows/generate-llm-txt.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: Generate LLM.txt

on:
# Trigger on releases
release:
types: [published]

# Trigger on pushes to main branch
push:
branches: [main]
paths:
- 'src/mcpm/commands/**'
- 'src/mcpm/cli.py'
- 'scripts/generate_llm_txt.py'

# Allow manual trigger
workflow_dispatch:

jobs:
generate-llm-txt:
runs-on: ubuntu-latest

Comment on lines +19 to +22
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Add explicit permissions block for security.

Add minimal required permissions for the workflow to follow security best practices.

 jobs:
   generate-llm-txt:
     runs-on: ubuntu-latest
+    permissions:
+      contents: write
+      pull-requests: write
     
     steps:
πŸ“ Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
jobs:
generate-llm-txt:
runs-on: ubuntu-latest
jobs:
generate-llm-txt:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
🧰 Tools
πŸͺ› YAMLlint (1.37.1)

[error] 22-22: trailing spaces

(trailing-spaces)

πŸ€– Prompt for AI Agents
In .github/workflows/generate-llm-txt.yml around lines 19 to 22, the workflow
lacks an explicit permissions block, which is important for security. Add a
permissions section specifying only the minimal required permissions for the job
to run, such as read or write access to specific GitHub features, to adhere to
security best practices.

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0

- name: Set up Python
uses: actions/setup-python@v4
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Update GitHub Actions to latest versions.

The static analysis indicates these actions are outdated. Update to the latest versions for better security and compatibility.

-      uses: actions/setup-python@v4
+      uses: actions/setup-python@v5
-      uses: peter-evans/create-pull-request@v5
+      uses: peter-evans/create-pull-request@v6

Also applies to: 66-66

🧰 Tools
πŸͺ› actionlint (1.7.7)

31-31: the runner of "actions/setup-python@v4" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

πŸ€– Prompt for AI Agents
In .github/workflows/generate-llm-txt.yml at line 31 and also line 66, the
GitHub Actions versions used are outdated. Update the version tags for
actions/setup-python and any other actions at these lines to their latest stable
versions to improve security and compatibility.

with:
python-version: '3.11'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .

- name: Generate llm.txt
run: |
python scripts/generate_llm_txt.py

- name: Check for changes
id: check_changes
run: |
if git diff --quiet llm.txt; then
echo "no_changes=true" >> $GITHUB_OUTPUT
else
echo "no_changes=false" >> $GITHUB_OUTPUT
fi

- name: Commit and push changes
if: steps.check_changes.outputs.no_changes == 'false'
run: |
git config --local user.email "[email protected]"
git config --local user.name "GitHub Action"
git add llm.txt
git commit -m "docs: update llm.txt for AI agents [skip ci]"
git push
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Create Pull Request (for releases)
if: github.event_name == 'release' && steps.check_changes.outputs.no_changes == 'false'
uses: peter-evans/create-pull-request@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "docs: update llm.txt for release ${{ github.event.release.tag_name }}"
title: "πŸ“š Update llm.txt for AI agents (Release ${{ github.event.release.tag_name }})"
body: |
## πŸ€– Automated llm.txt Update

This PR automatically updates the llm.txt file for AI agents following the release of version ${{ github.event.release.tag_name }}.

### Changes
- Updated command documentation
- Refreshed examples and usage patterns
- Updated version information

### What is llm.txt?
llm.txt is a comprehensive guide for AI agents to understand how to interact with MCPM programmatically. It includes:
- All CLI commands with parameters and examples
- Environment variables for automation
- Best practices for AI agent integration
- Error handling and troubleshooting

This file is automatically generated from the CLI structure using `scripts/generate_llm_txt.py`.
branch: update-llm-txt-${{ github.event.release.tag_name }}
delete-branch: true
Comment on lines +21 to +90

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}

Copilot Autofix

AI 9 days ago

To fix the problem, you should explicitly specify a permissions block in your workflow YAML file. The permissions block can be set either at the root of the workflow (to apply to all jobs by default) or at the job level (to apply only to the specific job). Since your workflow only has one job, you can add the permissions block at either level, but best practice is to set it at the workflow level unless jobs have differing needs.

The minimal permissions required for this workflow include:

  • contents: write β€” needed for committing and pushing changes to the repository.
  • pull-requests: write β€” needed for creating pull requests via the peter-evans/create-pull-request action.

Therefore, at the top of the file (below name: and before on:), add:

permissions:
  contents: write
  pull-requests: write

No other sections, imports, or definitions are required.


Suggested changeset 1
.github/workflows/generate-llm-txt.yml

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/.github/workflows/generate-llm-txt.yml b/.github/workflows/generate-llm-txt.yml
--- a/.github/workflows/generate-llm-txt.yml
+++ b/.github/workflows/generate-llm-txt.yml
@@ -1,5 +1,9 @@
 name: Generate LLM.txt
 
+permissions:
+  contents: write
+  pull-requests: write
+
 on:
   # Trigger on releases
   release:
EOF
@@ -1,5 +1,9 @@
name: Generate LLM.txt

permissions:
contents: write
pull-requests: write

on:
# Trigger on releases
release:
Copilot is powered by AI and may make mistakes. Always verify output.
Loading