关于 Uniquity Mcp Server
这是一个 Node.js MCP 服务,通过标准接口向 MCP Host 和 AI Agent 提供 UniquityReporter 分析功能。它可分析 GitHub 仓库相似度,并将 Markdown 报告输出到标准输出。
主要功能
- 01GitHub 仓库相似度分析
- 02输出 Markdown 报告
- 03列出工具及其规格
- 04配置模型与日志
适用场景
- 01分析 GitHub 仓库
- 02获取可用工具的规格
- 03调整分析模型或日志设置
MCP 相关
通过 MCP 工具提供 UniquityReporter 分析功能,包括仓库分析和工具列表查询。它通过标准输入和输出与 Host 通信。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| repositoryUrl | string | 是 | 要分析的 Git 仓库 URL。 |
| openaiModel | string | 否 | 可选:要使用的 OpenAI 模型(例如 gpt-4o-mini)。 |
| logEnabled | enum | 否 | 可选:启用或禁用详细日志记录。'on' 表示启用,'off' 表示禁用。on | off |
详细介绍
Uniquity MCP 服务
概述
Uniquity MCP 服务可通过 MCP(Model Context Protocol)向外部工具和 AI Agent 提供 UniquityReporter 的功能。
UniquityReporter:UniquityReporter
- 支持 MCP Host 或 AI Agent 调用 UniquityReporter 的分析功能。
- 将核心逻辑与接口分离,以提高可维护性和可扩展性。
- 通过标准化协议,支持从各种客户端使用。
发布说明
- 0.1.0
- 初始版本
MCP Host 设置
必需和可选的环境变量
- 必需(必须由 MCP Host 传入)
GITHUB_TOKEN:GitHub API 令牌OPENAI_API_KEY:OpenAI API 密钥TAVILY_API_KEY:Tavily API 密钥
- 可选(未指定时,将使用 config/config.js 中的默认值)
openaiModel:要使用的 OpenAI 模型名称(例如,o3-mini、gpt-4.1-nano 等)logEnabled:启用/禁用日志输出(on/off)
MCP Host 配置示例
{
"uniquity-mcp": {
"command": "npx",
"args": [
"-y",
"uniquity-mcp@latest"
],
"env": {
"GITHUB_TOKEN": "{apikey}",
"OPENAI_API_KEY": "{apikey}",
"TAVILY_API_KEY": "{apikey}"
}
}
}
- 必须在 env 设置中提供密钥。
- 此 MCP 不支持保存报告和日志文件。
- 如果需要保存文件,请在 Host 端将标准输出保存到文件。
提供的工具列表(MCP 服务)
1. analyze_repository
- 说明:为指定的 GitHub 仓库生成相似度分析报告。报告始终以 Markdown 格式返回到标准输出。
- 返回值:Markdown 格式的报告正文(标准输出)
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
| repositoryUrl | string | 是 | 要分析的 GitHub 仓库 URL |
| openaiModel | string | 否 | 要使用的 OpenAI 模型名称(例如,o3-mini、gpt-4.1-nano 等) |
| logEnabled | string | 否 | 启用/禁用日志输出(on/off,默认值:off) |
2. list_tools
- 说明:返回 MCP 服务提供的工具列表及其规格(参数和返回值)。
- 返回值:MCP 服务中可用工具的数组(每个工具均包含名称、说明、parameterSchema 和 returnSchema)
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
| 无 |
这样,MCP Host 和客户端便能清楚了解“有哪些可用工具”以及“如何调用它们”。
注意事项
- MCP 服务仅支持标准输出。
openaiModel和logEnabled可以作为工具参数动态指定。- 可省略可选值;省略时将使用 UniquityReporter 的默认值。
依赖包(uniquity-reporter)的版本管理
-
package.json中uniquity-reporter的依赖版本指定为^1.4.4。- 这允许自动跟进次要版本和补丁版本更新,但不会自动跟进主要版本更新(例如 2.x)。
- 如果希望“始终使用最新版本”,请更新并发布 MCP 服务自身的版本,并建议用户使用
npx uniquity-mcp@latest。
-
关于 npx 缓存行为的说明
- npx 会缓存已获取的软件包及其依赖。
- 如果希望始终使用最新版本的软件包及其依赖,请像 MCP Host 配置示例中那样明确指定
"uniquity-mcp@latest",并建议用户为确保安全而清除缓存(例如npx clear-npx-cache)。
-
如果依赖包有规格变更或重大更新,请及时升级 MCP 服务版本,并在发布说明或 README 中公告。
架构概览
- 此仓库仅管理 MCP 服务的实现,核心逻辑依赖
uniquity-reporternpm 包。 - 接收来自 MCP Host 的请求,调用 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
- Prettier
- Jest(测试)
项目结构
uniquity-mcp/
├── uniquity-mcp/ # Main Project
│ ├── src/
│ │ └── index.js # Entry Point
│ └── package.json
├── .github/ # GitHub Actions Configuration
└── README.md # This File
开发指南
安装
通过 Smithery 安装
如需通过 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 许可证
作者
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。