项目简介

MCP Kotlin 全栈服务器是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为人工智能代理(AI Agents)提供一系列核心能力,使其能够自主地构建、管理和操作应用程序。它通过标准化的协议向 LLM 客户端提供上下文信息和各种功能,充当 AI 代理与外部环境交互的桥梁。

主要功能点

  • 文件系统操作: 提供安全的文件读写、目录管理和文件操作,支持路径验证和安全防护。
  • 命令行执行: 允许 AI 代理安全地执行系统命令,具备命令白名单、危险模式检测和超时保护。
  • GitHub 集成: 支持版本控制操作,如克隆、提交、推送等 Git 命令,方便 AI 代理管理代码。
  • 知识图谱记忆: 提供一个持久化的记忆系统,用于存储和管理 AI 代理的上下文信息、实体和关系。
  • 数据库连接: 支持与 PostgreSQL、MongoDB 和 MySQL 等主流数据库进行集成,提供数据访问和操作能力。
  • 资源管理: 处理自定义文档和其他资源,为 AI 代理提供更多可利用的信息和能力。
  • 安全加固: 内置多层安全机制,如路径遍历保护、命令白名单、文件大小和扩展名验证等。
  • 部署友好: 支持 Docker 和 Kubernetes 部署,包含健康检查、就绪探针,方便集成到生产环境。

安装步骤

  1. 环境准备: 确保您的系统已安装 JDK 21+、Gradle 8.10+ 和 Kotlin 2.2.0+。
  2. 克隆仓库:
    git clone https://github.com/apptolast/McpServerKotlin.git
    cd McpServerKotlin
  3. 构建服务器:
    ./gradlew build
    这会在 'build/libs/' 目录下生成一个可执行的 JAR 文件,例如 'mcp-fullstack-server-<版本号>.jar'。

服务器配置 (供MCP客户端使用)

MCP客户端需要配置如何启动此服务器以及如何建立连接。以下是客户端可能需要配置的关键信息点:

  • 服务器名称 (server_name): 推荐设置为 'McpServerKotlin' 或您自定义的、易于识别的名称。
  • 启动命令 (command):
    • 如果您希望客户端直接运行已构建的 JAR 文件,命令通常为 'java'。
    • 如果您希望客户端直接从源码启动,命令为 './gradlew'。
  • 启动参数 (args):
    • 如果 'command' 为 'java',参数示例为 '["-jar", "path/to/mcp-fullstack-server-<版本号>.jar"]'。请将 'path/to/' 替换为 JAR 文件的实际存储路径,并将 '<版本号>' 替换为实际生成的文件名。
    • 如果 'command' 为 './gradlew',参数为 '["run"]'。
  • 连接主机 (host): 服务器将监听的 IP 地址,默认值为 '0.0.0.0'。您可以通过设置环境变量 'MCP_HOST' 来覆盖此默认值,例如 '127.0.0.1'。
  • 连接端口 (port): 服务器将监听的端口号,默认值为 '3000'。您可以通过设置环境变量 'MCP_PORT' 来覆盖此默认值,例如 '8080'。
  • 其他环境变量 (env): 客户端可以在启动服务器时传递各种环境变量,以配置服务器的特定行为,例如:
    • 'MCP_WORKING_DIR=/your/workspace':指定工作目录。
    • 'MCP_ALLOWED_DIRS=/path/to/allowed1,/path/to/allowed2':允许访问的文件系统路径。
    • 'MCP_ALLOWED_COMMANDS=ls,cd,git':允许执行的命令行命令。
    • 'GITHUB_TOKEN=your_github_token':GitHub 集成所需的认证令牌。

基本使用方法

MCP客户端通过 JSON-RPC 协议与此服务器通信。客户端可以发送请求来调用服务器提供的各种功能,例如:

  1. 读取文件: 客户端向服务器发送请求,指定文件路径,服务器返回文件内容。
  2. 执行命令: 客户端发送一个要执行的 Bash 命令及其参数,服务器安全地执行并返回结果。
  3. 操作 Git 仓库: 客户端请求执行 'git clone'、'git commit' 等操作,服务器执行并将结果反馈给客户端。
  4. 查询记忆: 客户端可以请求服务器从知识图谱中检索实体或关系,以获取 AI 代理的历史上下文信息。
  5. 数据交互: 客户端可以通过服务器连接到数据库,进行数据的读写和查询。

开发者或 AI 代理可以利用这些功能,通过 MCP 协议与服务器交互,从而实现复杂的应用构建、代码管理、数据处理和自动化任务。

信息

分类

开发者工具