_ registry / mcp streamable-http · checked 15h ago

klassio-mcp

https://klassio.se

Registry code: f72b8e97bb158ff2

api record

Klassio MCP — HS/CN classification, EUDR scope checks, and MFN duty lookups. Anonymous: 2 read-only tools. Authed (Bearer klsm_...): 9 tools incl. bulk classification, dictionary writes, and prior-decisions recall. For bulk eval/scoring use the BYOM loop, not the inline judge: klassio_classify_article(dry_run:true) returns retrieval-only candidates with no judge spend — judge with your own model (fan out across subagents to parallelise) — then klassio_submit_classification_verdict. BYOM token-saving knobs on classify_article: omit_system_prompt, omit_raw_candidates,…

endpoint
https://klassio.se/api/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing
karma
0 · newcomer
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
600ms

last good check

priced tools
0

of 2 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ used through this hub 30 days

The one measurement on this page that an operator cannot produce by editing a file on its own server: somebody else chose it, and paid to. Read the accounts before the calls — volume from one account is one relationship, and calling yourself is the cheap half. Both are what the ranking is built from, printed so the order can be checked rather than taken on trust.

accounts
0

distinct, expensive to fake

calls served
0

successful, last 30 days

_ what it can do 2 tools
2 never probed 0 of 2 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • klassio_classify_article unknown never probed

    Single-product classification. Accepts a free-text description plus optional structured hints (materials, intended_use, category, origin/destination country). POPULATE EVERY HINT YOU HAVE — materials/intended_use/category materially improve retrieval and candidate quality vs a description-only call (e.g. description:"Funko POP Vinyl", category:"Figurines", materials:["PVC plastic"], intended_use:"decorative collectible figure" reliably surfaces ch. 95). Returns top-3 CN candidates, EUDR scope, MFN duty, a bilingual reasoning_md narrative, a gap_analysis flagging missing inputs, and a tri-state status (confident / review_recommended / manual_review_required). Trust `status` for review-routing — do not re-derive your own confidence threshold. PAT-authed callers also receive prior_decisions[] from the org dictionary history.

    mcp-tool

    {
      "type": "object",
      "required": [
        "description"
      ],
      "properties": {
        "lang": {
          "enum": [
            "sv",
            "en"
          ],
          "type": "string",
          "description": "Return reasoning in a single language: drops the redundant rationale_* field for the other and (with compact_rules) collapses the shared rule pool to this language. Absent = bilingual (default)."
        },
        "dry_run": {
          "type": "boolean",
          "description": "First half of the BYOM eval loop: with dry_run:true retrieval + prompt-build run but the judge is NOT called — returns candidates_top10 + request_token only, no judge spend. Judge with your own model (e.g. fan out across subagents to parallelise), then call klassio_submit_classification_verdict. Prefer this over the inline judge for bulk eval/scoring."
        },
        "include": {
          "type": "array",
          "items": {
            "enum": [
              "compact_rules",
              "truncate_rules"
            ],
            "type": "string"
          },
          "description": "L3 opt-ins. 'compact_rules' hoists per-candidate rule bodies into a shared top-level classification_rules pool (candidates carry rule_ids[] instead). 'truncate_rules' truncates the pool bodies to ~240 chars (use with compact_rules). Default = master shape (per-candidate bilingual classification_rules, no pool)."
        },
        "category": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "description": "Your internal product-taxonomy label, e.g. \"Figurines\", \"Vacuum Cleaner Accessories\". Folded into the retrieval query to anchor the right chapter (e.g. \"Figurines\" pulls ch. 95 toys instead of ch. 39 raw polymer). Populate whenever you have one."
        },
        "materials": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          },
          "maxItems": 20,
          "description": "Constituent materials, e.g. [\"PVC plastic\",\"vinyl\"] or [\"wood\",\"MDF\"]. Strongly improves retrieval — a material-poor description retrieves weaker candidates. Populate whenever known."
        },
        "current_cn": {
          "type": "string",
          "pattern": "^(\\d{2}|\\d{4}|\\d{6}|\\d{8}|\\d{10})$"
        },
        "description": {
          "type": "string",
          "maxLength": 4000,
          "minLength": 1
        },
        "origin_iso2": {
          "type": "string",
          "pattern": "^[A-Z]{2}$",
          "description": "Country of origin (ISO 3166-1 alpha-2, e.g. \"CN\"). Improves duty/FTA and EUDR country-risk context and disambiguates origin-sensitive headings."
        },
        "intended_use": {
          "type": "string",
          "maxLength": 500,
          "description": "Function / end use, e.g. \"decorative collectible figure\" or \"kitchen cabinet door panel\". Disambiguates products whose bare name misleads (a \"Funko POP Vinyl\" reads as raw vinyl without it). Populate whenever known."
        },
        "destination_iso2": {
          "type": "string",
          "pattern": "^[A-Z]{2}$",
          "description": "Import destination country (ISO 3166-1 alpha-2, e.g. \"SE\"). Adds destination-specific measure/declaration context."
        },
        "omit_system_prompt": {
          "type": "boolean",
          "description": "Dry-run only: omit the re-sent judge system prompt from dry_run_prompt.system (set null) to save ~3k tokens per call. prompt_version is still returned so a caller can validate a system cached via klassio_get_judge_system_prompt. Does NOT change request_token. Default false (system included)."
        },
        "omit_raw_candidates": {
          "type": "boolean",
          "description": "Dry-run only: omit the diagnostic dry_run_prompt.raw_candidates pool. Default false (raw_candidates included). The BYOM submit path re-runs retrieval, so omitting this does not affect request_token."
        }
      },
      "additionalProperties": false
    }
    arguments 79 lines
  • klassio_lookup_cn_code unknown never probed

    Fast lookup for a known CN code. Returns the canonical description (SV + EN), chapter heading, applicable classification rules, EUDR Annex I scope (in_scope + is_ex), and the MFN duty headline. Pass include=["reasoning"] to also receive the bilingual reasoning_md narrative.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cn_code"
      ],
      "properties": {
        "cn_code": {
          "type": "string",
          "pattern": "^(\\d{2}|\\d{4}|\\d{6}|\\d{8}|\\d{10})$"
        },
        "include": {
          "type": "array",
          "items": {
            "enum": [
              "reasoning"
            ],
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/f72b8e97bb158ff2/badge.svg)](https://brick.blue/agent/f72b8e97bb158ff2)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Own the domain? Prove it and the listing carries a verified badge here too: passport.

_ how we know
card completeness
60%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.