mcp-qwen-cli
v0.4.0
Published
MCP server wrapper for Qwen Code CLI
Maintainers
Readme
MCP Qwen CLI
A simple MCP server wrapper for Qwen Code CLI that enables AI assistants to use Qwen's capabilities through the Model Context Protocol.
What it does
This server exposes three tools that interact with Qwen Code CLI:
qwenSearch: Asks Qwen to perform a web search using your querychat: Sends prompts directly to Qwen for general conversationsanalyzeFile: Analyzes files (images, PDFs, text) using Qwen's multimodal capabilities
Prerequisites
- Qwen Code CLI installed and configured (optional with --allow-npx flag)
Authentication Setup
Qwen CLI supports both browser authentication and API key authentication:
Option 1: Browser Authentication (Recommended for personal use)
- Install Qwen CLI:
npm install -g @qwen-code/qwen-code - Run
qwenonce to complete browser authentication - No additional environment variables needed
Option 2: API Key Authentication
Set up environment variables for API access:
# For DashScope (Alibaba Cloud) - Recommended
export OPENAI_API_KEY="your_api_key_here"
export OPENAI_BASE_URL="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
export OPENAI_MODEL="qwen3-coder-plus"
# For OpenRouter (free tier available)
export OPENAI_API_KEY="your_api_key_here"
export OPENAI_BASE_URL="https://openrouter.ai/api/v1"
export OPENAI_MODEL="qwen/qwen3-coder:free"The server automatically detects which authentication method to use based on your environment.
🚀 Quick Start with Claude Code
1. Add the MCP server
claude mcp add -s project qwen-cli -- npx mcp-qwen-cli --allow-npxOr configure your MCP client with the settings shown in the Installation Options section below.
2. Try it out
Example prompts:
- Search: "Search for the latest TypeScript 5.0 features using Qwen"
- Chat: "Ask Qwen to explain the difference between async/await and promises in JavaScript"
- File Analysis: "Ask Qwen to analyze the image at /path/to/screenshot.png"
🔧 Installation Options
Using npx with --allow-npx flag
{
"mcpServers": {
"mcp-qwen-cli": {
"command": "npx",
"args": ["mcp-qwen-cli", "--allow-npx"]
}
}
}Local Development
- Clone and install:
git clone https://github.com/choplin/mcp-qwen-cli
cd mcp-qwen-cli
bun install- Add to Claude Desktop config:
{
"mcpServers": {
"mcp-qwen-cli": {
"command": "bun",
"args": ["run", "/path/to/mcp-qwen-cli/index.ts"]
}
}
}🛠️ Available Tools
1. qwenSearch
Performs a web search using Qwen Code CLI.
Parameters:
query(required): The search querylimit(optional): Maximum number of resultssandbox(optional): Run in sandbox modeyolo(optional): Skip confirmationsmodel(optional): Qwen model to use (default: "qwen3-coder-plus")
2. chat
Have a conversation with Qwen.
Parameters:
prompt(required): The conversation promptsandbox(optional): Run in sandbox modeyolo(optional): Skip confirmationsmodel(optional): Qwen model to use (default: "qwen3-coder-plus")
3. analyzeFile
Analyze files using Qwen's multimodal capabilities.
Supported file types:
- Images: PNG, JPG, JPEG, GIF, WEBP, SVG, BMP
- Text: TXT, MD, TEXT
- Documents: PDF
Parameters:
filePath(required): The absolute path to the file to analyzeprompt(optional): Additional instructions for analyzing the filesandbox(optional): Run in sandbox modeyolo(optional): Skip confirmationsmodel(optional): Qwen model to use (default: "qwen3-coder-plus")
💡 Example Prompts
Try these prompts to see mcp-qwen-cli in action:
- Search: "Search for the latest TypeScript 5.0 features using Qwen"
- Chat: "Ask Qwen to explain the difference between async/await and promises in JavaScript"
- File Analysis: "Ask Qwen to describe what's in this image: /Users/me/Desktop/screenshot.png"
🛠️ Example Usage
qwenSearch
// Simple search
qwenSearch({ query: "latest AI news" });
// Search with limit
qwenSearch({
query: "TypeScript best practices",
limit: 5,
});chat
// Simple chat
chat({ prompt: "Explain quantum computing in simple terms" });
// Using a different model
chat({
prompt: "Write a haiku about programming",
model: "qwen3-coder",
});analyzeFile
// Analyze an image
analyzeFile({
filePath: "/path/to/image.png",
prompt: "What objects are in this image?"
});
// Analyze a PDF
analyzeFile({
filePath: "/path/to/document.pdf",
prompt: "Summarize the key points in this document"
});
// General analysis without specific instructions
analyzeFile({ filePath: "/path/to/file.jpg" });📝 Development
Note: Development requires Bun runtime.
Run in Development Mode
bun run devRun Tests
bun testBuild for Production
# Development build
bun run build
# Production build (minified)
bun run build:prodLinting & Formatting
# Lint code
bun run lint
# Format code
bun run format🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
📋 Changelog
[0.4.0] - 2025-09-03
Breaking Changes
- Migrated from Gemini CLI to Qwen Code CLI
- Tool names:
googleSearch→qwenSearch - Package name:
mcp-gemini-cli→mcp-qwen-cli - Default model:
gemini-2.5-pro→qwen3-coder-plus
New Features
- Support for Qwen Code CLI with enhanced code understanding
- Updated authentication methods for Qwen services
[0.3.1] - 2025-07-03
Fixed
- Fixed Windows compatibility issue with
whichcommand
[0.3.0] - 2025-07-02
Breaking Changes
- Tool names:
geminiChat→chat,geminiAnalyzeFile→analyzeFile - Package name:
@choplin/mcp-gemini-cli→mcp-gemini-cli
New Features
analyzeFiletool for images (PNG/JPG/GIF/etc), PDFs, and text files
[0.2.0] - Previous
- Initial release with
googleSearchandgeminiChattools
