> ## Documentation Index
> Fetch the complete documentation index at: https://ikun.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub MCP agent

使用 [GitHub MCP 服务器](https://github.com/modelcontextprotocol/servers/tree/main/src/github) 来创建一个可以探索、分析并提供 GitHub 存储库见解的 Agent：

```python theme={null}
"""🐙 MCP GitHub Agent - 您的专属 GitHub 探索者！

此示例展示了如何创建一个使用 MCP 来探索、分析并提供 GitHub 存储库见解的 GitHub Agent。该 Agent 利用模型上下文协议 (MCP) 来与 GitHub 交互，使其能够回答有关 issues、pull requests、存储库详细信息等方面的问题。

可尝试的示例提示：
- "列出存储库中未关闭的 issues"
- "显示我最近的 pull requests"
- "存储库的统计信息是什么？"
- "查找标记为 bugs 的 issues"
- "显示贡献者活动"

运行：`pip install agno mcp openai` 来安装依赖项
需要的环境变量：
- 按照以下步骤创建 GitHub 个人访问令牌：
    - https://github.com/modelcontextprotocol/servers/tree/main/src/github#setup
- export GITHUB_TOKEN: 您的 GitHub 个人访问令牌
"""

import asyncio
import os
from textwrap import dedent

from agno.agent import Agent
from agno.tools.mcp import MCPTools
from mcp import StdioServerParameters


async def run_agent(message: str) -> None:
    """使用给定的消息运行 GitHub Agent。"""

    # 初始化 MCP 服务器
    server_params = StdioServerParameters(
        command="npx",
        args=["-y", "@modelcontextprotocol/server-github"],
    )

    # 创建一个客户端会话以连接到 MCP 服务器
    async with MCPTools(server_params=server_params) as mcp_tools:
        agent = Agent(
            tools=[mcp_tools],
            instructions=dedent("""\
                您是一个 GitHub 助手。帮助用户探索存储库及其活动。

                - 使用标题来组织您的回复
                - 简明扼要，专注于相关信息\
            """),
            markdown=True,
            show_tool_calls=True,
        )

        # 运行 Agent
        await agent.aprint_response(message, stream=True)


# 示例用法
if __name__ == "__main__":
    # Pull request 示例
    asyncio.run(
        run_agent(
            "告诉我关于 Agno 的信息。Github 存储库: https://github.com/agno-agi/agno。您可以阅读 README 以获取更多信息。"
        )
    )


# 更多可探索的示例提示：
"""
Issue 查询：
1. "查找需要关注的 issues"
2. "按标签显示 issues"
3. "哪些 issues 正在积极讨论中？"
4. "查找相关 issues"
5. "分析 issue 解决模式"

Pull request 查询：
1. "哪些 PRs 需要审查？"
2. "显示我最近合并的 PRs"
3. "查找有冲突的 PRs"
4. "哪些功能正在开发中？"
5. "分析 PR 审查模式"

存储库查询：
1. "显示存储库健康指标"
2. "贡献指南是什么？"
3. "查找文档缺失之处"
4. "分析代码质量趋势"
5. "显示存储库活动模式"
"""
```
