github-agent 0.2.48__tar.gz → 0.2.54__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 (35) hide show
  1. {github_agent-0.2.48 → github_agent-0.2.54}/PKG-INFO +2 -2
  2. {github_agent-0.2.48 → github_agent-0.2.54}/README.md +1 -1
  3. github_agent-0.2.54/github_agent/agent_data/A2A_AGENTS.md +12 -0
  4. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/IDENTITY.md +3 -3
  5. github_agent-0.2.54/github_agent/agent_data/MCP_AGENTS.md +21 -0
  6. github_agent-0.2.54/github_agent/agent_data/mcp_config.json +18 -0
  7. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/templates.py +5 -6
  8. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_server.py +16 -50
  9. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/api_wrapper.py +4 -6
  10. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/auth.py +1 -1
  11. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/github_input_models.py +1 -1
  12. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/github_response_models.py +1 -1
  13. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/mcp_server.py +31 -6
  14. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent.egg-info/PKG-INFO +2 -2
  15. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent.egg-info/SOURCES.txt +1 -1
  16. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent.egg-info/entry_points.txt +1 -0
  17. {github_agent-0.2.48 → github_agent-0.2.54}/pyproject.toml +2 -1
  18. github_agent-0.2.48/github_agent/agent_data/A2A_AGENTS.md +0 -12
  19. github_agent-0.2.48/github_agent/agent_data/mcp_config.json +0 -10
  20. github_agent-0.2.48/github_agent/graph_config.py +0 -25
  21. {github_agent-0.2.48 → github_agent-0.2.54}/LICENSE +0 -0
  22. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/__init__.py +0 -0
  23. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/__main__.py +0 -0
  24. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/CRON.md +0 -0
  25. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/CRON_LOG.md +0 -0
  26. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/HEARTBEAT.md +0 -0
  27. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/MEMORY.md +0 -0
  28. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/USER.md +0 -0
  29. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/chats +0 -0
  30. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/icon.png +0 -0
  31. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent.egg-info/dependency_links.txt +0 -0
  32. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent.egg-info/requires.txt +0 -0
  33. {github_agent-0.2.48 → github_agent-0.2.54}/github_agent.egg-info/top_level.txt +0 -0
  34. {github_agent-0.2.48 → github_agent-0.2.54}/scripts/validate_a2a_agent.py +0 -0
  35. {github_agent-0.2.48 → github_agent-0.2.54}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github-agent
3
- Version: 0.2.48
3
+ Version: 0.2.54
4
4
  Summary: GitHub Agent for MCP
5
5
  Author-email: Audel Rouhi <knucklessg1@gmail.com>
6
6
  License: MIT
@@ -38,7 +38,7 @@ Dynamic: license-file
38
38
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/github-agent)
39
39
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/github-agent)
40
40
 
41
- *Version: 0.2.48*
41
+ *Version: 0.2.54*
42
42
 
43
43
  ## Overview
44
44
 
@@ -21,7 +21,7 @@
21
21
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/github-agent)
22
22
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/github-agent)
23
23
 
24
- *Version: 0.2.48*
24
+ *Version: 0.2.54*
25
25
 
26
26
  ## Overview
27
27
 
@@ -0,0 +1,12 @@
1
+ # AGENTS.md - Known A2A Peer Agents
2
+ Last updated: 2026-02-21 01:19
3
+
4
+ This file is the local registry of other A2A agents this agent can discover and call.
5
+
6
+ ## Registered A2A Peers
7
+
8
+ | Name | Endpoint URL | Description | Capabilities | Auth | Notes / Last Connected |
9
+ |------|--------------|-------------|--------------|------|------------------------|
10
+ | | | | | | |
11
+
12
+ *Add new rows manually or let the agent call `register_a2a_peer(...)`.*
@@ -18,9 +18,9 @@ You have three primary operational modes:
18
18
 
19
19
  #### 1. Context-Aware Delegation
20
20
  When dealing with complex Github workflows, optimize your context by spawning specialized versions of yourself:
