项目简介

'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客户端通信。

安装步骤

  1. 确保你拥有 Jellyfish API Token。你可以从 Jellyfish 实例的“Data Connections”页面生成。
  2. 克隆本仓库到本地。
  3. 安装 'uv' 包管理器(如果尚未安装)。
  4. 进入克隆下来的仓库目录。
  5. 使用 'uv' 创建并激活一个虚拟环境,然后安装项目依赖:
    uv venv
    source .venv/bin/activate
    uv pip install .
  6. 设置 Jellyfish API Token。推荐使用 'keyring' 安全存储:
    uv run python -m keyring set jellyfish api_token
    按照提示输入你的 API Token。或者,你也可以设置 'JELLYFISH_API_TOKEN' 环境变量,但这通常安全性较低。
  7. (可选但推荐)配置 PromptGuard 2 以增强安全性。需要一个 Hugging Face 账号及 Llama PromptGuard 2 模型的访问权限。然后运行:
    uv run llamafirewall configure
    并提供你的 Hugging Face API Token。

服务器配置

'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 服务器提供的工具来获取答案,并自动执行相应的工具调用。

信息

分类

开发者工具