Token导航 LogoToken导航TokenDH.com
Grok CLI MCP Server logo
开发工具stdio官方来源来源级核验

Grok CLI MCP Server

MCP Server

一个基于Model Context Protocol(MCP)的服务,通过包装Grok CLI工具提供对Grok AI模型的访问,支持查询、聊天和代码生成功能。

工具数

0

提示词数

0

GitHub Stars

6

资源数

0
代码生成PythonClaudeClaudeCursorCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

BasisSetVentures

提供方

BasisSetVentures

最后核验

2026/5/17 20:19

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 --version

详细介绍

grok-cli-mcp

](https://badge.fury.io/py/grok-cli-mcp) ![Python 3.10+](https://www.python.org/downloads/) ![License: MIT](https://opensource.org/licenses/MIT)

MCP服务器封装了Grok CLI,通过模型上下文协议提供对Grok AI模型的无缝访问。

这是什么?

grok-cli-mcp 是一个 模型上下文协议(MCP) 充当MCP客户端(如Claude Code、Cline、Cursor)和 Grok CLI。它没有实现直接的API调用,而是利用官方的Grok CLI工具,提供:

  • 三种专用工具: grok_query (一般查询), grok_chat (多回合对话), grok_code (代码生成)
  • 简单配置:只需安装Grok CLI并设置API密钥
  • 经得起未来考验:自动受益于CLI改进(OAuth、定价计划等)
  • 最低限度的维护:无需跟踪Grok API更改

为什么要使用CLI包装器?

益处

利用现有工具:使用官方Grok CLI,确保兼容性和稳定性

未来的OAuth支持:当Grok CLI添加OAuth身份验证时,此包装器将自动支持它,而无需更改代码

固定定价计划:当Grok推出特定于CLI的计划,而不是按API代币付费时,可以从每月固定定价(如Codex/ChatGPT/Gemini)中受益

组织友好:在安全性和法规遵从性方面,许多组织更喜欢经审核的CLI工具,而不是直接的API集成

更简单的代码库:对于完整的API客户端实现,大约400行与1500+行

更少的依赖关系:没有HTTP客户端库、请求/响应处理或复杂的网络代码

自动更新:CLI错误修复和新功能无需更改代码即可传播

权衡

⚠️ 性能开销:额外的进程生成会为每个请求增加约50-200ms的延迟

⚠️ CLI依赖关系:需要安装Grok CLI并在PATH中

⚠️ 有限控制:无法访问CLI未公开的低级API功能

⚠️ 错误处理:CLI错误消息的结构可能不如API响应

⚠️ 无流媒体:仅限于CLI流媒体功能(如果有的话)

何时使用此

非常适合:

  • 开发和原型制作工作流程
  • 内部工具和自动化(\1000需求/分钟)
  • 延迟关键应用程序(要求\> ~/.bashrc

source ~/.bashrc


### 2.测试服务器

Run the server directly

python -m grok_cli_mcp

Or use the command

grok-mcp

Should start and wait for stdin (Ctrl+C to exit)


### 3.配置MCP客户端

#### 克劳德代码

添加到您的 `.mcp.json`:

{ "mcpServers": { "grok": { "type": "stdio", "command": "python", "args": ["-m", "grok_cli_mcp"], "env": { "GROK_API_KEY": "your-api-key-here" } } } }


#### 对于Cline(VS代码)

添加到 `~/.cline/mcp_settings.json`:

{ "mcpServers": { "grok": { "command": "python", "args": ["-m", "grok_cli_mcp"], "env": { "GROK_API_KEY": "your-api-key-here" } } } }


#### 对于光标

添加到 `~/.cursor/mcp.json`:

{ "grok": { "command": "python", "args": ["-m", "grok_cli_mcp"], "env": { "GROK_API_KEY": "your-api-key-here" } } }


**⚠️ 安全警告**:永远不要将API密钥提交到版本控制。使用环境变量或机密管理器。

## 使用示例

### 工具:grok_query

向Grok发送一个简单的提示:

{ "tool": "grok_query", "arguments": { "prompt": "Explain quantum computing in simple terms", "model": "grok-code-fast-1", "timeout_s": 120 } }


**回应**:Grok的纯文本回答

### 工具:grok_chat

带有消息历史记录的多回合对话:

{ "tool": "grok_chat", "arguments": { "messages": [ {"role": "user", "content": "What is MCP?"}, {"role": "assistant", "content": "MCP is Model Context Protocol..."}, {"role": "user", "content": "How does it work?"} ], "model": "grok-code-fast-1", "timeout_s": 120 } }


**回应**:考虑到对话历史,Grok的回答

### 工具:grok_code

使用语言提示和上下文生成代码:

{ "tool": "grok_code", "arguments": { "task": "Create a Python function to parse JSON with error handling", "language": "python", "context": "Using standard library only, no external dependencies", "timeout_s": 180 } }


**回应**:完整、可用的Python代码及其解释

### 高级:原始输出模式

获取包含完整细节的结构化响应:

{ "tool": "grok_query", "arguments": { "prompt": "Explain async/await", "raw_output": true } }


**回应**:

{ "text": "Async/await is...", "messages": [{"role": "assistant", "content": "..."}], "raw": "...", "model": "grok-code-fast-1" }


## 配置

### 环境变量

|变量|必填|默认|描述|
|----------|----------|---------|-------------|
| `GROK_API_KEY` | **是** |-|来自X.AI控制台的Grok API密钥|
| `GROK_CLI_PATH` |没有| `/opt/homebrew/bin/grok` |Grok CLI二进制文件的路径|

### 模型选择

可用型号(截至2025-12):

- `grok-code-fast-1` -代码任务的快速模型
- `grok-2` -一般任务的主要模型
- 其他型号 [Grok CLI文档](https://docs.x.ai/docs)

在每次工具调用中指定模型,或省略CLI默认值。

### 超时配置

按工具分类的默认超时:

- `grok_query`:120秒
- `grok_chat`:120秒
- `grok_code`:180秒

通过以下方式进行调整 `timeout_s` 复杂任务的参数。

## 故障排除

### “未找到Grok CLI”

**问题**:服务器找不到Grok CLI二进制文件

**解决方案**:

1. 验证安装:

which grok

1. 设置显式路径:

export GROK_CLI_PATH="/path/to/grok"

1. 添加到路径:

export PATH="$PATH:/opt/homebrew/bin"


### “未设置GROK_API_KEY”

**问题**:API密钥不在环境中

**解决方案**:

1. 壳内导出:

export GROK_API_KEY="xai-..."

1. 添加到shell配置文件(`.bashrc`, `.zshrc`):

echo 'export GROK_API_KEY="xai-..."' >> ~/.zshrc source ~/.zshrc

1. 使用 `.env` 使用python dotenv的文件(请参见 `examples/.env.example`)

### “Grok CLI超时”

**问题**:请求时间过长

**解决方案**:

1. 增加超时时间:

{"timeout_s": 300}

1. 简化提示或分解为更小的请求
1. 检查网络连接

### JSON解析错误

**问题**:CLI输出不是有效的JSON

**解决方案**:

1. 将Grok CLI更新到最新版本:

# Update instructions vary by installation method

1. 检查CLI警告/错误
1. 使用 `raw_output=true` 要查看原始CLI响应:

{"raw_output": true}


### 权限错误

**问题**:无法执行Grok CLI

**解决方案**:

1. 使CLI可执行:

chmod +x /path/to/grok

1. 检查文件所有权和权限
1. 验证CLI是否独立工作:

grok -p "test"


有关更多解决方案,请参阅 [docs/故障排除.md](docs/troubleshooting.md).

## 安全最佳实践

### 永远不要泄露秘密

**❌ 不要:**

- 提交 `.env` 带有真正API密钥的文件
- 在中包含API密钥 `.mcp.json` 由git跟踪
- 在问题或提取请求中共享API密钥
- Python文件中的硬编码键

**✅ 做:**

- 使用环境变量: `export GROK_API_KEY="..."`
- 使用shell RC文件: `~/.bashrc`, `~/.zshrc`
- 在生产中使用机密管理器:AWS机密管理器、HashiCorp Vault
- 如果意外暴露,请立即旋转按键

### 获取API密钥

1. 访问 [X.AI控制台](https://console.x.ai/)
1. 使用您的X.AI帐户登录
1. 导航到API密钥部分
1. 生成新密钥
1. 安全存储(1Password、Bitwarden等)
1. 设置为环境变量

### 关键点旋转

如果您意外暴露了API密钥:

1. **立即** 在X.AI控制台中撤销密钥
1. 生成新密钥
1. 更新环境变量
1. 检查暴露密钥的git历史记录
1. 考虑使用以下工具 `gitleaks` 扫描秘密

### 报告安全问题

**不要** 公开安全漏洞问题。

请通过GitHub安全公告或直接联系维护人员负责任地报告安全问题。

## 建筑与设计

该项目遵循 **CLI包装器模式** 而不是直接的API集成。关键设计决策:

1. **进程分离**:每个Grok请求都会生成一个子流程用于CLI执行
1. **JSON解析与回退**:尝试结构化解析,返回原始输出
1. **上下文传播**:使用FastMCP的上下文进行日志记录和进度更新
1. **异步执行**:对于非阻塞行为,所有操作都是异步优先的

有关详细的体系结构讨论,请参见 [docs/architecture.md](docs/architecture.md).

## 发展

### 运行测试

Install dev dependencies

pip install -e ".[dev]"

Run all tests

pytest

Run with coverage

pytest --cov=grok_cli_mcp --cov-report=html

Run specific test file

pytest tests/test_utils.py


### 代码格式化

Format code

black .

Lint code

ruff check --fix .


### 类型检查

mypy src/


## 贡献

欢迎投稿!拜托:

1. 分叉存储库
1. 创建要素分支(`git checkout -b feature/amazing-feature`)
1. 提交您的更改(`git commit -m 'Add amazing feature'`)
1. 推到分支(`git push origin feature/amazing-feature`)
1. 打开拉取请求

**请确保**:

- 测试通过(`pytest`)
- 代码已格式化(`black`, `ruff`)
- 类型提示正确(`mypy`)
- 文档已更新

## 许可证

此项目根据MIT许可证获得许可-请参阅 [许可证](LICENSE) 文件以获取详细信息。

## 致谢

- 内置于 [FastMCP](https://github.com/jlowin/fastmcp) 耶利米·洛因
- 用途 [模型上下文协议](https://modelcontextprotocol.io) Anthropic的SDK
- 包裹 [Grok CLI](https://docs.x.ai/docs) 来自X.AI

## 支持

- **文档**: [自述文件](README.md) • [建筑](docs/architecture.md) • [故障排除](docs/troubleshooting.md)
- **问题**: 
- **讨论**: 
- **Grok文件**: [docs.x.ai](https://docs.x.ai/docs)

______________________________________________________________________

**由……制造 [基础投资](https://github.com/BasisSetVentures)** 使用克劳德代码和FastMCP

目录标签

目录标签

代码生成PythonClaudeAI模型访问本地部署CLI工具多轮对话MCP协议

支持客户端

ClaudeCursorCline

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauthlocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP