返回市场
视图-MCP服务器

视图-MCP服务器

作者:visotrust6 星标更新:2025-11-21

项目介绍

VISO TRUST MCP 服务器

用于集成 VISO TRUST API 功能与AI助手的模型上下文协议(MCP)服务器。

需求

  • Java 21+
  • Gradle
  • Docker(可选,用于容器化部署)
  • MCP Inspector(可选,用于测试)

配置

VISO TRUST API 配置

以下属性可以用于配置 VISO TRUST API:

  • visotrust.api.base-url:VISO TRUST API 的基础 URL(默认:http://localhost:8080)
  • visotrust.api.token:从 VISO TRUST 平台获取的 API 令牌(必需)
  • visotrust.api.timeout:API 请求超时时间(以毫秒为单位,默认:30000)
  • visotrust.api.connect-timeout:API 连接超时时间(以毫秒为单位,默认:5000)

有关如何生成 visotrust.api.token 环境变量的 API 令牌,请参阅 VISO TRUST 支持文档

应用程序配置文件

此应用程序支持 Spring Boot 配置文件,以便在不同的部署场景中启用不同的配置。

远程配置文件

remote 配置文件特别设计用于通过服务端发送事件(SSE)支持远程 MCP。此配置文件设置应用程序以优化分布式环境中的工作,其中 MCP 服务器需要通过 HTTP/SSE 连接与远程客户端通信。

远程配置文件的关键差异:

  • 配置为基于 SSE 的通信而不是标准 I/O
  • 优化服务器设置以连接远程客户端
  • 增强的日志记录以进行分布式调试

如何激活远程配置文件:

直接使用 Java 运行时:

java -jar viso-mcp-server-<version>.jar --spring.profiles.active=remote

使用 Gradle 运行时:

./gradlew bootRun --args="--spring.profiles.active=remote"

使用 Docker 运行时:

docker run -i --rm \
  -e VISOTRUST_API_TOKEN=<your-api-token> \
  -e SPRING_PROFILES_ACTIVE=remote \
  viso-mcp-server

何时使用远程配置文件:

  • 当将 MCP 服务器部署到远程服务器或云环境中时
  • 当客户端将通过 HTTP/SSE 而不是直接 stdio 连接时
  • 当您需要增强的日志记录和监控来部署分布式系统时
  • 当与需要 SSE 通信的基于网络的 AI 助手集成时

对于本地开发和直接 stdio 通信,使用默认配置文件(无需指定配置文件)。

安装

快速安装

点击下面的按钮之一,在 VS Code 中安装 VISO MCP 服务器:

<a href="https://insiders.vscode.dev/redirect/mcp/install?name=viso-mcp&inputs=%5B%7B%22id%22%3A%22viso_baseurl%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22VISO%20TRUST%20API%20Base%20URL%22%2C%22default%22%3A%22https%3A%2F%2Fapp.visotrust.com%22%7D%2C%7B%22id%22%3A%22viso_token%22%2C%22type%22%3A%22promptString%22%22description%22%3A%22VISO%20TRUST%20API%20Token%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22VISOTRUST_API_TOKEN%22%2C%22-e%22%2C%22VISOTRUST_API_BASEURL%22%2C%22viso-mcp-server%22%5D%2C%22env%22%3A%7B%22VISOTRUST_API_BASEURL%22%3A%22%24%7Binput%3Aviso_baseurl%7D%22%2C%22VISOTRUST_API_TOKEN%22%3A%22%24%7Binput%3Aviso_token%7D%22%7D%7D" rel="nofollow"><img src="https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white" alt="通过 Docker 在 VS Code 中安装" style="max-width: 100%;"></a> <a href="https://insiders.vscode.dev/redirect/mcp/install?name=viso-mcp&inputs=%5B%7B%22id%22%3A%22viso_baseurl%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22VISO%20TRUST%20API%20Base%20URL%22%2C%22default%22%3A%22https%3A%2F%2Fapp.visotrust.com%22%7D%2C%7B%22id%22%3A%22viso_token%22%2C%22type%22%3A%22promptString%22%22description%22%3A%22VISO%20TRUST%20API%20Token%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22VISOTRUST_API_TOKEN%22%2C%22-e%22%2C%22VISOTRUST_API_BASEURL%22%2C%22viso-mcp-server%22%5D%2C%22env%22%3A%7B%22VISOTRUST_API_BASEURL%22%3A%22%24%7Binput%3Aviso_baseurl%7D%22%2C%22VISOTRUST_API_TOKEN%22%3A%22%24%7Binput%3Aviso_token%7D%22%7D%7D&quality=insiders" rel="nofollow"><img src="https://img.shields.io/badge/VS_Code_Insiders-Install_Server-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white" alt="通过 Docker 在 VS Code Insiders 中安装" style="max-width: 100%;"></a>

手动设置 VS Code

向 VS Code 的用户设置(JSON)文件添加以下 JSON 块。可以通过按 Ctrl + Shift + P 并键入“Preferences: Open User Settings (JSON)”来完成此操作。

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "viso_baseurl",
        "description": "VISO TRUST API Base URL",
        "default": "https://app.visotrust.com"
      },
      {
        "type": "promptString",
        "id": "viso_token",
        "description": "VISO TRUST API Token",
        "password": true
      }
    ],
    "servers": {
      "viso-mcp": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "VISOTRUST_API_TOKEN",
          "-e",
          "VISOTRUST_API_BASEURL",
          "visotrustai/viso-mcp-server:latest"
        ],
        "env": {
          "VISOTRUST_API_BASEURL": "${input:viso_baseurl}",
          "VISOTRUST_API_TOKEN": "${input:viso_token}"
        }
      }
    }
  }
}

