github-agent 2.4.14__tar.gz → 2.5.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 (159) hide show
  1. {github_agent-2.4.14 → github_agent-2.5.0}/PKG-INFO +6 -46
  2. {github_agent-2.4.14 → github_agent-2.5.0}/README.md +4 -44
  3. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/api/api_client_dependabot.py +2 -0
  4. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/api/api_client_orgs.py +4 -4
  5. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/api/api_client_pages.py +2 -2
  6. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/api/api_client_pulls.py +2 -0
  7. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/auth.py +0 -10
  8. github_agent-2.5.0/github_agent/connector_contracts.py +1191 -0
  9. github_agent-2.5.0/github_agent/mcp/__init__.py +1 -0
  10. github_agent-2.5.0/github_agent/mcp_server.py +439 -0
  11. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/ontology/certification.json +4 -4
  12. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/ontology/github.ttl +12 -10
  13. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/ontology/mappings/source.yaml +1 -2
  14. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/ontology/shapes/connector.shacl.ttl +2 -2
  15. github_agent-2.5.0/github_agent/prompts/github-mcp-operator.json +347 -0
  16. github_agent-2.5.0/github_agent/prompts/github-mcp-release-manager.json +203 -0
  17. github_agent-2.5.0/github_agent/prompts/github-mcp-repository-administrator.json +171 -0
  18. github_agent-2.5.0/github_agent/prompts/github-mcp-triage-lead.json +147 -0
  19. github_agent-2.5.0/github_agent/skills/github-actions-ci-review/SKILL.md +42 -0
  20. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/skills/github-agent-development/SKILL.md +1 -2
  21. github_agent-2.5.0/github_agent/skills/github-agent-operations/SKILL.md +61 -0
  22. github_agent-2.5.0/github_agent/skills/github-backlog-planner/SKILL.md +49 -0
  23. github_agent-2.5.0/github_agent/skills/github-ci-failure-sweep/SKILL.md +42 -0
  24. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/skills/github-ci-failure-sweep/scripts/summarize_runs.py +1 -1
  25. github_agent-2.5.0/github_agent/skills/github-dependabot-review/SKILL.md +31 -0
  26. github_agent-2.5.0/github_agent/skills/github-issue-tracking/SKILL.md +38 -0
  27. github_agent-2.5.0/github_agent/skills/github-org-remediation-loop/SKILL.md +67 -0
  28. github_agent-2.5.0/github_agent/skills/github-pr-review-sweep/SKILL.md +55 -0
  29. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/skills/github-pr-review-sweep/scripts/summarize_prs.py +7 -5
  30. github_agent-2.5.0/github_agent/skills/github-project-provisioner/SKILL.md +41 -0
  31. github_agent-2.5.0/github_agent/skills/github-pull-request-create/SKILL.md +35 -0
  32. github_agent-2.5.0/github_agent/skills/github-pull-request-review/SKILL.md +55 -0
  33. github_agent-2.5.0/github_agent/skills/github-repository-management/SKILL.md +69 -0
  34. github_agent-2.5.0/github_agent/skills/github-tools/SKILL.md +52 -0
  35. github_agent-2.5.0/github_agent/skills/github-triage-resolver/SKILL.md +51 -0
  36. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/skills/github-triage-resolver/scripts/classify_safe.py +2 -2
  37. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/skills/github-triage-resolver/scripts/gh_write.py +3 -3
  38. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent.egg-info/PKG-INFO +6 -46
  39. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent.egg-info/SOURCES.txt +6 -36
  40. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent.egg-info/requires.txt +1 -1
  41. {github_agent-2.4.14 → github_agent-2.5.0}/pyproject.toml +2 -2
  42. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_cq_paths.py +1 -1
  43. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_default_content_surfaces.py +2 -0
  44. github_agent-2.5.0/tests/test_destructive_declaration.py +86 -0
  45. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_ontology_parent_link.py +5 -0
  46. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_pages.py +0 -265
  47. github_agent-2.4.14/github_agent/mcp/__init__.py +0 -33
  48. github_agent-2.4.14/github_agent/mcp/mcp_action.py +0 -296
  49. github_agent-2.4.14/github_agent/mcp/mcp_branch.py +0 -153
  50. github_agent-2.4.14/github_agent/mcp/mcp_collaborator.py +0 -125
  51. github_agent-2.4.14/github_agent/mcp/mcp_commit.py +0 -94
  52. github_agent-2.4.14/github_agent/mcp/mcp_content.py +0 -168
  53. github_agent-2.4.14/github_agent/mcp/mcp_dependabot.py +0 -207
  54. github_agent-2.4.14/github_agent/mcp/mcp_issue.py +0 -188
  55. github_agent-2.4.14/github_agent/mcp/mcp_org.py +0 -359
  56. github_agent-2.4.14/github_agent/mcp/mcp_pull.py +0 -353
  57. github_agent-2.4.14/github_agent/mcp/mcp_release.py +0 -171
  58. github_agent-2.4.14/github_agent/mcp/mcp_repo.py +0 -528
  59. github_agent-2.4.14/github_agent/mcp/mcp_search.py +0 -82
  60. github_agent-2.4.14/github_agent/mcp_server.py +0 -3706
  61. github_agent-2.4.14/github_agent/skills/github-actions-ci-review/SKILL.md +0 -93
  62. github_agent-2.4.14/github_agent/skills/github-actions-ci-review/WORKFLOW.md +0 -82
  63. github_agent-2.4.14/github_agent/skills/github-agent-operations/SKILL.md +0 -33
  64. github_agent-2.4.14/github_agent/skills/github-agent-operations/agents/openai.yaml +0 -4
  65. github_agent-2.4.14/github_agent/skills/github-agent-operations/references/catalog.md +0 -17
  66. github_agent-2.4.14/github_agent/skills/github-backlog-planner/SKILL.md +0 -115
  67. github_agent-2.4.14/github_agent/skills/github-backlog-planner/WORKFLOW.md +0 -98
  68. github_agent-2.4.14/github_agent/skills/github-ci-failure-sweep/SKILL.md +0 -111
  69. github_agent-2.4.14/github_agent/skills/github-ci-failure-sweep/WORKFLOW.md +0 -96
  70. github_agent-2.4.14/github_agent/skills/github-ci-failure-sweep/references/actions-tool-cheatsheet.md +0 -60
  71. github_agent-2.4.14/github_agent/skills/github-dependabot-review/SKILL.md +0 -103
  72. github_agent-2.4.14/github_agent/skills/github-dependabot-review/WORKFLOW.md +0 -91
  73. github_agent-2.4.14/github_agent/skills/github-issue-tracking/SKILL.md +0 -95
  74. github_agent-2.4.14/github_agent/skills/github-issue-tracking/WORKFLOW.md +0 -83
  75. github_agent-2.4.14/github_agent/skills/github-org-remediation-loop/SKILL.md +0 -285
  76. github_agent-2.4.14/github_agent/skills/github-org-remediation-loop/WORKFLOW.md +0 -267
  77. github_agent-2.4.14/github_agent/skills/github-pr-review-sweep/SKILL.md +0 -114
  78. github_agent-2.4.14/github_agent/skills/github-pr-review-sweep/WORKFLOW.md +0 -95
  79. github_agent-2.4.14/github_agent/skills/github-pr-review-sweep/references/pulls-tool-cheatsheet.md +0 -42
  80. github_agent-2.4.14/github_agent/skills/github-project-provisioner/SKILL.md +0 -58
  81. github_agent-2.4.14/github_agent/skills/github-project-provisioner/WORKFLOW.md +0 -51
  82. github_agent-2.4.14/github_agent/skills/github-pull-request-create/SKILL.md +0 -81
  83. github_agent-2.4.14/github_agent/skills/github-pull-request-create/WORKFLOW.md +0 -70
  84. github_agent-2.4.14/github_agent/skills/github-pull-request-review/SKILL.md +0 -134
  85. github_agent-2.4.14/github_agent/skills/github-pull-request-review/WORKFLOW.md +0 -121
  86. github_agent-2.4.14/github_agent/skills/github-repository-management/SKILL.md +0 -102
  87. github_agent-2.4.14/github_agent/skills/github-repository-management/WORKFLOW.md +0 -90
  88. github_agent-2.4.14/github_agent/skills/github-tools/SKILL.md +0 -152
  89. github_agent-2.4.14/github_agent/skills/github-tools/WORKFLOW.md +0 -141
  90. github_agent-2.4.14/github_agent/skills/github-triage-resolver/SKILL.md +0 -122
  91. github_agent-2.4.14/github_agent/skills/github-triage-resolver/WORKFLOW.md +0 -99
  92. github_agent-2.4.14/tests/test_action_discovery.py +0 -177
  93. github_agent-2.4.14/tests/test_comment_crud.py +0 -890
  94. github_agent-2.4.14/tests/test_hardening.py +0 -114
  95. github_agent-2.4.14/tests/test_mcp_coverage.py +0 -1343
  96. github_agent-2.4.14/tests/test_mcp_package_dispatch.py +0 -785
  97. github_agent-2.4.14/tests/test_org_crud.py +0 -626
  98. github_agent-2.4.14/tests/test_repo_secrets_characterization.py +0 -198
  99. {github_agent-2.4.14 → github_agent-2.5.0}/LICENSE +0 -0
  100. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/__init__.py +0 -0
  101. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/__main__.py +0 -0
  102. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/api/__init__.py +0 -0
  103. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/api/api_client_base.py +0 -0
  104. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/api/api_client_branches.py +0 -0
  105. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/api/api_client_comments.py +0 -0
  106. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/api/api_client_commits.py +0 -0
  107. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/api/api_client_contents.py +0 -0
  108. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/api/api_client_issues.py +0 -0
  109. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/api/api_client_releases.py +0 -0
  110. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/api/api_client_repos.py +0 -0
  111. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/api/api_client_search.py +0 -0
  112. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/api/api_client_workflows.py +0 -0
  113. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/api_client.py +0 -0
  114. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/connector_sources.py +0 -0
  115. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/connectors/__init__.py +0 -0
  116. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/github_gql.py +0 -0
  117. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/github_http.py +0 -0
  118. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/github_input_models.py +0 -0
  119. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/github_response_models.py +0 -0
  120. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/kg_ingest.py +0 -0
  121. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/mcp_config.json +0 -0
  122. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/ontology/__init__.py +0 -0
  123. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/ontology/fixtures/records.json +0 -0
  124. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/ontology/migrations/manifest.json +0 -0
  125. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/prompts/__init__.py +0 -0
  126. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/skills/__init__.py +0 -0
  127. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/skills/github-backlog-planner/references/addressed-heuristics.md +0 -0
  128. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/skills/github-backlog-planner/scripts/build_plan.py +0 -0
  129. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/skills/github-org-remediation-loop/scripts/classify_fix_risk.py +0 -0
  130. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/skills/github-project-provisioner/scripts/enable_pages.py +0 -0
  131. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/skills/github-tools/code-reviewer.md +0 -0
  132. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/skills/github-tools/scripts/fetch_comments.py +0 -0
  133. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/skills/github-tools/scripts/inspect_pr_checks.py +0 -0
  134. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent/skills/github-triage-resolver/references/resolution-rules.md +0 -0
  135. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent.egg-info/dependency_links.txt +0 -0
  136. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent.egg-info/entry_points.txt +0 -0
  137. {github_agent-2.4.14 → github_agent-2.5.0}/github_agent.egg-info/top_level.txt +0 -0
  138. {github_agent-2.4.14 → github_agent-2.5.0}/setup.cfg +0 -0
  139. {github_agent-2.4.14 → github_agent-2.5.0}/tests/conftest.py +0 -0
  140. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_api_client_endpoints.py +0 -0
  141. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_api_validation.py +0 -0
  142. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_auth_client_edge_cases.py +0 -0
  143. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_fleet_name.py +0 -0
  144. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_github_agent_api_brute_force_coverage.py +0 -0
  145. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_github_agent_brute_force_coverage.py +0 -0
  146. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_github_gql.py +0 -0
  147. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_github_http.py +0 -0
  148. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_ingest_sources.py +0 -0
  149. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_init_dynamics.py +0 -0
  150. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_kg_ingest.py +0 -0
  151. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_model_fields.py +0 -0
  152. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_skill_backlog_build_plan.py +0 -0
  153. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_skill_ci_failure_sweep_summarize_runs.py +0 -0
  154. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_skill_github_tools_fetch_comments.py +0 -0
  155. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_skill_github_tools_inspect_pr_checks.py +0 -0
  156. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_skill_org_remediation_classify_fix_risk.py +0 -0
  157. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_skill_pr_review_sweep_summarize_prs.py +0 -0
  158. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_skill_triage_resolver_classify_safe.py +0 -0
  159. {github_agent-2.4.14 → github_agent-2.5.0}/tests/test_startup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github-agent
