项目简介
MCP Kotlin 全栈服务器是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为人工智能代理(AI Agents)提供一系列核心能力,使其能够自主地构建、管理和操作应用程序。它通过标准化的协议向 LLM 客户端提供上下文信息和各种功能,充当 AI 代理与外部环境交互的桥梁。
主要功能点
- 文件系统操作: 提供安全的文件读写、目录管理和文件操作,支持路径验证和安全防护。
- 命令行执行: 允许 AI 代理安全地执行系统命令,具备命令白名单、危险模式检测和超时保护。
- GitHub 集成: 支持版本控制操作,如克隆、提交、推送等 Git 命令,方便 AI 代理管理代码。
- 知识图谱记忆: 提供一个持久化的记忆系统,用于存储和管理 AI 代理的上下文信息、实体和关系。
- 数据库连接: 支持与 PostgreSQL、MongoDB 和 MySQL 等主流数据库进行集成,提供数据访问和操作能力。
- 资源管理: 处理自定义文档和其他资源,为 AI 代理提供更多可利用的信息和能力。
- 安全加固: 内置多层安全机制,如路径遍历保护、命令白名单、文件大小和扩展名验证等。
- 部署友好: 支持 Docker 和 Kubernetes 部署,包含健康检查、就绪探针,方便集成到生产环境。
安装步骤
- 环境准备: 确保您的系统已安装 JDK 21+、Gradle 8.10+ 和 Kotlin 2.2.0+。
- 克隆仓库:
git clone https://github.com/apptolast/McpServerKotlin.git cd McpServerKotlin - 构建服务器:
这会在 'build/libs/' 目录下生成一个可执行的 JAR 文件,例如 'mcp-fullstack-server-<版本号>.jar'。./gradlew build
服务器配置 (供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 协议与此服务器通信。客户端可以发送请求来调用服务器提供的各种功能,例如:
- 读取文件: 客户端向服务器发送请求,指定文件路径,服务器返回文件内容。
- 执行命令: 客户端发送一个要执行的 Bash 命令及其参数,服务器安全地执行并返回结果。
- 操作 Git 仓库: 客户端请求执行 'git clone'、'git commit' 等操作,服务器执行并将结果反馈给客户端。
- 查询记忆: 客户端可以请求服务器从知识图谱中检索实体或关系,以获取 AI 代理的历史上下文信息。
- 数据交互: 客户端可以通过服务器连接到数据库,进行数据的读写和查询。
开发者或 AI 代理可以利用这些功能,通过 MCP 协议与服务器交互,从而实现复杂的应用构建、代码管理、数据处理和自动化任务。
信息
分类
开发者工具