@three-ws/alibaba-cloud-mcp

@three-ws/alibaba-cloud-mcp

MCP server for Alibaba Cloud DashScope by three.ws — Qwen chat, embeddings, and model discovery using your own Alibaba Cloud API key.

npx -y @three-ws/alibaba-cloud-mcp
View on GitHubStar the repoMCP Registry

MCP server for Alibaba Cloud DashScope, Qwen chat, embeddings, and model discovery on your own account.

npm license node three.ws

Install · Quick start · Tools · Models · three.ws


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-mcp

Run it directly with npx (no install needed):

DASHSCOPE_API_KEY=sk-... npx @three-ws/alibaba-cloud-mcp

#Quick start

With Claude Code, one command:

claude mcp add alibaba-cloud -e DASHSCOPE_API_KEY=sk-... -- npx -y @three-ws/alibaba-cloud-mcp

Or 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

  1. An Alibaba Cloud account
  2. A DashScope API key, navigate to API Keys and create one
  3. 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-mcp

#Programmatic 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 Models

Built by three.ws · three.ws/blog/three-ws-alibaba-cloud-partnership