3
- Version: 2.4.14
3
+ Version: 2.5.0
4
4
  Summary: GitHub Agent for MCP
5
5
  Author-email: Repository Maintainers <maintainers@knuckles.team>
6
6
  License: MIT
@@ -13,7 +13,7 @@ Requires-Python: >=3.12
13
13
  Description-Content-Type: text/markdown
14
14
  License-File: LICENSE
15
15
  Requires-Dist: requests>=2.34.2
16
- Requires-Dist: scion-sdk[graphql,mcp]<0.7.0,>=0.6.4
16
+ Requires-Dist: scion-sdk[graphql,mcp]<0.11,>=0.10.2
17
17
  Provides-Extra: mcp
18
18
  Provides-Extra: all
19
19
  Provides-Extra: test
@@ -84,29 +84,9 @@ _Auto-generated from the live MCP server — do not edit by hand._
84
84
 
85
85
  <!-- MCP-TOOLS-TABLE:START -->
86
86
 
87
- #### Condensed action-routed tools (`MCP_TOOL_MODE=condensed`)
87
+ Every operation is one typed tool; there are no action-routed tools.
88
88
 
89
- | MCP Tool | Toggle Env Var | Description |
90
- |----------|----------------|-------------|
91
- | `github_actions` | `ACTIONTOOL` | Manage GitHub actions workflows and runs. |
92
- | `github_branches` | `BRANCHTOOL` | Manage GitHub branches. |
93
- | `github_collaborators` | `COLLABORATORTOOL` | Manage repository collaborators. |
94
- | `github_comments` | `COMMENTTOOL` | Manage GitHub issue and pull-request comments. |
95
- | `github_commits` | `COMMITTOOL` | Manage GitHub commits. |
96
- | `github_contents` | `CONTENTTOOL` | Manage GitHub contents. |
97
- | `github_dependabot` | `DEPENDABOTTOOL` | Review and manage GitHub Dependabot vulnerability alerts. |
98
- | `github_discover_graphql_schema` | `GRAPHQLTOOL` | Discover the live GitHub GraphQL schema (types, fields, and attributes) in real-time. |
99
- | `github_graphql` | `GRAPHQLTOOL` | Execute raw GraphQL queries and mutations natively on GitHub. |
100
- | `github_ingest_pipelines` | `INGESTTOOL` | Natively ingest GitHub Actions workflow runs into epistemic-graph. |
101
- | `github_ingest_repos` | `INGESTTOOL` | Natively ingest GitHub repositories into epistemic-graph as typed :Repository nodes. |
102
- | `github_issues` | `ISSUETOOL` | Manage GitHub issues. |
103
- | `github_orgs` | `ORGTOOL` | Manage GitHub organizations. |
104
- | `github_pulls` | `PULLTOOL` | Manage GitHub pull requests and their review/merge lifecycle. |
105
- | `github_releases` | `RELEASETOOL` | Manage repository releases. |
106
- | `github_repos` | `REPOTOOL` | Manage GitHub repositories and their GitHub Pages sites. |
107
- | `github_search` | `SEARCHTOOL` | Search GitHub repositories, issues, or code. |
108
-
109
- #### Verbose 1:1 API-mapped tools (`MCP_TOOL_MODE=verbose` or `both`)
89
+ #### Typed per-operation tools
110
90
 