21
- - **PR Review**: Call `spawn_agent(agent_template="github", prompt="Review and summarize PR #456...", enabled_tools=["PULL_REQUESTSTOOL", "REPOSTOOL"])`.
22
- - **Issue Management**: Call `spawn_agent(agent_template="github", prompt="Triage and label new issues with 'bug'...", enabled_tools=["ISSUESTOOL"])`.
23
- - **Discovery**: Always use `get_mcp_reference(agent_template="github")` to verify available tool tags before spawning.
21
+ - **PR Review**: Call `spawn_agent(agent_name="github", prompt="Review and summarize PR #456...", enabled_tools=["PULL_REQUESTSTOOL", "REPOSTOOL"])`.
22
+ - **Issue Management**: Call `spawn_agent(agent_name="github", prompt="Triage and label new issues with 'bug'...", enabled_tools=["ISSUESTOOL"])`.
23
+ - **Discovery**: Always use `get_mcp_reference(agent_name="github")` to verify available tool tags before spawning.
24
24
 
25
25
  #### 2. Workflow for Meta-Tasks
26
26
  - **Memory Management**:
@@ -0,0 +1,21 @@
1
+ # MCP_AGENTS.md - Dynamic Agent Registry
2
+
3
+ This file tracks the generated agents from MCP servers. You can manually modify the 'Tools' list to customize agent expertise.
4
+
5
+ ## Agent Mapping Table
6
+
7
+ | Name | Description | System Prompt | Tools | Tag | Source MCP |
8
+ |------|-------------|---------------|-------|-----|------------|
9
+ | Github Contents Specialist | Expert specialist for contents domain tasks. | You are a Github Contents specialist. Help users manage and interact with Contents functionality using the available tools. | github-mcp_contents_toolset | contents | github-mcp |
10
+ | Github Issue Specialist | Expert specialist for issue domain tasks. | You are a Github Issue specialist. Help users manage and interact with Issue functionality using the available tools. | github-mcp_issue_toolset | issue | github-mcp |
11
+ | Github Pulls Specialist | Expert specialist for pulls domain tasks. | You are a Github Pulls specialist. Help users manage and interact with Pulls functionality using the available tools. | github-mcp_pulls_toolset | pulls | github-mcp |
12
+ | Github Repos Specialist | Expert specialist for repos domain tasks. | You are a Github Repos specialist. Help users manage and interact with Repos functionality using the available tools. | github-mcp_repos_toolset | repos | github-mcp |
13
+
14
+ ## Tool Inventory Table
15
+
16
+ | Tool Name | Description | Tag | Source |
17
+ |-----------|-------------|-----|--------|
18
+ | github-mcp_contents_toolset | Static hint toolset for contents based on config env. | contents | github-mcp |
19
+ | github-mcp_issue_toolset | Static hint toolset for issue based on config env. | issue | github-mcp |
20
+ | github-mcp_pulls_toolset | Static hint toolset for pulls based on config env. | pulls | github-mcp |
21
+ | github-mcp_repos_toolset | Static hint toolset for repos based on config env. | repos | github-mcp |
@@ -0,0 +1,18 @@
1
+ {
2
+ "mcpServers": {
3
+ "github-mcp": {
4
+ "command": "github-mcp",
5
+ "args": [
6
+ "--transport",
7
+ "stdio"
8
+ ],
9
+ "env": {
10
+ "GITHUB_TOKEN": "${GITHUB_TOKEN}",
11
+ "CONTENTSTOOL": "${ CONTENTSTOOL:-True }",
12
+ "ISSUETOOL": "${ ISSUETOOL:-True }",
13
+ "PULLSTOOL": "${ PULLSTOOL:-True }",
14
+ "REPOSTOOL": "${ REPOSTOOL:-True }"
15
+ }
16
+ }
17
+ }
18
+ }
@@ -2,7 +2,6 @@ import asyncio
2
2
  from typing import Dict
3
3
  from github_agent.models import PeriodicTask
4
4
 
