开源许可证检查工具

使用模型上下文协议(MCP)检查文件中的开源许可证和版权信息头部的工具,适用于代码合规性审查。

  • by sbley
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 sbley/foss-mcp-server

使用说明

FOSS MCP服务器

此工具使用模型上下文协议(MCP)根据开源策略检查文件的正确标头。目前,它检查SPDX版权和许可信息头。

项目结构

  • mcp_server.py -主MCP服务器实现
  • model_setup.py -模型配置和初始化
  • license_verifier.py -验证许可证标头的功能
  • run_server.ps1 -在Windows上运行服务器的PowerShell脚本
  • run_server.sh -在Linux/macOS上运行服务器的Bash脚本

设置

  1. 创建虚拟环境:

    python -m venv .venv
    
  2. 激活虚拟环境:

    Windows(PowerShell):

    .\.venv\Scripts\Activate.ps1
    

    Linux/macOS/Git Bash:

    source .venv/bin/activate
    
  3. 安装要求:

    pip install -r requirements.txt
    
  4. 配置Azure OpenAI设置:

    Azure OpenAI客户端需要以下环境变量:

    • AZURE_OPENAI_ENDPOINT -您的Azure OpenAI端点URL
    • AZURE_OPENAI_API_VERSION -要使用的API版本(例如,“2024-09-01预览”)
    • AZURE_OPENAI_DEPLOYMENT -Azure OpenAI部署名称
    • AZURE_OPENAI_API_KEY -你的Azure OpenAI API密钥

    这些可以在环境中配置,也可以由调用MCP服务器的代理/应用程序提供。

运行服务器

您需要Azure OpenAI API密钥才能使用此工具。有两种方法可以提供它:

选项1:使用辅助脚本(推荐)

Windows(PowerShell):

.\run_server.ps1 "your-api-key-here"

Linux/macOS/Git Bash:

bash run_server.sh "your-api-key-here"

或者在不带参数的情况下运行,系统将提示您输入API键:

Windows(PowerShell):

.\run_server.ps1

Linux/macOS/Git Bash:

bash run_server.sh

选项2:手动设置

  1. 激活虚拟环境:

    Windows(PowerShell):

    .\.venv\Scripts\Activate.ps1
    

    Linux/macOS/Git Bash:

    source .venv/bin/activate
    
  2. 设置环境变量:

    Windows(PowerShell):

    $env:AZURE_OPENAI_API_KEY = "your-api-key-here"
    $env:AZURE_OPENAI_ENDPOINT = "your-azure-endpoint"
    $env:AZURE_OPENAI_API_VERSION = "your-api-version" 
    $env:AZURE_OPENAI_DEPLOYMENT = "your-deployment-name"
    

    Linux/macOS/Git Bash:

    export AZURE_OPENAI_API_KEY="your-api-key-here"
    export AZURE_OPENAI_ENDPOINT="your-azure-endpoint"
    export AZURE_OPENAI_API_VERSION="your-api-version"
    export AZURE_OPENAI_DEPLOYMENT="your-deployment-name"
    
  3. 运行服务器:

    python mcp_server.py
    

运作原理

服务器提供了一个MCP工具,用于检查以下代码文件:

  1. SPDX许可证标识符
  2. 版权声明
  3. 在文件顶部正确放置标题

当这些元素缺失时,该工具会建议在文件中添加适当的标题。