可选地,可以在工作区中的 .vscode/mcp.json 文件中添加类似的示例(即不带 mcp 键)。这将允许您与其他人员共享配置。

{
  "inputs": [
    {
      "type": "promptString",
      "id": "viso_baseurl",
      "description": "VISO TRUST API Base URL",
      "default": "https://app.visotrust.com"
    },
    {
      "type": "promptString",
      "id": "viso_token",
      "description": "VISO TRUST API Token",
      "password": true
    }
  ],
  "servers": {
    "viso-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "VISOTRUST_API_TOKEN",
        "-e",
        "VISOTRUST_API_BASEURL",
        "visotrustai/viso-mcp-server:latest"
      ],
      "env": {
        "VISOTRUST_API_BASEURL": "${input:viso_baseurl}",
        "VISOTRUST_API_TOKEN": "${input:viso_token}"
      }
    }
  }
}

使用 Claude Desktop 和其他 MCP 客户端

Docker 配置

{
    "mcpServers": {
        "viso-mcp": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "-e", "VISOTRUST_API_TOKEN",
                "-e", "VISOTRUST_API_BASEURL",
                "visotrustai/viso-mcp-server:latest"
            ],
            "env": {
                "VISOTRUST_API_TOKEN": "<your-api-token>",
                "VISOTRUST_API_BASEURL": "https://app.visotrust.com"
            }
        }
    }
}

Java 配置

{
    "mcpServers": {
        "viso-mcp": {
            "command": "java",
            "args": [
                "-jar",
                "viso-mcp-server-<version>.jar",
                "--port",
                "8080",
                "--host",
                "localhost"
            ],
            "env": {
                "JAVA_TOOL_OPTIONS": "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005",
                "VISOTRUST_API_TOKEN": "<your-api-token>",
                "VISOTRUST_API_BASEURL": "https://app.visotrust.com"
            }
        }
    }
}

注意:JAVA_TOOL_OPTIONS 环境变量用于设置 JVM 选项以进行远程调试。地址和端口可以根据需要更改。

💻 开发

Docker 设置

构建 Docker 镜像

docker build -t viso-mcp-server .

运行 Docker 容器

docker run -i --rm -e VISOTRUST_API_TOKEN=<your-api-token> viso-mcp-server

调试

安装 MCP Inspector

npm -g install @modelcontextprotocol/inspector

运行 MCP Inspector 进行测试

  1. 构建 MCP Server Jar 文件
./gradlew bootJar
  1. 运行 MCP Inspector
npx @modelcontextprotocol/inspector \
    -e JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=\*:5005 \
    -e VISOTRUST_API_TOKEN=<your-api-token> \
    java -jar build/libs/viso-mcp-server-<version>.jar \
    --port 8080 --host localhost

替换 <version> 为项目的当前版本(例如,1.0.0 或最新发布的版本)。

CI/CD 流水线

该项目使用 GitHub Actions 进行持续集成和部署。工作流程包括以下任务:

格式检查

使用 Spotless 检查代码格式:

./gradlew spotlessCheck

构建

构建应用程序并创建 JAR 文件:

./gradlew build

发布

