three.ws Brain

io.github.nirholasPublished by GitHub account nirholasv0.1.4Updated Oct 24, 2026

List LLM providers and run chat completions through the three.ws multi-provider router.

The publisher's own server: BrainDog

VerifiedSTDIODesktop onlyDeveloper ToolsAI & ML

Overview

AI-generated overview

Local stdio MCP server that lets an assistant list LLM providers and run chat completions through the three.ws multi-provider router.

What you can do
  • List available LLM providers with key, network, tier, max output, live availability and whether a key is required
  • Run a chat completion through a chosen provider, returning the reply, the route taken, token usage and timing
  • Use free open-weight tiers without a key, or paid first-party flagships with a three.ws API key
  • Rely on automatic fallback across mirrors and free tiers when the requested model is briefly down
When to use it
Useful when you want an assistant to query several model vendors through one endpoint instead of wiring each vendor SDK, or to compare or route requests across Claude, GPT, o3, Grok, Qwen, DeepSeek and open-weight models.
Requirements
Runs locally via npx with Node.js 20 or newer. Network access to three.ws, or a custom base URL set with THREE_WS_BASE. Optional THREE_WS_API_KEY (Bearer token) unlocks paid flagships; optional THREE_WS_TIMEOUT_MS sets the per-request timeout, default 120000 ms.
Before you install
Prompts and messages are sent to the three.ws router and onward to third-party model providers, so avoid confidential content. Paid flagship models require THREE_WS_API_KEY and may incur charges on your three.ws account. The tools are read-only and do not change platform state, but provider availability and results vary between calls.

Installation

In SourceWeft

  1. Open three.ws Brain in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[three.ws]

@three-ws/brain-mcp

Any model, one interface — discover LLM providers and run chat completions through the three.ws multi-provider router, from any AI agent.

[npm] [license] [node] [MCP Registry] [three.ws]


A Model Context Protocol server that gives any AI assistant the three.ws multi-provider LLM router over stdio. Discover which models are available — Claude, the GPT-5.6 family, o3, Grok, Qwen, DeepSeek, NVIDIA Nemotron, IBM Granite, and more — and run a chat completion through whichever one fits, without wiring each vendor SDK yourself.

The router fronts every provider behind one endpoint and transparently falls back across mirrors and free tiers if the chosen model is briefly down. The free open-weight tiers (GPT-OSS 120B, NVIDIA NIM models) work with no key; the paid first-party flagships unlock with a three.ws API key.

Install

bash
npm install @three-ws/brain-mcp

Or run with npx (no install):

bash
npx @three-ws/brain-mcp

Quick start

Claude Code, one line:

bash
claude mcp add brain -- npx -y @three-ws/brain-mcp

To unlock the paid flagships, pass your three.ws API key:

bash
claude mcp add brain -e THREE_WS_API_KEY=sk_live_… -- npx -y @three-ws/brain-mcp

Claude Desktop / Cursor (claude_desktop_config.json or mcp.json):

json
{	"mcpServers": {		"brain": {			"command": "npx",			"args": ["-y", "@three-ws/brain-mcp"],			"env": { "THREE_WS_API_KEY": "sk_live_…" }		}	}}

Inspect the surface with the MCP Inspector:

bash
npx -y @modelcontextprotocol/inspector npx @three-ws/brain-mcp

Tools

ToolTypeWhat it does
list_providersread-onlyList every LLM the router can reach — key, network, tier, max output, live availability, and whether it needs auth.
chatread-onlyRun a chat completion through the chosen provider; returns the full reply, the route taken, token usage, and timing.

Both tools read live data — the provider set and completions vary between calls, so neither is idempotent. chat does not mutate any platform state, so it is annotated read-only.

Input parameters

list_providers — no parameters.

