Back to Browse

Aistupidlevel Sdk MCP Server

Developer ToolsLow Risk10.0MCP RegistryLocal
Free

Server data from the Official MCP Registry

LLM benchmark rankings, drift status, incidents and Smart Router previews from AI Stupid Level.

About

LLM benchmark rankings, drift status, incidents and Smart Router previews from AI Stupid Level.

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (3 strong, 3 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry.

11 files analyzed · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

What You'll Need

Set these up before or after installing:

Data API key (asl_live_...) for rankings, history, drift, incidents and provider status. Free key: https://aistupidlevel.info/account/data-keys (10 requests a day, 1 a minute).Required

Environment variable: ASL_DATA_KEY

Smart Router key (aism_...) for preview_route, ask_router and usage. Create one at https://aistupidlevel.info/router/keys.Required

Environment variable: ASL_ROUTER_KEY

true: every Smart Router call returns a mock answer from real routing, so nothing is spent or counted.Optional

Environment variable: ASL_SANDBOX

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-studioplatforms-aistupidlevel": {
      "env": {
        "ASL_SANDBOX": "your-asl-sandbox-here",
        "ASL_DATA_KEY": "your-asl-data-key-here",
        "ASL_ROUTER_KEY": "your-asl-router-key-here"
      },
      "args": [
        "-y",
        "@aistupidlevel/mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

AI Stupid Level SDKs

Official clients for the AI Stupid Level Smart Router, an OpenAI-compatible endpoint. Each request goes to the model measuring best for that kind of work, based on benchmarks that are re-run continuously. You call it with your own provider keys.

PackageInstallSource
TypeScript / JavaScriptnpm install @aistupidlevel/routerpackages/router
Pythonpip install aistupidlevelpython
Vercel AI SDK providernpm install @aistupidlevel/ai-sdk-providerpackages/ai-sdk-provider
MCP server (Claude, Cursor, VS Code, …)npx -y @aistupidlevel/mcppackages/mcp
n8n community nodeSettings → Community Nodes → n8n-nodes-aistupidlevelpackages/n8n-nodes-aistupidlevel
Raycast extensionRaycast Store (in review)integrations/raycast/aistupidlevel
LangChain chat model (ChatAISL)pip install langchain-aistupidlevellangchain-python
Hermes Agent provider pluginhermes plugins install aistupidlevelintegrations/hermes/aistupidlevel
DeepSeek Harness plugin bundledsh plugin --profile web add @aistupidlevel/dsh-providerpackages/dsh-provider
OpenClaw provider pluginopenclaw plugins install clawhub:@aistupidlevel/openclaw-providerpackages/openclaw-provider
Pi provider extensionpi install npm:@aistupidlevel/pi-providerpackages/pi-provider
Langflow model provider + componentpip install lfx-aistupidlevel, then restart Langflowlangflow-python
Open WebUI Function (manifold pipe)Admin Panel → Functions → Import from URLintegrations/open-webui

openapi/router-v1.json describes the API in OpenAPI 3.1, for generating a client in any other language. The live copy is at https://aistupidlevel.info/v1/openapi.json.

Quick start

import { ASLRouter } from '@aistupidlevel/router';

const router = new ASLRouter(); // ASL_ROUTER_KEY
const r = await router.chat.completions.create({ model: 'auto-coding', messages: [{ role: 'user', content: 'Fix this bug: ...' }] });
console.log(r.choices[0].message.content, r.routing.model, r.routing.reasoning);
from aistupidlevel import ASLRouter

router = ASLRouter()  # ASL_ROUTER_KEY
r = router.chat.completions.create(model="auto-coding", messages=[{"role": "user", "content": "Fix this bug: ..."}])
print(r.choices[0].message.content, r.routing.model, r.routing.reasoning)

Why use an SDK instead of an OpenAI client

Any OpenAI client works against https://aistupidlevel.info/v1. The SDKs add:

  • Routing info on every answer and stream: the model and provider that answered, why they were chosen, and whether a fallback answered.
  • Safe retries. An automatic Idempotency-Key means a request is answered once, even if it is retried.
  • Typed errors with party and retryable. An app can tell its user to top up, to fix a provider key, or simply to try again.
  • runTools / run_tools, a tool-calling loop that stays on one model.
  • Sandbox mode (mock answers through real routing, at no cost), route previews, and usage.

See the API documentation.

Development

# TypeScript (the router package runs on Node 18+; the AI SDK provider needs Node 22+)
cd packages/router && npm ci && npm run build && npm test
cd packages/ai-sdk-provider && npm ci && npm run build && npm test
cd packages/mcp && npm ci && npm run build && npm test
cd packages/openclaw-provider && npm ci && npm test   # Node 24.16+, like OpenClaw
cd packages/pi-provider && npm ci && npm test         # Node 22.19+, like Pi
cd packages/n8n-nodes-aistupidlevel && npm ci && npm run build && npm run lint && npm test

# Python
cd python && pip install -e . && python -m unittest discover -s tests
cd langflow-python && pip install -e . pytest && pytest tests   # in a venv with Langflow 1.12+

The live tests run against the real router in sandbox mode, so nothing is spent. They need a router key and are skipped without one:

ASL_ROUTER_KEY=aism_... npm test
ASL_ROUTER_KEY=aism_... python -m unittest discover -s tests

Releasing

  1. Bump the version in every place it appears:
    • packages/router/package.json and packages/router/src/core.ts;
    • packages/ai-sdk-provider/package.json and packages/ai-sdk-provider/src/index.ts;
    • packages/mcp/package.json, packages/mcp/src/config.ts and both versions in packages/mcp/server.json;
    • python/src/aistupidlevel/_version.py.
  2. npm: npm publish --access public in each package directory. prepublishOnly builds the package and runs its tests first.
  3. PyPI: cd python && python -m build && twine upload dist/*.
  4. MCP Registry, after the npm release of @aistupidlevel/mcp: cd packages/mcp && mcp-publisher login github && mcp-publisher publish.
  5. n8n node: n8n accepts only npm releases with provenance, so it is published by .github/workflows/n8n-publish.yml. Bump packages/n8n-nodes-aistupidlevel/package.json and its CHANGELOG.md, then push a tag n8n-v<version>.
  6. Raycast: from integrations/raycast/aistupidlevel, npm run publish opens a pull request to raycast/extensions.
  7. Pi: cd packages/pi-provider && npm publish (Node 22.19+). Push first: the pi.dev gallery image is read from main. The pi-package keyword lists it on pi.dev/packages; there is nothing to submit.
  8. Langflow: bump langflow-python/pyproject.toml, src/lfx_aistupidlevel/__init__.py and src/lfx_aistupidlevel/extension.json (a test checks they match), then cd langflow-python && uv build && twine upload dist/* with twine 7 or later.

Licence

MIT

Reviews

No reviews yet

Be the first to review this server!