当创建新版本时:

  1. 更新 build.gradle 中的项目版本以匹配发布标签
  2. 将 JAR 文件上传到带有发布标签版本的 GitHub 发布
  3. 构建并推送到 Docker Hub 的 Docker 镜像,带有标签:
    • latest
    • 发布标签(例如,v1.0.0
发布所需的秘密

为了启用 Docker Hub 发布,请将这些秘密添加到您的 GitHub 存储库:

  • DOCKERHUB_USERNAME:您的 Docker Hub 用户名
  • DOCKERHUB_TOKEN:您的 Docker Hub 访问令牌

🛠️ 工具

本节提供了由 VISO MCP 服务器提供的工具的文档。每个工具都有特定的目的、输入参数和输出格式。

评估

get_assessment - 通过其ID获取评估

  • id: 评估ID(数字,必需)

返回特定评估的详细信息。

create_assessment - 开始评估

  • relationshipId: 创建评估的关系ID(数字,必需)
  • recipientEmail: 接收者的电子邮件(字符串,必需)
  • recipientFirstName: 接收者的名(字符串,必需)
  • recipientLastName: 接收者的姓(字符串,必需)
  • publicDocumentUrls: 公共文档的URL(字符串数组,可选)
  • followupType: 跟进类型(字符串,必需)
  • followupRiskThreshold: 跟进的风险阈值(字符串,可选)
  • aiProcessingOnly: 是否仅使用AI处理(布尔值,可选)
  • files: 包含在评估中的文件(字节数组,可选)

返回创建的评估详情。

get_assessment_summary - 通过其ID获取评估摘要

  • id: 评估ID(数字,必需)

返回特定评估的摘要详情。

审计日志

get_user_audit_log_events - 获取组织的审计日志事件

  • request: 审计日志请求参数(对象,必需)
    • startDate: 审计日志事件的开始日期(字符串,必需)
    • endDate: 审计日志事件的结束日期(字符串,必需)
    • auditLogType: 要检索的审计日志事件类型(字符串,可选)

返回用户审计日志事件列表,最多500条记录。

商业案例

get_all_business_cases - 获取组织的所有可用商业案例

无需参数。

返回组织所有可用商业案例的列表。

数据类型

get_all_datatypes - 获取组织的所有可用数据类型

无需参数。

返回组织所有可用数据类型的列表。

IQR(智能查询响应)

ask_trust_center - 关于您的AI信任中心提问

  • request: 信任中心查询参数(对象,必需)
    • query: 要询问的问题(字符串,必需)

返回关于您的AI信任中心的AI生成的回答。

ask_relationship - 关于特定关系提问

  • request: 关系查询参数(对象,必需)
    • relationshipId: 要查询的关系ID(数字,必需)
    • query: 要询问的问题(字符串,必需)

返回关于特定关系的AI生成的回答。

关系

get_all_relationships - 获取所有关系及其评估详情

无需参数。

返回第三方供应商的信息,包括他们的评估状态、风险级别和联系详情。

get_relationship_by_id - 通过ID获取特定关系及其评估详情

  • id: 关系ID(数字,必需)

返回第三方供应商的详细信息,包括评估状态、风险级别和联系详情。

create_relationship - 与第三方供应商建立新的关系

  • request: 关系创建参数(对象,必需)
    • vendorName: 供应商名称(字符串,必需)
    • businessOwnerEmail: 业务所有者电子邮件(字符串,必需)
    • homepage: 供应商主页URL(字符串,可选)
    • businessContextIds: 业务上下文ID(数字数组,可选)
    • dataTypeIds: 数据类型ID(数字数组,可选)
    • tags: 应用于关系的标签(字符串数组,可选)

返回创建的关系详情。

update_relationship - 更新与第三方供应商的现有关系

  • request: 关系更新参数(对象,必需)
    • id: 关系ID(数字,必需)
    • vendorName: 供应商名称(字符串,可选)
    • homepage: 供应商主页URL(字符串,可选)
    • businessContextIds: 业务上下文ID(数字数组,可选)
    • dataTypeIds: 数据类型ID(数字数组,可选)
    • businessOwnerEmail: 业务所有者电子邮件(字符串,可选)
    • tags: 应用于关系的标签(字符串数组,可选)

返回更新的关系详情。

partially_update_relationship - 部分更新现有的关系

  • request: 部分关系更新参数(对象,必需)
    • id: 关系ID(数字,必需)
    • [update_relationship 中需要更改的任何字段]

返回只有指定字段更改的更新关系详情。

search_relationships - 通过域名或供应商名称搜索关系

  • request: 搜索参数(对象,必需)
    • query: 搜索查询(字符串,必需)

返回与查询