chat — messages (required: 1–100 turns of { role: "user" | "assistant", content }, content ≤ 16,000 chars), provider (provider key from list_providers, default gpt-oss-120b), system (optional system prompt, ≤ 8,000 chars), maxTokens (optional, 64–16384, default 4096, clamped to the model's ceiling).

Example

Both responses below are shape illustrations — the live provider set and generations will differ.

jsonc
// list_providers (example response)> {}{  "ok": true,  "count": 34,  "available": 33,  "default_provider": "gpt-oss-120b",  "providers": [    { "key": "gpt-oss-120b", "label": "GPT-OSS 120B", "network": "OpenAI · OpenRouter", "tier": "balanced", "maxOutput": 8192, "description": "Open-weight 120B from OpenAI. Fast, capable, free tier. Platform default.", "available": true, "requiresAuth": false },    { "key": "claude-sonnet-5", "label": "Claude Sonnet 5", "network": "Anthropic", "tier": "balanced", "maxOutput": 16384, "description": "Near-Opus quality on coding and agentic work at Sonnet cost. Best for most tasks.", "available": true, "requiresAuth": true },    { "key": "deepseek-r1", "label": "DeepSeek R1", "network": "DeepSeek", "tier": "reasoning", "maxOutput": 8192, "description": "Open reasoning model. Strong at math and code.", "available": true, "requiresAuth": true }    /* … */  ]}
jsonc
// chat (example response)> {    "provider": "claude-sonnet-5",    "system": "You are terse.",    "messages": [{ "role": "user", "content": "Name three Solana RPC methods." }]  }{  "ok": true,  "provider": "claude-sonnet-5",  "model": "Claude Sonnet 5",  "network": "Anthropic",  "tier": "balanced",  "routed_via": null,  "content": "getBalance, getAccountInfo, getSignaturesForAddress.",  "usage": { "input_tokens": 24, "output_tokens": 14, "total_tokens": 38 },  "timing_ms": { "first_token": 412, "total": 980 }}

routed_via is null when the requested provider answered directly; otherwise it names the mirror or free-tier route the router fell back to (so you always get an answer even if the first choice is briefly down).

Model availability is dynamic. Always call list_providers first rather than hardcoding a key. The current Claude ids are claude-fable-5, claude-opus-5, claude-sonnet-5, claude-opus-4-7, claude-sonnet-4-6, and claude-haiku-4-5, but the live list is the source of truth.

Authentication

Model classNeeds a key?
Free open-weight tiers (GPT-OSS 120B, and the NVIDIA NIM set: Nemotron 3 Super / Nemotron Super 49B / Nemotron Nano / DeepSeek V4 / Kimi K2 / Llama 4 Maverick / MiniMax M2)No
Paid first-party flagships (Claude, GPT-5.6, o3, Qwen Plus, DeepSeek, …)Yes — set THREE_WS_API_KEY

Create an API key at three.ws/dashboard/developers. Without it, paid models return a sign-in error and list_providers flags them with requiresAuth: true.

Requirements

  • Node.js >= 20.
  • Network access to https://three.ws (or your own THREE_WS_BASE).

Environment variables

VariableRequiredDefaultPurpose
THREE_WS_BASEnohttps://three.wsAPI base URL (override to self-host or target a preview).
THREE_WS_API_KEYno—Bearer credential that unlocks the paid first-party flagships.
THREE_WS_TIMEOUT_MSno120000Per-request timeout (completions stream server-side).

Errors

A failed tool call returns an MCP error result (isError: true) whose text is a single JSON object — { "ok": false, "error": "<code>", "message": "…" }, plus status and detail on upstream rejections:

errorMeaningRecovery
upstream_errorThe router rejected the request — status carries the real HTTP code: 400 (bad arguments or an unknown provider key), 401 (paid model without a valid THREE_WS_API_KEY), 429 (rate-limited), 502 (the model's stream failed before producing output).Act on status; for 401 set a key, for an unknown key re-run list_providers.
timeoutNo complete response within THREE_WS_TIMEOUT_MS. Long flagship generations can be slow — the default 120 s matches the router's own ceiling.Retry, lower maxTokens, or pick a fast-tier provider.
network_errorThe request never reached the router (DNS, offline, TLS).Check connectivity / THREE_WS_BASE.
bad_configTHREE_WS_TIMEOUT_MS is not a positive number (thrown at startup).Fix the env var.

If the requested provider fails mid-flight the router transparently falls back to a mirror or free tier and the reply's routed_via names the route taken — you only see an error when every route is exhausted.

Links


Part of the three.ws SDK suite — 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub

Source: packages/brain-mcp/README.md at commit c8f2cde

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v0.1.4LatestOct 10, 2026
  2. v0.1.3Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Brain integrations