@three-ws/alibaba-cloud-mcp
v0.1.3
Published
MCP server for Alibaba Cloud DashScope by three.ws — Qwen chat, embeddings, and model discovery using your own Alibaba Cloud API key.
Maintainers
Readme
A Model Context Protocol server that exposes Alibaba Cloud's Qwen models, and anything else in your DashScope account, to MCP clients such as Claude Desktop, Claude Code, and Cursor. It talks directly to the DashScope OpenAI-compatible REST API with your own Alibaba Cloud API key: no intermediary backend, no telemetry, no mock data.
Community-built and not affiliated with Alibaba Cloud. Registry name:
io.github.nirholas/alibaba-cloud.
Install
npm install @three-ws/alibaba-cloud-mcpRun it directly with npx (no install needed):
DASHSCOPE_API_KEY=sk-... npx @three-ws/alibaba-cloud-mcpQuick start
With Claude Code, one command:
claude mcp add alibaba-cloud -e DASHSCOPE_API_KEY=sk-... -- npx -y @three-ws/alibaba-cloud-mcpOr add the server to your MCP client config:
{
"mcpServers": {
"alibaba-cloud": {
"command": "npx",
"args": ["-y", "@three-ws/alibaba-cloud-mcp"],
"env": {
"DASHSCOPE_API_KEY": "sk-..."
}
}
}
}Requirements
- An Alibaba Cloud account
- A DashScope API key, navigate to API Keys and create one
- Node.js ≥ 20
Tools
| Tool | Description |
|---|---|
| qwen_chat | Chat completion with any Qwen model (qwen-max, qwen-plus, qwen-turbo, qwen-long) |
| qwen_embed | Text embeddings via text-embedding-v3 (1024-dim default, up to 2048) |
| qwen_list_models | List all models available on this DashScope account |
Models
| Model ID | Use |
|---|---|
| qwen-max | Highest quality: complex reasoning, long documents |
| qwen-plus | Balanced performance (default) |
| qwen-turbo | Fastest and cheapest: simple tasks |
| qwen-long | Long context (up to 1M tokens) |
| text-embedding-v3 | Embeddings, semantic search, RAG (default) |
Environment variables
| Variable | Required | Default | Description |
|---|---|---|---|
| DASHSCOPE_API_KEY | yes | - | Your DashScope API key |
| DASHSCOPE_MODEL_ID | no | qwen-plus | Default chat model |
| DASHSCOPE_EMBED_MODEL_ID | no | text-embedding-v3 | Default embedding model |
| DASHSCOPE_BASE_URL | no | International endpoint | Custom DashScope endpoint |
| DASHSCOPE_REGION | no | - | Set to cn for the China endpoint |
| DASHSCOPE_TIMEOUT_MS | no | 60000 | Request timeout in ms |
Inspect
npx -y @modelcontextprotocol/inspector npx @three-ws/alibaba-cloud-mcpProgrammatic use
The package entry point (@three-ws/alibaba-cloud-mcp) exports buildServer(): a
fully-registered McpServer with no transport attached, so you can mount the three tools
inside a host of your own instead of spawning the binary. It reads DASHSCOPE_API_KEY when
called, and registration is otherwise side-effect free. The DashScope client itself is
importable from @three-ws/alibaba-cloud-mcp/src/dashscope.js (loadConfig,
DashScopeClient, DashScopeError) when you want the REST wrapper without MCP.
// example.mjs: run with: DASHSCOPE_API_KEY=sk-... node example.mjs
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { buildServer } from '@three-ws/alibaba-cloud-mcp';
const server = buildServer();
// What this server exposes, before connecting anything.
for (const [name, tool] of Object.entries(server._registeredTools)) {
console.log(`${name}: ${tool.title}`);
}
// Serve it over stdio (what the bin does), or attach any other MCP transport.
await server.connect(new StdioServerTransport());qwen_chat: Qwen Chat
qwen_embed: Qwen Text Embeddings
qwen_list_models: List DashScope ModelsBuilt by three.ws · three.ws/blog/three-ws-alibaba-cloud-partnership
