使用说明
项目简介
mcp-llm 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为 LLM 客户端提供便捷的 LLM 功能访问。它集成了 LlamaIndexTS 库,提供了一系列工具,如代码生成、文档生成和通用问答,使得 LLM 客户端能够轻松地调用这些能力。
主要功能点
- 代码生成 (generate_code): 根据描述生成指定编程语言的代码。
- 代码生成到文件 (generate_code_to_file): 生成代码并将其写入到指定文件和行号,方便代码集成。
- 文档生成 (generate_documentation): 为给定的代码生成相应格式的文档注释。
- 通用问答 (ask_question): 允许用户向 LLM 提出问题,并获取答案,可以提供上下文信息以获得更精准的回答。
安装步骤
- 克隆仓库:
git clone https://github.com/sammcj/mcp-llm.git cd mcp-llm - 安装依赖:
确保已安装 Node.js 和 npm,然后运行:
npm install - 构建项目:
npm run build
服务器配置
为了让 MCP 客户端能够连接到 'mcp-llm' 服务器,需要在客户端的 MCP 配置中添加以下 server 配置。 请根据你的实际需求修改 'env' 中的环境变量。
{ "mcpServers": { "llm": { "command": "npx", "args": [ "-y", "mcp-llm" ], "env": { "LLM_MODEL_NAME": "deepseek-r1:7b-qwen-distill-q6_k_l", // 指定使用的 LLM 模型名称,例如 Ollama 中的模型名 "LLM_MODEL_PROVIDER": "ollama", // 指定 LLM 模型提供商,例如 ollama, openai, bedrock 等 "LLM_BASE_URL": "http://localhost:11434", // (可选) 模型提供商的基础 URL,例如 Ollama 的 API 地址 "LLM_ALLOW_FILE_WRITE": "true", // (可选) 是否允许 'generate_code_to_file' 工具写入文件,默认为 false,设置为 true 启用文件写入功能 "LLM_TIMEOUT_S": "240" // (可选) LLM 请求超时时间,单位为秒 }, "disabled": false, "autoApprove": [ // (可选) 自动批准的工具列表,客户端调用这些工具时无需用户手动批准 "generate_code", "generate_documentation", "ask_question", "generate_code_to_file" ], "timeout": 300 // (可选) 服务器连接超时时间 }, } }
注意:
- 'command' 和 'args' 指定了启动 'mcp-llm' 服务器的命令,通常无需修改。
- 'env' 中配置了服务器运行所需的环境变量,请务必根据你使用的 LLM 模型和提供商进行配置。例如,如果使用 OpenAI 模型,则需要设置 'LLM_MODEL_PROVIDER' 为 'openai' 并配置 'OPENAI_API_KEY' 环境变量。
- 'autoApprove' 列表中的工具将在客户端调用时自动批准执行,无需用户手动确认。你可以根据需要调整此列表。
基本使用方法
-
启动 MCP 服务器: 在 'mcp-llm' 仓库根目录下,运行以下命令启动服务器:
npm start服务器默认通过标准输入/输出 (stdio) 与 MCP 客户端通信。
-
配置 MCP 客户端: 将上面提供的 'server' 配置添加到你的 MCP 客户端配置文件中。确保客户端能够正确连接到该服务器。
-
调用工具: 在 MCP 客户端中,你可以使用 'callTool' 方法调用 'mcp-llm' 服务器提供的工具。 例如,调用 'generate_code' 工具生成 JavaScript 代码的请求参数可能如下所示:
{ "name": "generate_code", "arguments": { "description": "创建一个计算阶乘的 JavaScript 函数", "language": "JavaScript" } }更多工具的使用示例和参数说明,请参考仓库 'README.md' 文件中的 "Examples" 部分。
环境变量配置
'mcp-llm' 服务器通过环境变量进行配置。以下是一些常用的环境变量:
- 'LLM_MODEL_NAME' (必需): 指定要使用的 LLM 模型名称,例如 'qwen2-32b:q6_k', 'anthropic.claude-3-7-sonnet-20250219-v1:0' 或 Ollama 中的模型名称 'llama2'。
- 'LLM_MODEL_PROVIDER' (必需): 指定模型提供商,例如 'bedrock', 'ollama', 'openai', 'openai-compatible'。
- 'LLM_BASE_URL' (可选): 模型提供商的基础 URL,例如 'https://ollama.internal', 'http://my-openai-compatible-server.com:3000/v1'。
- 'LLM_TEMPERATURE' (可选): 模型温度参数,例如 '0.2'。
- 'LLM_NUM_CTX' (可选): 上下文窗口大小,例如 '16384'。
- 'LLM_TOP_P', 'LLM_TOP_K', 'LLM_MIN_P', 'LLM_REPETITION_PENALTY' (可选): 其他模型推理参数。
- 'LLM_SYSTEM_PROMPT_GENERATE_CODE', 'LLM_SYSTEM_PROMPT_GENERATE_DOCUMENTATION', 'LLM_SYSTEM_PROMPT_ASK_QUESTION' (可选): 分别用于 'generate_code', 'generate_documentation', 'ask_question' 工具的系统提示词。
- 'LLM_TIMEOUT_S' (可选): LLM 请求超时时间,单位为秒,例如 '240' 表示 4 分钟。
- 'LLM_ALLOW_FILE_WRITE' (可选): 设置为 'true' 以允许 'generate_code_to_file' 工具写入文件,默认为 'false'。
- 'OPENAI_API_KEY' (可选): OpenAI API 密钥,当使用 OpenAI 提供商时需要配置。
请根据你的实际需求配置这些环境变量。
信息
分类
AI与计算