项目简介

Kortx是一款基于Model Context Protocol (MCP) 实现的服务器,旨在为大型语言模型(LLM)客户端(如编程助手)提供统一的上下文信息管理和功能调用接口。它集成了OpenAI的GPT-5系列模型、Perplexity的实时搜索能力,并支持文件内容、Serena、MCP知识图谱和CCLSP等多种上下文源,赋能LLM进行规划、代码改进、问题解决、内容搜索和视觉内容创作。

主要功能点

  • 多模型AI工具集成: Kortx集成了OpenAI的GPT-5系列模型('gpt-5'、'gpt-5-mini'、'gpt-5-nano'、'gpt-5-codex')以及Perplexity的Sonar模型,提供强大的语言理解和生成能力。
  • 丰富的咨询工具: 内置六种核心咨询工具及一个批量执行器,涵盖软件开发和内容创作的多种场景:
    • 'think-about-plan': 对计划和方法提供战略性反馈,分析清晰度、可行性、风险等。
    • 'suggest-alternative': 针对现有方法提出替代方案,考虑不同范式、简化方案和权衡。
    • 'improve-copy': 优化文本、文档或消息,提升清晰度、简洁性、语气和技术准确性。
    • 'solve-problem': 提供调试和问题解决协助,包括根本原因分析、诊断步骤和解决方案。
    • 'search-content': 利用Perplexity Sonar模型进行实时网络、学术或SEC搜索,提供带引用的答案和图片搜索。
    • 'create-visual': 基于GPT Image生成、编辑或搜索视觉内容,支持图像生成和编辑模式。
    • 'batch-consult': 并行运行多个工具调用,聚合返回结果以提高效率。
  • 上下文信息聚合: 能够摄取本地文件内容,并可作为连接器连接到Serena(语义代码检索)、MCP知识图谱(项目记忆和决策)和CCLSP(语言服务器协议信息)等外部MCP服务器,以获取更丰富的项目上下文。
  • 安全与性能: 内置结构化日志、请求速率限制、响应缓存,并提供加固的Docker镜像以确保安全和可扩展性。
  • 灵活配置: 可通过环境变量精细配置OpenAI模型行为、推理强度、详细程度以及API密钥等。

安装步骤

在安装Kortx MCP服务器之前,请确保您的系统已安装Node.js (推荐版本 >= 22.12.0) 和 npm (推荐版本 >= 9)。

  1. 设置API密钥: Kortx服务器需要OpenAI和Perplexity的API密钥才能运行。请将它们设置为环境变量:
    export OPENAI_API_KEY=sk-your-openai-key
    export PERPLEXITY_API_KEY=pplx-your-perplexity-key
    如果您不使用Perplexity搜索或图片搜索模式,可以禁用相关功能,则Perplexity密钥不是强制性的,但默认配置需要。
  2. 作为npm包使用 (推荐): Kortx可以通过 'npx' 直接运行,无需本地安装:
    npx @effatico/kortx-mcp@latest
    如果您希望全局安装,可以运行:
    npm install -g @effatico/kortx-mcp
    kortx-mcp
  3. 使用Docker运行 (推荐用于生产环境): 构建Docker镜像:
    docker build -t kortx-mcp .
    运行容器(请务必通过环境变量传入API密钥):
    docker run -i --rm \
      -e OPENAI_API_KEY=$OPENAI_API_KEY \
      -e PERPLEXITY_API_KEY=$PERPLEXITY_API_KEY \
      kortx-mcp
    仓库中也提供了 'docker-compose.yml' 示例,用于更持久的运行和卷挂载。

服务器配置

MCP客户端需要以下配置信息来连接并启动Kortx MCP服务器。以下是一个典型的MCP客户端配置示例,用于通过 'npx' 启动Kortx服务器,并通过环境变量传递API密钥:

{
  "mcpServers": {
    "kortx-mcp": {
      "command": "npx",
      "args": ["-y", "@effatico/kortx-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "${OPENAI_API_KEY}",
        "PERPLEXITY_API_KEY": "${PERPLEXITY_API_KEY}"
      }
    }
  }
}
  • 'mcpServers': 这是MCP客户端配置中用于定义一个或多个MCP服务器的顶级键。
  • 'kortx-mcp': 这是您为Kortx服务器定义的名称,客户端将使用此名称引用该服务器。
  • 'command': 指定用于启动Kortx服务器的命令。在此示例中,是 'npx'。
  • 'args': 传递给 'command' 的参数列表。'["-y", "@effatico/kortx-mcp@latest"]' 表示使用 'npx' 运行最新版本的 '@effatico/kortx-mcp' 包。
  • 'env': 一个对象,用于将环境变量传递给Kortx服务器进程。在这里,它确保Kortx服务器能够访问所需的OpenAI和Perplexity API密钥。

您还可以通过其他环境变量来定制Kortx服务器的行为,例如调整AI模型、开启/关闭缓存或速率限制等。以下是一些常用的环境变量及其默认值:

  • 'OPENAI_MODEL': 指定OpenAI模型,可选值包括 'gpt-5'、'gpt-5-mini'、'gpt-5-nano'、'gpt-5-codex'。默认值为 'gpt-5-mini'。
  • 'OPENAI_REASONING_EFFORT': 控制AI推理的强度,可选值 'minimal'、'low'、'medium'、'high'。默认值为 'minimal'。
  • 'ENABLE_RESPONSE_CACHE': 设置为 'true' 或 'false',决定是否启用响应缓存。默认值为 'true'。
  • 'CACHE_MAX_SIZE_MB': 缓存的最大大小(MB)。默认值为 '100'。
  • 'ENABLE_RATE_LIMITING': 设置为 'true' 或 'false',决定是否启用请求速率限制。默认值为 'true'。
  • 'MAX_REQUESTS_PER_HOUR': 每小时允许的最大请求数。默认值为 '100'。
  • 'ENABLE_SERENA', 'ENABLE_MEMORY', 'ENABLE_CCLSP': 这些是布尔值,用于控制是否启用与Serena、MCP知识图谱和CCLSP等MCP服务器的集成。默认都为 'true'。
  • 'INCLUDE_FILE_CONTENT': 设置为 'true' 或 'false',决定是否将本地文件内容纳入上下文。默认值为 'true'。 更多详细的配置项请参考仓库中的 '.env.example' 文件。

基本使用方法

一旦Kortx MCP服务器通过上述配置在您的MCP客户端中成功启动,LLM客户端即可通过JSON-RPC协议与之通信。

例如,客户端可以:

  1. 列出可用工具: 发送 'tools/list' 请求,获取所有Kortx提供的咨询工具及其详细的输入参数SCHEMA。

  2. 调用工具: 发送 'tools/call' 请求,指定工具名称(如 'think-about-plan', 'solve-problem', 'search-content', 'create-visual' 等)及相应的输入参数。

    • 示例: 调用 'think-about-plan' 工具 (规划分析) 客户端向Kortx服务器发送类似以下内容的JSON-RPC请求:
      {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "tools/call",
        "params": {
          "name": "think-about-plan",
          "arguments": {
            "plan": "Implement new user authentication with OAuth2.0 and JWT.",
            "context": "Existing system uses basic auth, need to support SSO and mobile clients."
          }
        }
      }
      Kortx服务器将执行AI咨询,并返回包含评估、建议和问题的响应。
    • 示例: 调用 'search-content' 工具 (内容搜索) 客户端发送如下请求进行实时内容搜索:
      {
        "jsonrpc": "2.0",
        "id": 2,
        "method": "tools/call",
        "params": {
          "name": "search-content",
          "arguments": {
            "query": "最新的Go语言Web框架性能对比",
            "model": "sonar-pro",
            "searchMode": "web"
          }
        }
      }
      Kortx将通过Perplexity进行搜索并返回带引用的结果。
    • 示例: 调用 'create-visual' 工具 (生成图片) 客户端发送如下请求来生成一张图片:
      {
        "jsonrpc": "2.0",
        "id": 3,
        "method": "tools/call",
        "params": {
          "name": "create-visual",
          "arguments": {
            "mode": "generate",
            "prompt": "A highly detailed futuristic cityscape at sunset with flying cars and holographic advertisements, cyberpunk style."
          }
        }
      }
      Kortx将通过OpenAI的GPT Image模型生成图片,并返回Base64编码的图片数据及相关信息。

Kortx服务器将根据请求调用相应的AI模型和上下文源,处理逻辑后将结果返回给客户端。

信息

分类

AI与计算