111
91
  <details>
112
92
  <summary>95 per-operation tools — one per public API method (click to expand)</summary>
@@ -267,7 +247,6 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
267
247
  "COMMITTOOL": "True",
268
248
  "CONTENTTOOL": "True",
269
249
  "DEPENDABOTTOOL": "True",
270
- "GITHUB_ALLOW_DESTRUCTIVE": "False",
271
250
  "GITHUB_HTTP_CONNECT_TIMEOUT": "10",
272
251
  "GITHUB_HTTP_READ_TIMEOUT": "30",
273
252
  "GITHUB_TOKEN": "your_github_token_here",
@@ -318,7 +297,6 @@ own runtime secret boundary.
318
297
  "COMMITTOOL": "True",
319
298
  "CONTENTTOOL": "True",
320
299
  "DEPENDABOTTOOL": "True",
321
- "GITHUB_ALLOW_DESTRUCTIVE": "False",
322
300
  "GITHUB_HTTP_CONNECT_TIMEOUT": "10",
323
301
  "GITHUB_HTTP_READ_TIMEOUT": "30",
324
302
  "GITHUB_TOKEN": "your_github_token_here",
@@ -368,7 +346,6 @@ docker run -i --rm \
368
346
  -e COMMITTOOL=True \
369
347
  -e CONTENTTOOL=True \
