mcpField
9
9router-embeddings

9router-embeddings

github.com/decoluaData & databases31.6k122 installsUpdated today
Repository

About 9router-embeddings

9router-embeddings is a skill for requesting text embeddings through 9Router. It supports model discovery, single or batched inputs, and provider-specific parameter handling.

Key features

  1. 01Discover embedding models
  2. 02Embed one or multiple text inputs
  3. 03Choose float or base64 encoding
  4. 04Set dimensions on supported models

Use cases

  1. 01Generate vectors for RAG text chunks
  2. 02Batch-embed a collection of strings

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/decolua/9router --skill 9router-embeddings

After installing, type/9router-embeddingsin Claude Code to confirm it loaded.

Details

From the project README

9Router — Embeddings

Requires NINEROUTER_URL (and NINEROUTER_KEY if auth enabled). See https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router/SKILL.md for setup.

Discover

curl $NINEROUTER_URL/v1/models/embedding | jq '.data[].id'
# Per-model dimensions
curl "$NINEROUTER_URL/v1/models/info?id=openai/text-embedding-3-small"

Endpoint

POST $NINEROUTER_URL/v1/embeddings

FieldRequiredNotes
modelyesfrom /v1/models/embedding
inputyesstring OR array of strings
encoding_formatnofloat (default) / base64
dimensionsnoOpenAI v3 only

Examples

curl -X POST $NINEROUTER_URL/v1/embeddings \
  -H "Authorization: Bearer $NINEROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/text-embedding-3-small","input":["hello","world"]}'

JS:

const r = await fetch(`${process.env.NINEROUTER_URL}/v1/embeddings`, {
  method: "POST",
  headers: { "Authorization": `Bearer ${process.env.NINEROUTER_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ model: "gemini/text-embedding-004", input: "RAG chunk text" }),
});
const { data } = await r.json();
console.log(data[0].embedding.length);  // dimension

Response shape

{ "object": "list", "model": "openai/text-embedding-3-small",
  "data": [
    { "object": "embedding", "index": 0, "embedding": [0.0123, -0.045, ...] },
    { "object": "embedding", "index": 1, "embedding": [...] }
  ],
  "usage": { "prompt_tokens": 5, "total_tokens": 5 } }

Provider quirks

ProviderNotes
openai, openrouter, mistral, voyage-ai, fireworks, together, nebius, github, nvidia, jina-aiNative OpenAI shape — dimensions works only on OpenAI v3 (text-embedding-3-*)
gemini, google_ai_studioServer auto-converts to embedContent/batchEmbedContents — send OpenAI shape
openai-compatible-*, custom-embedding-*Custom baseUrl from credentials

Batch (input as array) is faster; some providers cap batch size.

Comments

Markdown supported