代码分析服务

Uniquity MCP Server是一个通过MCP协议向外部工具和AI代理提供代码分析功能的服务器,适用于GitHub仓库相似性分析等场景。

  • by KunihiroS
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 kunihiros/uniquity-mcp

使用说明

Uniquity MCP服务器

概述

Uniquity MCP Server是一个服务器,它通过MCP(模型上下文协议)使外部工具和AI代理可以使用UniquityReporter的功能。

UniquityReporter: UniquityReporter

  • 允许从MCP主机或AI代理调用UniquityReporter的分析功能。
  • 将核心逻辑和接口分开,以提高可维护性和可扩展性。
  • 通过标准化协议从各种客户端提供。

发布说明

  • 0.1.0
    • 初始版本

MCP主机设置

必需和可选的环境变量

  • 必需(必须从MCP主机传递)
    • GITHUB_TOKEN:GitHub API的令牌
    • OPENAI_API_KEY:OpenAI API密钥
    • TAVILY_API_KEY:Tavilly API密钥
  • 可选(如果未指定,将使用config/config.js中的默认值)
    • openaiModel:要使用的OpenAI模型的名称(例如,o3 mini、gpt-4.1-nano等)
    • logEnabled:启用/禁用日志输出(on/off)

MCP主机配置示例

{
  "uniquity-mcp": {
    "command": "npx",
    "args": [
      "-y",
      "uniquity-mcp@latest"
    ],
    "env": {
      "GITHUB_TOKEN": "{apikey}",
      "OPENAI_API_KEY": "{apikey}",
      "TAVILY_API_KEY": "{apikey}"
    }
  }
}
  • env设置中的机密是必需的。
  • 此MCP不支持报告和日志文件保存。
  • 如果需要保存文件,请将标准输出保存到主机端的文件中。

提供的工具列表(MCP服务器)

1.分析

  • 描述:为指定的GitHub存储库生成相似性分析报告。报告总是以Markdown格式返回到标准输出。
  • 返回值:Markdown格式的报告正文(标准输出)
参数 类型 必填 描述
repositoryUrl string 是 要分析的GitHub存储库URL
openaiModel string No 要使用的OpenAI模型的名称(例如,o3 mini、gpt-4.1-nano等)
logEnabled string No 启用/禁用日志输出(on/off,默认值: off)

2.列表工具

  • 描述:返回MCP服务器提供的工具列表及其规范(参数和返回值)。
  • 返回值:MCP服务器中可用的工具数组(包括每个工具的名称、描述、参数模式、返回模式)
参数 类型 必填 描述
无

这使MCP主机和客户端清楚“有哪些工具可用”以及“如何调用它们”

备注

  • MCP服务器仅支持标准输出。
  • openaiModel 和 logEnabled 可以动态指定为工具参数。
  • 可选值可以省略,如果省略,将使用UniquityReporter的默认值。

依赖包的版本管理(uniquity reporter)

  • 依赖 uniquity-reporter 在……里面 package.json 指定为 ^1.4.4.

    • 这允许自动遵循次要和补丁更新,但不会自动遵循主要版本更新(如2.x)。
    • 如果你想保证“始终是最新的”,请执行MCP服务器本身的版本更新和发布,并建议用户使用 npx uniquity-mcp@latest.
  • 关于npx缓存行为的说明

    • npx缓存检索到的包和依赖项。
    • 如果要始终使用包和依赖项的最新版本,请明确指定 "uniquity-mcp@latest" 如MCP主机配置示例所示,并指导用户清除缓存(npx clear-npx-cache等等)以确保安全。
  • 如果依赖包有规范更改或重大更新,请立即对MCP服务器进行版本升级,并在发行说明或README中宣布。

架构概述

  • 此存储库仅管理MCP服务器的实现,并依赖于 uniquity-reporter 核心逻辑的npm包。
  • 接收来自MCP主机的请求,调用UniquityReporter CLI,并返回结果。
  • 使用基于标准输入/输出(stdin/stdout)的进程间通信。
  • 报告始终输出为标准输出,不会保存到文件中。

架构图

graph LR
    subgraph MCP Host
        Client[Client Application]
    end

    subgraph MCP Server
        Server[Uniquity MCP Server]
        Server -->|Command Execution| UniquityReporter[UniquityReporter CLI]
    end

    subgraph External Services
        GitHub[GitHub API]
        OpenAI[OpenAI API]
        Tavily[Tavily API]
    end

    Client -- MCP Protocol --> Server
    Server -- JSON Response --> Client
    UniquityReporter -- Repository Analysis --> GitHub
    UniquityReporter -- Code Analysis --> OpenAI
    UniquityReporter -- Web Search --> Tavily

技术栈

  • 运行时:Node.js 18+
  • 主要包装:
    • @modelcontextprotocol/sdk:MCP协议实施
    • uniquity-reporter:核心分析引擎
    • winston:日志记录
    • dotenv:环境变量管理
  • 开发工具:
    • TypeScript
    • ESLint
    • 更漂亮
    • Jest(测试)

项目结构

uniquity-mcp/
├── uniquity-mcp/           # Main Project
│   ├── src/
│   │   └── index.js       # Entry Point
│   └── package.json
├── .github/              # GitHub Actions Configuration
└── README.md             # This File

开发指南

安装

通过Smithery安装

通过以下方式自动安装Claude Desktop的uniquity mcp 史密瑟里:

npx -y @smithery/cli install @KunihiroS/uniquity-mcp --client claude

安装依赖项

# Install dependency packages
pnpm install

# Install including development dependencies
pnpm install --dev

构建

pnpm run build

从开发模式开始

pnpm run dev

用法

启动MCP服务器

# After building
node dist/index.js

# Or run directly
pnpm start

启动开发服务器

# Start in development mode (with hot reload)
pnpm run dev

# Build and then run
pnpm run build
pnpm start

许可证

MIT许可证

作者

库尼希罗斯