项目简介
RichIssueMCP 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为AI代理提供经过处理和增强的GitHub问题数据。它通过集成语义嵌入、多种指标计算和分析功能,帮助AI系统更好地理解、分类和管理大型代码仓库中的问题(Issue)。
主要功能点
- 智能问题拉取: 从GitHub仓库智能分页拉取原始问题数据,支持增量更新和状态管理,确保数据高效且最新。
- 数据富化: 对原始问题数据进行深度处理,包括:
- 语义嵌入: 利用Mistral API为问题标题、正文和评论生成语义嵌入,支持高效的语义搜索。
- 指标计算: 计算评论数、反应表情、问题年龄、活跃度分数等关键指标。
- 四分位数分析: 为所有指标分配四分位数,提供统计分布视图。
- K-NN分析: 计算K个最近邻距离,用于相似性聚类。
- AI摘要: 可选地生成LLM驱动的问题摘要。
- MCP服务器: 作为一个MCP服务器运行,通过 JSON-RPC 协议向AI客户端暴露一系列工具,允许AI客户端查询、分析和交互问题数据。
- 丰富的工具集: 提供了获取特定问题、查找相似问题、查找关联问题、获取问题指标、按任意列查询Top N问题,以及添加结构化建议等多种功能工具。
- 数据库持久化: 使用TinyDB持久化存储原始和富化后的问题数据。
- 数据可视化: 生成GraphML文件和T-SNE坐标,用于问题网络的语义可视化。
- TUI交互界面: 提供终端用户界面(TUI),方便人工浏览和探索问题数据。
安装步骤
- 克隆仓库:
git clone https://github.com/QuantStack/RichIssueMCP.git cd RichIssueMCP - 安装Python依赖:
pip install -e . - 配置API密钥:
复制示例配置文件并编辑,填入您的Mistral API密钥和GitHub Token。
cp config.toml.example config.toml # 然后用文本编辑器打开 config.toml 文件,在 [api] 部分填写 mistral_api_key, # 并在 [github] 部分填写 token。 - 拉取GitHub问题数据:
这会从GitHub仓库(例如 'jupyterlab/jupyterlab')拉取问题,并保存到本地数据库。
您也可以只更新新问题或修改过的问题:rich_issue_mcp pull jupyterlab/jupyterlab --start-date 2025-01-01rich_issue_mcp pull jupyterlab/jupyterlab - 富化问题数据:
对拉取的问题数据进行处理,添加语义嵌入和各类指标。
这一步可能需要较长时间,因为它会调用外部API生成嵌入和摘要。rich_issue_mcp enrich jupyterlab/jupyterlab
服务器配置
MCP客户端需要以下信息来连接到RichIssueMCP服务器:
MCP服务器的启动命令和参数:
{ "server_name": "Rich Issues Server", "command": "rich_issue_mcp", "args": ["mcp", "--host", "localhost", "--port", "8000", "--repo", "jupyterlab/jupyterlab"] }
- 'server_name': 这是MCP服务器在您的客户端应用中显示的名称,例如 "Rich Issues Server"。
- 'command': 这是一个字符串,代表启动MCP服务器的可执行命令。对于 RichIssueMCP,其命令行工具是 'rich_issue_mcp'。
- 'args': 这是一个字符串数组,包含传递给 'command' 命令的参数。
- 第一个参数 'mcp' 指定要运行 'rich_issue_mcp' 命令行工具的 'mcp' 子命令,以启动MCP服务器。
- '--host': 指定MCP服务器监听的主机地址。例如,'localhost' 表示服务器仅在本地机器上可访问。
- '--port': 指定MCP服务器监听的端口号。例如,'8000'。
- '--repo': 指定MCP服务器将处理的GitHub仓库名称,格式为 'owner/repo'。例如,'jupyterlab/jupyterlab'。
基本使用方法
- 启动MCP服务器:
在终端中运行以下命令来启动MCP服务器:
'&' 符号表示在后台运行服务器,您可以继续使用当前终端。rich_issue_mcp mcp --host localhost --port 8000 --repo jupyterlab/jupyterlab & - AI客户端交互: 您的MCP客户端可以连接到 'localhost:8000' 上的 "Rich Issues Server",并通过JSON-RPC协议调用服务器暴露的工具。 例如,AI客户端可以调用 'get_issue(issue_number=123)' 来获取某个特定问题的信息,或者调用 'find_similar_issues(issue_number=456)' 来查找相似的问题。
- 清理数据:
如果您需要删除所有下载的问题数据,可以使用 'clean' 命令:
rich_issue_mcp clean
信息
分类
开发者工具