370
348
  -e DEPENDABOTTOOL=True \
371
- -e GITHUB_ALLOW_DESTRUCTIVE=False \
372
349
  -e GITHUB_HTTP_CONNECT_TIMEOUT=10 \
373
350
  -e GITHUB_HTTP_READ_TIMEOUT=30 \
374
351
  -e GITHUB_TOKEN=your_github_token_here \
@@ -432,7 +409,6 @@ the detailed transport contract.
432
409
  | `TLS_PROFILE` | `private-ca` | AgentConfig named transport profile |
433
410
  | `TLS_PROFILE_REF` | `secret://transport/provider` | Direct runtime profile reference |
434
411
  | `TLS_PROFILES_REF` | `secret://transport/catalog` | Named runtime profile catalog |
435
- | `GITHUB_ALLOW_DESTRUCTIVE` | `False` | Allow destructive (delete/force) operations |
436
412
  | `GITHUB_HTTP_CONNECT_TIMEOUT` | `10` | HTTP client timeouts (seconds) |
437
413
  | `GITHUB_HTTP_READ_TIMEOUT` | `30` | |
438
414
  | `DEBUG` | `False` | |
@@ -498,24 +474,8 @@ Every variable the server reads.
498
474
  | `DEBUG` | Verbose logging | `False` |
