Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

ModelSpec

by turbobeestversion b8da9336f3c5a0b56d47987251a29006a5b0487bi★ 2iRuns in the cloud
Registry nameio.github.turbobeest/modelspec

Install

Overview

Description from the maker (original English)

Find AI models that fit a job from your requirements, sourced benchmarks and real cost.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs in the cloud
  • Transport: Streamable HTTP
  • Category: Search & AI memory
  • You need to fill in: Authorization

Install

Pick the AI app you use, then copy the settings.

Before you install

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Run this in your terminal

claude mcp add --transport http modelspec https://api.modelspec.dev/mcp --header 'Authorization: Bearer {api_key}'

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "modelspec": {
      "url": "https://api.modelspec.dev/mcp",
      "headers": {
        "Authorization": "Bearer {api_key}"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "modelspec": {
      "type": "http",
      "url": "https://api.modelspec.dev/mcp",
      "headers": {
        "Authorization": "Bearer {api_key}"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • Authorization secret required HTTP header
    Required ModelSpec bearer API key. Get a key at https://modelspec.dev/pricing/.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

Which apps can use it

Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.

Connect over the internet in

ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast

All apps, with pros and cons →

What it can do

Tool names and descriptions exactly as the server reported them on Nov 8, 2026. The maker wrote them, not us; we show them as plain text.

  • rank

    Legacy v1; use decide. Deprecated fixed-benchmark ranking; scores lag the catalogue and newer models may be unranked. Which models lead a fixed use-case profile? Returns a shortlist with evidence_basis and input provenance, not a quality verdict. Needs an API key (Authorization:

  • model_info

    What does one model's card say? Reads https://modelspec.dev/api/models/ .json. Split mode returns only its display name. Needs an API key. Not current evidence or a ranking; use decide.

  • list_use_cases

    Which legacy profiles and ranking rules exist? Returns https://modelspec.dev/api/rank/profiles.json with evidence floors and the neutrality commitment. Needs an API key. Use decide for decisions.

  • policy_check

    Which models and platforms does my policy allow? Returns pass, fail or undetermined per model/platform for licence, origin and data handling; undetermined is not a pass. Needs an API key (Authorization: Bearer). Costs 5 credits a call; $0.0053–$0.02 per credit by plan or pack (ht

  • decide

    Which models fit this job? Call decide early. Returns answer, ranked results, may_qualify, reading and recovery hints, decision_id and snapshot. Never add a gate or constraint the user didn't state. Relax only constraints the user stated, one at a time, and say what was relaxed a

  • compare_models

    What facts do 2 to 4 named models have? Returns sourced snapshot facts, offerings and evidence in caller order; unknowns stay null. Needs an API key (Authorization: Bearer). Costs 2 credits a call; $0.0053–$0.02 per credit by plan or pack (https://modelspec.dev/pricing/). It does

  • hardware_fit

    Does this workload fit? Returns measured for an exact cited run, estimated with sources, or undetermined. Uses basis full with sourced headroom, or basis lower_bound for unlikely only. Missing headroom cannot establish likely. Estimates never prove fit. Memory is decimal GB per d

  • vocab

    What can a Spec say? Returns ids and task types. Needs an API key. One vocabulary lookup per unknown facet, then decide. Use decide to compare models. Starter includes a minimal Spec. Compact pages: at most 20 rows, no counts; empty pages end results. Search ranks all tokens befo

  • feedback

    Was an answer reliable? Returns recorded/not_recorded for a rating after acting; include decision_id. Free, no key, and no Authorization header is forwarded. No prompts, keys or personal details in note; no questions or support. Storage stays off until covered by the privacy stat

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 10, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account turbobeest, which owns the repo

  • ✓ Pass

    Still maintained

    Code last changed today

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • ✓ Pass

    Endpoint responds

    Responded in 287 ms (HTTP 200)

  • – Not applicable

    Sign-in with OAuth

    No sign-in needed

  • ✓ Pass

    No hidden instructions in tool descriptions

    Read 9 tool descriptions and found no hidden instructions to the AI

Compared with others in Search & AI memoryi

  • More stars than 80% of the other 5865 servers in this category
  • Published to the registry more recently than 59% of the other 5865 servers in this category
  • Basic checks equal to or better than 100% of the other 5865 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is ModelSpec safe?

It passed 4 of 4 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: Authorization

Does it run on my computer or in the cloud?

It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.

Is it still maintained?

The GitHub repo last changed today, and the latest version (b8da9336f3c5a0b56d47987251a29006a5b0487b) reached the registry 27 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: Ruflo, Context7, Metabase

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Ruflo

Agent teams, swarms, memory and hooks for Claude Code and Codex, served over MCP.

by ruvnetWidely used↓ 74.3K/wk★ 81.4KUpdated today

Runs on your computer

Context7

Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.

by upstashWidely used↓ 1.2M/wk★ 64.4KUpdated yesterday

Computer or cloud

Metabase

Lets AI clients search, explore, query, and visualize data in a Metabase instance.

by metabaseWidely used★ 50.3KUpdated 6 months ago

Runs in the cloud

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

ModelSpec remote MCP server

Read-only MCP tools over the ModelSpec catalogue. Data tools require an API key. The site stays on Cloudflare Pages; this Worker only answers https://api.modelspec.dev/mcp and its public server card at https://api.modelspec.dev/.well-known/mcp/server-card.json.

Official registry listing

The root server.json describes the keyed remote server using the official registry's 2025-12-11 schema. Its checked-in version records the deployment observed when the listing was added. The schema is vendored unchanged in tests/fixtures/mcp_registry/ so validation runs offline.

After review, merge, and a successful MCP deployment, an operator can dispatch Publish MCP registry listing on main. It verifies that the live Worker's serverInfo.version matches the selected commit and writes that version to a temporary manifest. A deployment mismatch fails before authentication or publication. The workflow uses checksum-pinned mcp-publisher v1.8.1 and GitHub OIDC. It has no push trigger and needs no registry secret.

Registry metadata declares a required, secret Authorization: Bearer key. Keys come from pricing and keys.

Sources: registry schema, official publishing workflow, and publisher v1.8.1.

Smithery listing

After review, merge, and a successful MCP deployment, publish the remote URL with the required API-key configuration below. Replace YOUR_SMITHERY_NAMESPACE with the namespace owned by the publishing account:

smithery mcp publish "https://api.modelspec.dev/mcp" \

-n @YOUR_SMITHERY_NAMESPACE/modelspec \ --config-schema '{"type":"object","properties":{"apiKey":{"type":"string","title":"ModelSpec API key","description":"Create one at https://modelspec.dev/pricing/","x-from":{"header":"x-api-key"},"x-to":{"header":"x-api-key"}}},"required":["apiKey"]}'

Smithery collects each user's ModelSpec key and forwards it as the raw x-api-key header value. The MCP Worker converts it to Authorization: Bearer for API calls. This alias applies only to MCP; direct /v1/* API calls still accept only Bearer authentication.

The public server card requires no key. Its serverInfo matches initialize, including the deployed commit as its version. It declares authentication: {"required": true, "schemes": ["bearer"]} and generates its tools from the same registrations as tools/list. The card uses Cache-Control: public, max-age=300.

Sources: Smithery publishing and configuration transport.

SDK and transport

ChoiceWhat
HandlercreateMcpHandler from agents/mcp/server
ServerMcpServer from @modelcontextprotocol/server 2.0
TransportStreamable HTTP (POST /mcp)
StateStateless. No Durable Object.

McpAgent is deprecated and feature-frozen; it exists for sessionful servers that need Durable Object state. These tools are proxies: each call hits the public rank API, policy-check API, or the static JSON export and returns that body plus the origin URL. There is nothing to persist.

Read (2026-09-18):

  • https://developers.cloudflare.com/agents/model-context-protocol/apis/handler-api/
  • https://developers.cloudflare.com/agents/model-context-protocol/guides/remote-mcp-server/
  • https://developers.cloudflare.com/agents/model-context-protocol/apis/agent-api/

Route

Workers routes api.modelspec.dev/mcp* and api.modelspec.dev/.well-known/mcp/server-card.json on zone modelspec.dev belong to this Worker. The rank Worker already owns api.modelspec.dev/*; the more specific patterns win. The card route is exact, so discovery clients must use its URL without a query string. Other API routes keep their existing Worker. The CI token can edit Workers routes and cannot create DNS, so there is no new hostname.

Tools

Successful calls pass through the origin. Null on a card means not researched.

ToolOrigin
rankPOST https://api.modelspec.dev/v1/rank
model_infoGET https://modelspec.dev/api/models/ .json
list_use_casesGET https://modelspec.dev/api/rank/profiles.json
policy_checkPOST https://api.modelspec.dev/v1/policy-check
decidePOST https://api.modelspec.dev/v1/decide
compare_modelsPOST https://api.modelspec.dev/v1/compare-models
hardware_fitPOST https://api.modelspec.dev/v1/hardware-fit
vocabGET https://modelspec.dev/api/decision/vocabulary.json
feedbackPOST https://api.modelspec.dev/v1/feedback (no key; client is always mcp; the caller's address is forwarded only for the rate limit)

rank, policy_check, decide, compare_models, and hardware_fit use the RANK service binding because a same-zone Worker fetch to the public API hostname reaches the zone origin and returns 522. All five forward the key as Authorization: Bearer . The API validates presented keys and returns its auth/payment errors unchanged.

MCP accepts either Authorization: Bearer or x-api-key: . If both headers are present, their keys must agree; conflicting credentials return HTTP 400 with a JSON-RPC error. Keys never appear in logs or error messages.

All data tools require a ModelSpec key, including when MCP_REQUIRE_API_KEY="false". Missing or malformed credentials return a 401 missing_api_key refusal before any origin call. This includes rank, policy_check, decide, compare_models, hardware_fit, vocab, model_info and list_use_cases. initialize and tools/list remain public. Feedback stays keyless and carries no model data. Use an existing key, or see pricing for availability.

decide accepts the decision spec defined by docs/decision-contract.md. Its MCP input schema comes from the generated docs/decision-contract.schema.json, so the API and MCP contracts cannot drift. Read vocab first for valid facet ids. Use where for Musts that exclude and optimize.weights for Prefers that rank without excluding. Unknown capability values appear in may_qualify. Pin snapshot to reproduce a decision.

compare_models accepts only {models: ["lab/a", "lab/b"]}, with 2 to 4 distinct catalogue ids. It returns the current snapshot's sourced facts, offerings and evidence in caller order. It does not rank or choose a winner. Unknown values stay null, and omitted counts removed records. The entire MCP text stays within 16 KB. An oversized origin response becomes a compact response_too_large tool error and returns no comparison data. This named model comparison does not change the snapshot comparison at /v1/compare.

hardware_fit accepts model, sku, device_count, memory, runtime, quantisation, batch and context. Memory is an optional override in decimal GB per device. Omitted or null inputs reach the API and return undetermined when they prevent assessment. Unknown SKU or quantisation identifiers also reach the API. The tool preserves the endpoint's complete answer and citations. A measured answer cites the exact run. An estimated answer gives estimated_fit: likely|unlikely, a memory margin, the formula, inputs and assumptions. An estimate never proves fit or contains fits: true.

Client config

Run modelspec setup mcp --client claude-code or modelspec setup mcp --client claude-desktop for the client's native snippet. Claude Code:

{

"mcpServers": { "modelspec": { "type": "http", "url": "https://api.modelspec.dev/mcp", "headers": { "Authorization": "Bearer " } } } }

Claude Desktop uses the mcp-remote stdio bridge and requires Node.js/npx:

{

"mcpServers": { "modelspec": { "command": "npx", "args": ["-y", "mcp-remote", "https://api.modelspec.dev/mcp", "--header", "Authorization:${MODELSPEC_AUTH_HEADER}"], "env": {"MODELSPEC_AUTH_HEADER": "Bearer "} } } }

macOS GUI apps do not inherit your shell environment. Explicitly replace the placeholder in the env block with your key, retaining Bearer ; that stores the key in this config. The CLI's setup command writes the placeholder and never copies a saved or environment key into the config. The env block and header form follow the mcp-remote documentation.

Local

npm install

npm test npm run typecheck npx wrangler@4.134.0 dev --local --var BUILD_COMMIT:dev

Deploy is .github/workflows/mcp.yml on push to main only. Do not deploy from a laptop.