5
- # Core files we care about most
6
5
  CORE_FILES = {
7
6
  "IDENTITY": "IDENTITY.md",
8
7
  "USER": "USER.md",
@@ -13,11 +12,11 @@ CORE_FILES = {
13
12
  "MCP_CONFIG": "mcp_config.json",
14
13
  }
15
14
 
16
- # ============== IN-MEMORY PERIODIC SCHEDULER STATE ==============
15
+
17
16
  tasks: list[PeriodicTask] = []
18
17
  lock = asyncio.Lock()
19
18
 
20
- # Templates for workspace initialization
19
+
21
20
  TEMPLATES: Dict[str, str] = {
22
21
  "IDENTITY": """# IDENTITY.md - Who I Am, Core Personality, & Boundaries
23
22
 
@@ -66,9 +65,9 @@ This file is the local registry of other A2A agents this agent can discover and
66
65
 
67
66
  ## Registered A2A Peers
68
67
 
69
- | Name | Endpoint URL | Description | Capabilities | Auth | Notes / Last Connected |
70
- |-----------------|---------------------------------|--------------------------------------|----------------------------------|-----------|------------------------|
71
- | SearchMaster | http://search-agent:9000/a2a | Advanced web researcher | web_search, summarize, browse | none | 2026-02-20 |
68
+ | Name | Endpoint URL | Description | Capabilities | Auth | Notes / Last Connected |
69
+ |------|--------------|-------------|--------------|------|------------------------|
70
+ | | | | | | |
72
71
 
73
72
  *Add new rows manually or let the agent call `register_a2a_peer(...)`.*
74
73
  """,
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/python
2
2
  # coding: utf-8
3
3
  import os
4
- import logging
5
-
6
4
  import sys
5
+ import logging
7
6
  import warnings
7
+
8
8
  from agent_utilities import (
9
9
  build_system_prompt_from_workspace,
10
10
  create_agent_parser,
@@ -13,7 +13,7 @@ from agent_utilities import (
13
13
  load_identity,
14
14
  )
15
15
 
16
- __version__ = "0.2.48"
16
+ __version__ = "0.2.54"
17
17
 
18
18
  logging.basicConfig(
19
19
  level=logging.INFO,
@@ -22,13 +22,16 @@ logging.basicConfig(
22
22
  )
23
23
  logger = logging.getLogger(__name__)
24
24
 
25
- # Load identity and system prompt from workspace
25
+
26
26
  initialize_workspace()
27
27
  meta = load_identity()
28
28
  DEFAULT_AGENT_NAME = os.getenv("DEFAULT_AGENT_NAME", meta.get("name", "Github Agent"))
29
29
  DEFAULT_AGENT_DESCRIPTION = os.getenv(
30
30
  "AGENT_DESCRIPTION",
31
- meta.get("description", "AI agent for GitHub Agent management."),
31
+ meta.get(
32
+ "description",
33
+ "AI agent for GitHub Agent management.",
34
+ ),
32
35
  )
33
36
  DEFAULT_AGENT_SYSTEM_PROMPT = os.getenv(
34
37
  "AGENT_SYSTEM_PROMPT",
@@ -36,68 +39,31 @@ DEFAULT_AGENT_SYSTEM_PROMPT = os.getenv(
36
39
  )
37
40
 
38
41
 
39
- def agent_template(mcp_url: str = None, mcp_config: str = None, **kwargs):
40
- """Factory function returning the fully initialized graph for execution."""
41
- from agent_utilities import create_graph_agent
42
- from github_agent.graph_config import TAG_PROMPTS, TAG_ENV_VARS
43
-
44
- # In-process MCP loading: if no external URL/Config, load the local FastMCP instance
45
- mcp_toolsets = []
46
- effective_mcp_url = mcp_url or os.getenv("MCP_URL")
47
- effective_mcp_config = mcp_config or os.getenv("MCP_CONFIG")
48
-
49
- if not effective_mcp_url and not effective_mcp_config:
50
- try:
51
- from github_agent.mcp_server import get_mcp_instance
52
-
53
- mcp, _, _, _ = get_mcp_instance()
54
- mcp_toolsets.append(mcp)
55
- logger.info("Github Agent: Using in-process MCP instance.")
56
- except (ImportError, Exception) as e:
57
- logger.warning(f"Github Agent: Could not load in-process MCP: {e}")
58
-
59
- return create_graph_agent(
60
- mcp_url=effective_mcp_url,
61
- mcp_config=effective_mcp_config or "",
62
- mcp_toolsets=mcp_toolsets,
63
- name=f"{DEFAULT_AGENT_NAME} Graph Agent",
64
- tag_prompts=TAG_PROMPTS,
65
- tag_env_vars=TAG_ENV_VARS,
66
- **kwargs,
67
- )
68
-
69
-
70
42
  def agent_server():
71
-
72
- # Suppress RequestsDependencyWarning and FastMCP DeprecationWarnings
73
43
  warnings.filterwarnings("ignore", message=".*urllib3.*or chardet.*")
74
44
  warnings.filterwarnings("ignore", category=DeprecationWarning, module="fastmcp")
75
45
 
76
46
  print(f"{DEFAULT_AGENT_NAME} v{__version__}", file=sys.stderr)
77
47
  parser = create_agent_parser()
78
-
79
48
  args = parser.parse_args()
80
49
 
81
50
  if args.debug:
82
51
  logging.getLogger().setLevel(logging.DEBUG)
83
52
  logger.debug("Debug mode enabled")
84
53
 
85
- # Create graph and config using standardized template
86
- graph_bundle = agent_template(
54
+ # Start server using the auto-discovery pattern (from mcp_config.json)
55
+ create_graph_agent_server(
56
+ mcp_url=args.mcp_url,
57
+ mcp_config=args.mcp_config or "mcp_config.json",
58
+ host=args.host,
59
+ port=args.port,
87
60
  provider=args.provider,
61
+ model_id=args.model_id,
62
+ router_model=args.model_id,
88
63
  agent_model=args.model_id,
89
64
  base_url=args.base_url,
90
65
  api_key=args.api_key,
91
66
  custom_skills_directory=args.custom_skills_directory,
92
- debug=args.debug,
93
- ssl_verify=not args.insecure,
94
- )
95
-
96
- # Start server using the pre-built graph bundle
97
- create_graph_agent_server(
98
- graph_bundle=graph_bundle,
99
- host=args.host,
100
- port=args.port,
101
67
  enable_web_ui=args.web,
102
68
  enable_otel=args.otel,
103
69
  otel_endpoint=args.otel_endpoint,
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/python
2
- # coding: utf-8
2
+
3
3
  import re
4
4
  import requests
5
5
  import urllib3
@@ -73,10 +73,9 @@ class Api(object):
73
73
  if token:
74
74
  self.headers["Authorization"] = f"Bearer {token}"
75
75
  else:
76
- # GitHub typically requires a token for most operations
76
+
77
77
  logger.warning("No token provided for GitHub API")
78
78
 
79
- # Basic health check / auth test
80
79
  try:
81
80
  response = self._session.get(
82
81
  url=f"{self.url}/user",
@@ -89,7 +88,6 @@ class Api(object):
89
88
  raise AuthError if response.status_code == 401 else UnauthorizedError
90
89
  except requests.exceptions.RequestException as e:
91
90
  logger.error(f"Connection Error: {str(e)}")
92
- # Don't raise here, allow the client to be initialized but operations might fail
93
91
 
94
92
  def _fetch_next_page(
95
93
  self, endpoint: str, model: T, header: dict, page: int
@@ -113,7 +111,7 @@ class Api(object):
113
111
  link = response.headers.get("Link")
114
112
  if not link:
115
113
  return 1
116
- # Example: <https://api.github.com/user/repos?page=2>; rel="next", <https://api.github.com/user/repos?page=10>; rel="last"
114
+
117
115
  last_match = re.search(r'page=(\d+)>; rel="last"', link)
118
116
  if last_match:
119
117
  return int(last_match.group(1))
@@ -148,7 +146,7 @@ class Api(object):
148
146
  model.max_pages = total_pages
149
147
 
150
148
  if model.max_pages > 1:
151
- # Parallel fetching if more than 1 page
149
+
152
150
  with ThreadPoolExecutor(max_workers=5) as executor:
153
151
  futures = []
154
152
  for page in range(2, model.max_pages + 1):
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/python
2
- # coding: utf-8
2
+
3
3
  import os
4
4
  import threading
5
5
  from typing import Optional
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/python
2
- # coding: utf-8
2
+
3
3
  from typing import Union, List, Dict, Optional
4
4
  from pydantic import (
5
5
  BaseModel,
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/python
2
- # coding: utf-8
2
+
3
3
  from typing import List, Dict, Optional, Any
4
4
  from pydantic import (
5
5
  BaseModel,
@@ -1,5 +1,19 @@
1
1
  #!/usr/bin/python
2
- # coding: utf-8
2
+ import warnings
3
+
4
+ # Filter RequestsDependencyWarning early to prevent log spam
5
+ with warnings.catch_warnings():
6
+ warnings.simplefilter("ignore")
7
+ try:
8
+ from requests.exceptions import RequestsDependencyWarning
9
+ warnings.filterwarnings("ignore", category=RequestsDependencyWarning)
10
+ except ImportError:
11
+ pass
12
+
13
+ # General urllib3/chardet mismatch warnings
14
+ warnings.filterwarnings("ignore", message=".*urllib3.*or chardet.*")
15
+ warnings.filterwarnings("ignore", message=".*urllib3.*or charset_normalizer.*")
16
+
3
17
  import os
4
18
  import sys
5
19
  from typing import Dict, Any
@@ -207,7 +221,7 @@ def register_content_tools(mcp: FastMCP):
207
221
  }
208
222
 
209
223
 
210
- def get_mcp_instance() -> tuple[Any, Any, Any, Any]:
224
+ def get_mcp_instance() -> tuple[Any, Any, Any, Any, Any]:
211
225
  args, mcp, middlewares = create_mcp_server(
212
226
  name="Github MCP",
213
227
  version=__version__,
@@ -234,12 +248,23 @@ def get_mcp_instance() -> tuple[Any, Any, Any, Any]:
234
248
  mcp.add_middleware(mw)
235
249
 
236
250
  registered_tags = []
237
- return mcp, args, middlewares, registered_tags
251
+ # FastMCP typically stores tools in .get_tools() or ._tools
252
+ tools_dict = (
253
+ mcp._tools
254
+ if hasattr(mcp, "_tools")
255
+ else mcp.get_tools() if hasattr(mcp, "get_tools") else {}
256
+ )
257
+ for tool in tools_dict.values():
258
+ if hasattr(tool, "tags"):
259
+ registered_tags.extend(list(tool.tags))
260
+
261
+ imported_tools = list(tools_dict.keys())
262
+ return mcp, args, middlewares, registered_tags, imported_tools
238
263
 
239
264
 
240
265
  def mcp_server() -> None:
241
- mcp, args, middlewares, registered_tags = get_mcp_instance()
242
- print(f"Starting {args.name} MCP v{__version__}", file=sys.stderr)
266
+ mcp, args, middlewares, registered_tags, imported_tools = get_mcp_instance()
267
+ print(f"Starting GitHub Agent MCP v{__version__}", file=sys.stderr)
243
268
 
244
269
  if args.transport == "stdio":
245
270
  mcp.run(transport="stdio")
@@ -251,4 +276,4 @@ def mcp_server() -> None:
251
276
 
252
277
 
253
278
  if __name__ == "__main__":
254
- mcp_server()
279
+ mcp_server()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github-agent
3
- Version: 0.2.48
3
+ Version: 0.2.54
4
4
  Summary: GitHub Agent for MCP
5
5
  Author-email: Audel Rouhi <knucklessg1@gmail.com>
6
6
  License: MIT
@@ -38,7 +38,7 @@ Dynamic: license-file
38
38
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/github-agent)
39
39
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/github-agent)
40
40
 
41
- *Version: 0.2.48*
41
+ *Version: 0.2.54*
42
42
 
43
43
  ## Overview
44
44
 
@@ -8,7 +8,6 @@ github_agent/api_wrapper.py
8
8
  github_agent/auth.py
9
9
  github_agent/github_input_models.py
10
10
  github_agent/github_response_models.py
11
- github_agent/graph_config.py
12
11
  github_agent/mcp_server.py
13
12
  github_agent.egg-info/PKG-INFO
14
13
  github_agent.egg-info/SOURCES.txt
@@ -21,6 +20,7 @@ github_agent/agent_data/CRON.md
21
20
  github_agent/agent_data/CRON_LOG.md
22
21
  github_agent/agent_data/HEARTBEAT.md
23
22
  github_agent/agent_data/IDENTITY.md
23
+ github_agent/agent_data/MCP_AGENTS.md
24
24
  github_agent/agent_data/MEMORY.md
25
25
  github_agent/agent_data/USER.md
26
26
  github_agent/agent_data/chats
@@ -1,2 +1,3 @@
1
1
  [console_scripts]
2
2
  github-agent = github_agent.agent_server:agent_server
3
+ github-mcp = github_agent.mcp_server:mcp_server
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "github-agent"
7
- version = "0.2.48"
7
+ version = "0.2.54"
8
8
  readme = "README.md"
9
9
  description = "GitHub Agent for MCP"
10
10
  requires-python = ">=3.10"
@@ -20,6 +20,7 @@ dependencies = [
20
20
  "agent-utilities[agent,logfire]>=0.2.31"]
21
21
 
22
22
  [project.scripts]
23
+ github-mcp = "github_agent.mcp_server:mcp_server"
23
24
  github-agent = "github_agent.agent_server:agent_server"
24
25
 
25
26
  [tool.setuptools.packages.find]
@@ -1,12 +0,0 @@
1
- # AGENTS.md - Known A2A Peer Agents
2
- Last updated: 2026-02-21 01:19
3
-
4
- This file is the local registry of other A2A agents this agent can discover and call.
5
-
6
- ## Registered A2A Peers
7
-
8
- | Name | Endpoint URL | Description | Capabilities | Auth | Notes / Last Connected |
9
- |-----------------|---------------------------------|--------------------------------------|----------------------------------|-----------|------------------------|
10
- | SearchMaster | http://search-agent:9000/a2a | Advanced web researcher | web_search, summarize, browse | none | 2026-02-20 |
11
-
12
- *Add new rows manually or let the agent call `register_a2a_peer(...)`.*
@@ -1,10 +0,0 @@
1
- {
2
- "mcpServers": {
3
- "github": {
4
- "serverUrl": "https://api.githubcopilot.com/mcp/",
5
- "headers": {
6
- "Authorization": "Bearer ${GITHUB_TOKEN}"
7
- }
8
- }
9
- }
10
- }
@@ -1,25 +0,0 @@
1
- """GitHub graph configuration — tag prompts and env var mappings."""
2
-
3
- # ── Tag → System Prompt Mapping ──────────────────────────────────────
4
- TAG_PROMPTS: dict[str, str] = {
5
- "repos": (
6
- "You are a GitHub Repositories specialist. Help users manage and interact with Repository functionality using the available tools."
7
- ),
8
- "issues": (
9
- "You are a GitHub Issues specialist. Help users manage and interact with Issues functionality using the available tools."
10
- ),
11
- "pulls": (
12
- "You are a GitHub Pull Requests specialist. Help users manage and interact with Pull Request functionality using the available tools."
13
- ),
14
- "contents": (
15
- "You are a GitHub Contents specialist. Help users manage and interact with Repository Content (files/directories) using the available tools."
16
- ),
17
- }
18
-
19
- # ── Tag → Environment Variable Mapping ────────────────────────────────
20
- TAG_ENV_VARS: dict[str, str] = {
21
- "repos": "REPOSTOOL",
22
- "issues": "ISSUETOOL",
23
- "pulls": "PULLSTOOL",
24
- "contents": "CONTENTSTOOL",
25
- }
File without changes
File without changes