项目简介
'jellyfish-mcp' 是一个实现了 Model Context Protocol (MCP) 的服务器,旨在让大型语言模型 (LLM) 客户端(如 Claude Desktop 或 Cursor)能够通过标准的协议与 Jellyfish 工程效能平台进行交互。它将 Jellyfish API 的功能封装成 MCP 工具,允许LLM以自然语言查询和分析 Jellyfish 实例中的工程数据、团队信息和资源分配等。
主要功能点
- Jellyfish API 能力封装: 将 Jellyfish API 的各个端点注册为 MCP 工具,方便LLM调用。
- 数据访问: 提供工具查询工程资源分配、项目交付状态、团队及个人绩效指标等丰富数据。
- API 架构披露: 通过 MCP 资源提供 Jellyfish API 的完整架构信息,帮助LLM理解可用的功能。
- 安全性增强: 集成了 PromptGuard 2 模型,用于检测和阻止API响应中的潜在Prompt注入攻击。
- 标准协议通信: 使用 MCP 的 JSON-RPC 协议与兼容的LLM客户端通信。
安装步骤
- 确保你拥有 Jellyfish API Token。你可以从 Jellyfish 实例的“Data Connections”页面生成。
- 克隆本仓库到本地。
- 安装 'uv' 包管理器(如果尚未安装)。
- 进入克隆下来的仓库目录。
- 使用 'uv' 创建并激活一个虚拟环境,然后安装项目依赖:
uv venv source .venv/bin/activate uv pip install . - 设置 Jellyfish API Token。推荐使用 'keyring' 安全存储:
按照提示输入你的 API Token。或者,你也可以设置 'JELLYFISH_API_TOKEN' 环境变量,但这通常安全性较低。uv run python -m keyring set jellyfish api_token - (可选但推荐)配置 PromptGuard 2 以增强安全性。需要一个 Hugging Face 账号及 Llama PromptGuard 2 模型的访问权限。然后运行:
并提供你的 Hugging Face API Token。uv run llamafirewall configure
服务器配置
'jellyfish-mcp' 服务器需要由 MCP 客户端(如兼容MCP的LLM应用)启动和管理。你需要将服务器的启动命令配置到你的 MCP 客户端中。
配置通常是一个 JSON 结构,包含服务器名称、启动命令 (command) 和启动参数 (args)。
- 'command': 指定用于启动服务器的可执行文件路径。推荐使用 'uv' 的路径。
- 'args': 包含传递给 'command' 的参数列表。对于 'jellyfish-mcp',这些参数应为 '--directory' 指定仓库路径,然后 'run server.py' 执行服务器脚本。
例如,配置结构可能如下(具体格式取决于客户端): 一个名为 "jellyfish" 的服务器配置,其启动命令是你的 'uv' 路径,参数包括指定仓库目录的绝对路径和运行 'server.py'。
请参考你的MCP客户端(如 Claude Desktop 或 VSCode Copilot)的文档,找到其 MCP 服务器配置位置,并填入相应的 'command' 和 'args',将路径替换为你实际的 'uv' 路径和 'jellyfish-mcp' 仓库的绝对路径。
配置示例(概念性描述,请勿直接复制为代码): 在一个MCP服务器配置列表中,添加一个条目,名称设为 "jellyfish",command 设为找到的 'uv' 可执行文件的完整路径,args 列表包含三个字符串元素:'"--directory"'、你的 'jellyfish-mcp' 仓库的绝对路径、'"run"'、'"server.py"'。
配置完成后,重启 MCP 客户端,客户端应能自动启动 'jellyfish-mcp' 服务器并发现其提供的工具和资源。
基本使用方法
一旦 MCP 服务器在你的 LLM 客户端中成功配置并启动,你就可以在客户端的聊天界面中直接向 LLM 提问,利用 Jellyfish MCP 服务器提供的工具来获取数据。例如:
- "What are the available endpoints in the Jellyfish API?" (询问可用的API端点)
- "List all the teams in our organization." (列出所有团队)
- "Show me the metrics for team 'Engineering'." (显示'Engineering'团队的指标)
- "Get the allocation data by person for the last quarter." (获取上个季度按人员划分的资源分配数据)
LLM 会识别出这些问题需要调用 Jellyfish MCP 服务器提供的工具来获取答案,并自动执行相应的工具调用。
信息
分类
开发者工具