499
475
  | `PYTHONUNBUFFERED` | Unbuffered stdout (recommended in containers) | `1` |
500
476
 
501
- ### Tool toggles
502
- Each action-routed tool can be disabled individually via its toggle env var (set to `false`).
503
- The full list is in the [Available MCP Tools](#available-mcp-tools) table above.
504
-
505
- | Variable | Tool | Default |
506
- |----------|------|---------|
507
- | `ACTIONTOOL` | `github_actions` — Actions workflows and runs | `True` |
508
- | `BRANCHTOOL` | `github_branches` — branches | `True` |
509
- | `COLLABORATORTOOL` | `github_collaborators` — repository collaborators | `True` |
510
- | `COMMITTOOL` | `github_commits` — commits | `True` |
511
- | `CONTENTTOOL` | `github_contents` — file contents | `True` |
512
- | `INGESTTOOL` | `github_ingest_repos` — KG repository ingestion | `True` |
513
- | `ISSUETOOL` | `github_issues` — issues | `True` |
514
- | `ORGTOOL` | `github_orgs` — organizations | `True` |
515
- | `PULLTOOL` | `github_pulls` — pull requests | `True` |
516
- | `RELEASETOOL` | `github_releases` — releases | `True` |
517
- | `REPOTOOL` | `github_repos` — repositories and Pages sites | `True` |
518
- | `SEARCHTOOL` | `github_search` — search repositories, issues, code | `True` |
477
+ ### Tool surface
478
+ The tool surface is the typed per-operation tools; there are no per-domain toggles.
519
479
 
520
480
  ### Telemetry & governance
521
481
  | Variable | Description | Default |
@@ -60,29 +60,9 @@ _Auto-generated from the live MCP server — do not edit by hand._
60
60
 
61
61
  <!-- MCP-TOOLS-TABLE:START -->
62
62
 
63
- #### Condensed action-routed tools (`MCP_TOOL_MODE=condensed`)
63
+ Every operation is one typed tool; there are no action-routed tools.
64
64
 
65
- | MCP Tool | Toggle Env Var | Description |
66
- |----------|----------------|-------------|
67
- | `github_actions` | `ACTIONTOOL` | Manage GitHub actions workflows and runs. |
68
- | `github_branches` | `BRANCHTOOL` | Manage GitHub branches. |
69
- | `github_collaborators` | `COLLABORATORTOOL` | Manage repository collaborators. |
70
- | `github_comments` | `COMMENTTOOL` | Manage GitHub issue and pull-request comments. |
71
- | `github_commits` | `COMMITTOOL` | Manage GitHub commits. |
72
- | `github_contents` | `CONTENTTOOL` | Manage GitHub contents. |
73
- | `github_dependabot` | `DEPENDABOTTOOL` | Review and manage GitHub Dependabot vulnerability alerts. |
74
- | `github_discover_graphql_schema` | `GRAPHQLTOOL` | Discover the live GitHub GraphQL schema (types, fields, and attributes) in real-time. |
75
- | `github_graphql` | `GRAPHQLTOOL` | Execute raw GraphQL queries and mutations natively on GitHub. |
76
- | `github_ingest_pipelines` | `INGESTTOOL` | Natively ingest GitHub Actions workflow runs into epistemic-graph. |
77
- | `github_ingest_repos` | `INGESTTOOL` | Natively ingest GitHub repositories into epistemic-graph as typed :Repository nodes. |
78
- | `github_issues` | `ISSUETOOL` | Manage GitHub issues. |
79
- | `github_orgs` | `ORGTOOL` | Manage GitHub organizations. |
80
- | `github_pulls` | `PULLTOOL` | Manage GitHub pull requests and their review/merge lifecycle. |
81
- | `github_releases` | `RELEASETOOL` | Manage repository releases. |
82
- | `github_repos` | `REPOTOOL` | Manage GitHub repositories and their GitHub Pages sites. |
83
- | `github_search` | `SEARCHTOOL` | Search GitHub repositories, issues, or code. |
84
-
85
- #### Verbose 1:1 API-mapped tools (`MCP_TOOL_MODE=verbose` or `both`)
65
+ #### Typed per-operation tools
86
66
 
87
67
  <details>
88
68
  <summary>95 per-operation tools — one per public API method (click to expand)</summary>
@@ -243,7 +223,6 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
243
223
  "COMMITTOOL": "True",
244
224
  "CONTENTTOOL": "True",
245
225
  "DEPENDABOTTOOL": "True",
246
- "GITHUB_ALLOW_DESTRUCTIVE": "False",
247
226
  "GITHUB_HTTP_CONNECT_TIMEOUT": "10",
248
227
  "GITHUB_HTTP_READ_TIMEOUT": "30",
249
228
  "GITHUB_TOKEN": "your_github_token_here",
@@ -294,7 +273,6 @@ own runtime secret boundary.
294
273
  "COMMITTOOL": "True",
295
274
  "CONTENTTOOL": "True",
296
275
  "DEPENDABOTTOOL": "True",
297
- "GITHUB_ALLOW_DESTRUCTIVE": "False",
298
276
  "GITHUB_HTTP_CONNECT_TIMEOUT": "10",
299
277
  "GITHUB_HTTP_READ_TIMEOUT": "30",
300
278
  "GITHUB_TOKEN": "your_github_token_here",
@@ -344,7 +322,6 @@ docker run -i --rm \
344
322
  -e COMMITTOOL=True \
345
323
  -e CONTENTTOOL=True \
346
324
  -e DEPENDABOTTOOL=True \
347
- -e GITHUB_ALLOW_DESTRUCTIVE=False \
348
325
  -e GITHUB_HTTP_CONNECT_TIMEOUT=10 \
349
326
  -e GITHUB_HTTP_READ_TIMEOUT=30 \
350
327
  -e GITHUB_TOKEN=your_github_token_here \
@@ -408,7 +385,6 @@ the detailed transport contract.
408
385
  | `TLS_PROFILE` | `private-ca` | AgentConfig named transport profile |
409
386
  | `TLS_PROFILE_REF` | `secret://transport/provider` | Direct runtime profile reference |
410
387
  | `TLS_PROFILES_REF` | `secret://transport/catalog` | Named runtime profile catalog |
411
- | `GITHUB_ALLOW_DESTRUCTIVE` | `False` | Allow destructive (delete/force) operations |
412
388
  | `GITHUB_HTTP_CONNECT_TIMEOUT` | `10` | HTTP client timeouts (seconds) |
413
389
  | `GITHUB_HTTP_READ_TIMEOUT` | `30` | |
414
390
  | `DEBUG` | `False` | |
@@ -474,24 +450,8 @@ Every variable the server reads.
474
450
  | `DEBUG` | Verbose logging | `False` |
475
451
  | `PYTHONUNBUFFERED` | Unbuffered stdout (recommended in containers) | `1` |
476
452
 
477
- ### Tool toggles
478
- Each action-routed tool can be disabled individually via its toggle env var (set to `false`).
479
- The full list is in the [Available MCP Tools](#available-mcp-tools) table above.
480
-
481
- | Variable | Tool | Default |
482
- |----------|------|---------|
483
- | `ACTIONTOOL` | `github_actions` — Actions workflows and runs | `True` |
484
- | `BRANCHTOOL` | `github_branches` — branches | `True` |
485
- | `COLLABORATORTOOL` | `github_collaborators` — repository collaborators | `True` |
486
- | `COMMITTOOL` | `github_commits` — commits | `True` |
487
- | `CONTENTTOOL` | `github_contents` — file contents | `True` |
488
- | `INGESTTOOL` | `github_ingest_repos` — KG repository ingestion | `True` |
489
- | `ISSUETOOL` | `github_issues` — issues | `True` |
490
- | `ORGTOOL` | `github_orgs` — organizations | `True` |
491
- | `PULLTOOL` | `github_pulls` — pull requests | `True` |
492
- | `RELEASETOOL` | `github_releases` — releases | `True` |
493
- | `REPOTOOL` | `github_repos` — repositories and Pages sites | `True` |
494
- | `SEARCHTOOL` | `github_search` — search repositories, issues, code | `True` |
453
+ ### Tool surface
454
+ The tool surface is the typed per-operation tools; there are no per-domain toggles.
495
455
 
496
456
  ### Telemetry & governance
497
457
  | Variable | Description | Default |
@@ -2,6 +2,7 @@
2
2
  from typing import Any
3
3
 
4
4
  from scion_sdk.exceptions import require_auth
5
+ from scion_sdk.mcp.destructive import destructive_operation
5
6
 
6
7
  from github_agent.api.api_client_base import BaseApiClient
7
8
  from github_agent.github_response_models import Response
@@ -59,6 +60,7 @@ class Api(BaseApiClient):
59
60
  response.raise_for_status()
60
61
  return Response(response=response, data=response.json())
61
62
 
63
+ @destructive_operation
62
64
  @require_auth
63
65
  def update_dependabot_alert(
64
66
  self,
@@ -111,8 +111,8 @@ class Api(BaseApiClient):
111
111
  """Schedule an organization for deletion. IRREVERSIBLE.
112
112
 
113
113
  GitHub responds 202 Accepted and deletes the organization, all of its
114
- repositories, and all of its data asynchronously. The MCP layer gates
115
- this action behind allow_destructive / GITHUB_ALLOW_DESTRUCTIVE.
114
+ repositories, and all of its data asynchronously. The SDK asks
115
+ the caller to confirm this action.
116
116
 
117
117
  DELETE /orgs/{org}
118
118
  https://docs.github.com/en/rest/orgs/orgs#delete-an-organization
@@ -240,8 +240,8 @@ class Api(BaseApiClient):
240
240
  def remove_organization_member(self, org: str, username: str) -> Response:
241
241
  """Remove a user from an organization (repositories access included).
242
242
 
243
- Destructive: the MCP layer gates this action behind
244
- allow_destructive / GITHUB_ALLOW_DESTRUCTIVE. GitHub responds 204.
243
+ Destructive: the SDK asks the caller to confirm this
244
+ action. GitHub responds 204.
245
245
 
246
246
  DELETE /orgs/{org}/members/{username}
247
247
  https://docs.github.com/en/rest/orgs/members#remove-an-organization-member
@@ -150,8 +150,8 @@ class Api(BaseApiClient):
150
150
  def delete_pages(self, owner: str, repo: str) -> Response:
151
151
  """Disable GitHub Pages for a repository and delete the site.
152
152
 
153
- Destructive: the MCP layer gates this action behind
154
- allow_destructive / GITHUB_ALLOW_DESTRUCTIVE. GitHub responds 204.
153
+ Destructive: the SDK asks the caller to confirm this
154
+ action. GitHub responds 204.
155
155
 
156
156
  DELETE /repos/{owner}/{repo}/pages
157
157
  https://docs.github.com/en/rest/pages/pages#delete-a-apiname-pages-site
@@ -5,6 +5,7 @@ from scion_sdk.exceptions import (
5
5
  ParameterError,
6
6
  require_auth,
7
7
  )
8
+ from scion_sdk.mcp.destructive import destructive_operation
8
9
 
9
10
  from github_agent.api.api_client_base import BaseApiClient
10
11
  from github_agent.github_input_models import (
@@ -107,6 +108,7 @@ class Api(BaseApiClient):
107
108
  response.raise_for_status()
108
109
  return Response(response=response, data=response.json())
109
110
 
111
+ @destructive_operation
110
112
  @require_auth
111
113
  def merge_pull_request(
112
114
  self,
@@ -21,16 +21,6 @@ from github_agent.api_client import Api
21
21
  logger = get_logger(__name__)
22
22
 
23
23
 
24
- def allow_destructive_default() -> bool:
25
- """Fleet-wide default for the destructive-action gate.
26
-
27
- Destructive MCP actions (e.g. organization delete, member removal) are
28
- blocked unless the caller passes allow_destructive=true or the
29
- GITHUB_ALLOW_DESTRUCTIVE environment variable is set truthy.
30
- """
31
- return setting("GITHUB_ALLOW_DESTRUCTIVE", False)
32
-
33
-
34
24
  def _exchange_delegated_token(settings: DelegationSettings) -> str:
35
25
  """Exchange the caller's verified MCP token for a downstream GitHub token."""
36
26
  logger.info(