Pre-forged tools: landscape and catalog

Status: proposed (16 Oct 2026). Part of the registry design. Two reference entries prove the manifest shape and pass their tests through tools/catalog/run_tests.py with the axlr_run_tool contract (stdin JSON, PATH and HOME only): seat_allocation and business_days. Counts, stars and dates below were read on 16 Oct 2026 with gh, curl and page fetches; what could not be verified says so.

Landscape: what exists and what it teaches🔗

CatalogSizeWhat an entry carriesOrganisationTrust
Official MCP registry (schema)> 6,000 servers (page cap hit; exact total not read)server.json: reverse-DNS name, description, version, repository, packages[] with registryType (npm, pypi, oci, mcpb…), environmentVariables{required,secret} and fileSha256 for bundlesflat; the namespace is the only groupingnamespace ownership (GitHub OAuth, DNS TXT, .well-known); metadata only, no code scan
Glama100,469tags, licence/quality/maintenance grades A–D, tool listfacets: language, hosting, capability, subject (Developer Tools 23.7k, Search 14.3k, Finance 6.7k, Databases 5.6k, Security 5.0k…), Official/Claimedletter grades, method unexplained
Smithery27,172+ MCPs, plus Skillsowner/slug, description, usage countnone visiblea "verified" badge with no stated check
PulseMCP21,698classification, weekly visitorsReference / Official / Communitybadges; submissions paused
mcp.sonot shownconfig, toolsfive top categories plus tagsmanual review of config and tools
Composio"1000+ toolkits"TOOLKIT_ACTION slug, input and output schema; auth lives outside the toolby service; a COMPOSIO_SEARCH_TOOLS meta-tool for runtime discoverymanaged OAuth; every tool wraps a SaaS API
strands-agents/tools50 modules, 1.3k starsa Python function; docstring and type hints make the schemaflatrepository review
anthropics/skills, Agent Skills spec17 skills, 182k stars; spec repo 26kSKILL.md frontmatter: name (≤ 64, lowercase, equals the directory), description (≤ 1024), license, compatibility, metadata, allowed-tools; scripts/, references/, assets/plugin bundles in marketplace.jsona git marketplace, no checksums; skills-ref validate lints
LangChain community, LlamaHub, CrewAI tools, smolagents81 / 67 / ~80 / ~10a class with name, description, args_schemaby vendornone; PyPI
ToolBench, Gorilla16,464 APIs / 1,600+per-tool JSON with api_list49 RapidAPI categories; G1/G2/G3 instruction groupspass-rate filtering; BFCL leaderboard
npm, PyPI (PEP 691/740), Homebrew formula.json8,662 formulae in one static filedist.integrity, hashes.sha256, bottle.files.<platform>.{url, sha256}flat JSON, per-item pagesper-artifact hashes; registry signatures (npm ECDSA, PyPI attestations)

Four lessons the design follows:

  1. Only the MCP registry and the package indexes carry per-artifact hashes; AXLR's index does, with a signature over the whole index (D1, D2).
  2. Nobody execute-tests catalog entries. A CI-run tests.json per tool is AXLR's verification signal and the thing that makes a catalog tool safer than a freshly forged one.
  3. Categories are weak everywhere; Glama's subject facets and RapidAPI's 49 categories are the usable references. AXLR's categories below are by the person's domain, not by vendor.
  4. Almost every catalog entry wraps a SaaS API. Offline, deterministic, non-programming tools are the gap in the market, and they are exactly what a forged-tool runtime with no secrets can run.

Entry schema🔗

A catalog tool is a ForgedTool plus a catalog block (D3):

FieldMeaning
name, description, input_schema, program, args, filesexactly the forged-tool fields; args names one of files
catalog.versionsemver
catalog.category, catalog.tagsone category from the list below; free tags for search
catalog.licenseSPDX id, MIT or Apache-2.0 compatible
catalog.requiresprogram_min_version and packages[] (empty in tier 1)
catalog.networktrue when the tool opens a socket
catalog.exampleone input and the output it produces, shown on the site and in axlr_catalog describe
catalog.sourcewhere the method or idea comes from
tests.jsonat least three cases: `{name, input, expect: {exit, stdout_json
README.mdwhat it does, the method, its limits; for health, law and tax tools, the disclaimer the output also prints

Tiers: 1 stdlib only (Python 3.10+, bash with coreutils, Node 22 without packages), no network: installed with a single card. 2 needs a package (requires.packages): the card warns when the import fails. 3 needs the network, no key: works without the sandbox or with its network allowed. 4 needs an API key: not in the catalog until the secrets mechanism exists.

Conventions: every tool prints one JSON object; a usage error exits 2 with {"error": …}; numbers that matter are exact (fractions, decimal); nothing reads files outside the workspace unless the input names them; a tool whose answer depends on a dated table (holidays, CPI, tax brackets) carries the table's date in its output and its version.

Catalog🔗

Tier 1 unless marked. "Source" names the implementation to learn from or "original".

Politics and civics🔗

ToolDescriptionSource
seat_allocationD'Hondt, Sainte-Laguë, modified Sainte-Laguë, Hare; threshold; award order and ties (reference entry)original
seat_allocation_droopDroop and Imperiali quotas, largest remainderoriginal
vote_condorcetpairwise matrix, Condorcet winner, Schulze and CopelandCIVS ideas
vote_irvinstant-runoff rounds with tie handling and exhausted ballotsoriginal
vote_bordaBorda and Dowdall scoresoriginal
vote_stvsingle transferable vote (Gregory method)original
apportionmentHuntington-Hill, Webster, Jefferson apportionment of seats among districts by populationoriginal
gerrymander_metricsefficiency gap, Polsby-Popper and Reock compactness from district vote and geometry dataoriginal
poll_margin_errorsample size, margin of error, lead significanceoriginal
legislative_calendarterm deadlines from a bill's dates with a session calendar given in the inputoriginal
transparency_request_draftaccess-to-information request template per jurisdiction (Spain Ley 19/2013, EU 1049/2001, US FOIA, UK FOIA), with "not legal advice"original
budget_breakdownper-capita, per-programme and year-over-year breakdown of a public budget CSVoriginal

Administration and office🔗

ToolDescriptionSource
business_dayscount, add, list working days with weekends and holidays given in the input (reference entry)original
holiday_tableholidays for a country and region and year, from a bundled dated table (tier 2 with holidays)vacanza/holidays
invoice_calclines, discounts, VAT per rate, withholding, totals in Decimaloriginal
iban_validateIBAN checksum, country length, BBAN splitpython-stdnum
es_tax_id_validateSpanish NIF, NIE and CIF check letterpython-stdnum
eu_vat_validateEU VAT number syntax and checksum per countrypython-stdnum
ics_generateRFC 5545 event or recurring event, with alarms and attendeesicalendar
meeting_planneroverlap of working hours across time zones (zoneinfo)original
mail_mergeCSV plus a text template to many documentsoriginal
doc_template_fillfill {{placeholders}} in text or .docx (zip and XML, no package)docxtpl ideas
date_parsenatural-language dates and durations (tier 2 with dateparser; a stdlib subset for ISO and common forms)dateparser
expense_splitsplit shared expenses and settle with the fewest transfersoriginal
letter_formalformal letter skeleton per language and register with the right salutations and closingsoriginal

Mathematics and statistics🔗

ToolDescriptionSource
exact_calcexpression evaluator over Fraction and Decimal with an AST whitelist (no eval)original
stats_describemean, median, SD, quartiles, confidence interval, correlation, linear regressionstdlib statistics
prob_distbinomial, Poisson, normal, hypergeometric pmf and cdf; combinatoricsstdlib
hypothesis_testWelch t, paired t, chi-square, Fisher exact, with p-values (exact where stdlib allows; tier 2 with scipy otherwise)scipy
number_theoryfactorisation, gcd/lcm, primality (Miller-Rabin), modular inverse, totient, CRToriginal
matrix_opsdeterminant, inverse, rank, solve over Fractionoriginal
unit_convertconversion with dimensional check from a bundled table (tier 2 with pint)pint
base_convertbases 2–36, Roman numerals, two's complementoriginal
sequence_toolsOEIS-style detection of arithmetic, geometric and polynomial sequences; next termsoriginal
sympy_solvesolve, simplify, differentiate, integrate, limit, series (tier 2 with sympy)sympy
sampling_plansample size for proportions and means, stratified allocationoriginal
rounding_reportsignificant figures, uncertainty propagationoriginal

Research and science🔗

ToolDescriptionSource
citation_formatBibTeX or CSL-JSON to APA 7, MLA 9, Chicago, IEEE, VancouverCSL styles
bibtex_toolsparse, deduplicate, normalise keys, find missing fieldsoriginal
doi_isbn_validateDOI syntax, ISBN-10/13 checksum and conversion, ISSNoriginal
doi_lookupmetadata from Crossref (tier 3)Crossref REST
arxiv_lookupsearch and fetch arXiv metadata (tier 3)arXiv API
chem_formulaparse Ca(OH)2, molar mass, mass percent, from a bundled element tableoriginal
physics_constantsCODATA 2022 constants with units and uncertaintyNIST
dna_toolsreverse complement, GC content, translation, ORF searchBiopython ideas
experiment_powerstatistical power and sample size for two-group designsoriginal
data_dictionarydescribe a dataset's columns into a data dictionary skeletonoriginal
prisma_countsPRISMA flow numbers from screening decisionsoriginal

Writing and creativity🔗

ToolDescriptionSource
readabilityFlesch, Flesch-Kincaid, Gunning Fog, SMOG; Spanish via Fernández-Huerta and Szigriszt-Pazostextstat
text_reportword and sentence counts, frequency, n-grams, reading time, longest sentencesoriginal
style_lintpassive voice, filler words, adverbs, repeated words, sentence-length spread (heuristic, English and Spanish)original
syllables_rhymesyllable count, stress, rhyme scheme check (Spanish rules exact; English heuristic)original
meter_checkscan verse against a meter (endecasílabo, alejandrino, iambic pentameter)original
name_generatorseeded names for characters, places and products, by culture and styleoriginal
story_structure_checkoutline beats against three-act, Save the Cat, hero's journeyoriginal
md_convertMarkdown to HTML, plain text or a deck outlineoriginal
latex_tableCSV to a LaTeX table with escaping and alignmentoriginal
slug_title_caseslugs, title case per style guide, smart quotesoriginal
crossword_fillfill a crossword grid from a word listoriginal
anagram_wordplayanagrams, palindromes, lipograms from a bundled word listoriginal

Programming and devops🔗

ToolDescriptionSource
semver_toolsparse, compare, bump, match rangessemver.org
cron_explainexplain a cron expression and list the next N runsoriginal
regex_testrun a pattern over text with a timeout, show groupsoriginal
json_schema_checkvalidate against a JSON Schema subset (tier 2 with jsonschema for the full spec)jsonschema
diff_textunified and word diffstdlib difflib
dockerfile_lintlatest tag, root user, apt cache, secrets in ENVhadolint ideas
license_detectSPDX licence from a LICENSE text by similaritySPDX list
gitignore_gen.gitignore from named stacksgithub/gitignore
env_example.env.example from a .env with values blankedoriginal
openapi_outlineendpoints, methods and schemas from an OpenAPI fileoriginal
log_summarisegroup log lines by template, count, first and last timeoriginal

Data and files🔗

ToolDescriptionSource
csv_statsper-column type, nulls, min, max, mean, distinctcsvkit
csv_querySQL over CSV files through in-memory sqlite3datasette, miller
csv_json_convertboth ways, nesting by dotted keyscsvkit
xlsx_readsheets to CSV through zipfile and XMLoriginal
json_diffstructural diff with pathsoriginal
file_hash_treeSHA-256 manifest of a directory and verifyoriginal
encoding_detectdetect and convert text encodings (tier 2 with charset_normalizer)charset_normalizer
format_convertJSON, TOML (tomllib), INI, YAML subsetstdlib
dedupe_sortdeduplicate and natural-sort linesoriginal
table_pivotpivot and group-by over a CSVoriginal

Finance and economics🔗

ToolDescriptionSource
npv_irrNPV, IRR (Newton with bisection fallback), MIRR, paybacknumpy-financial
loan_amortizationpayment and table for French, German and American systems; early repaymentoriginal
compound_interestfuture and present value, effective rates, rule of 72original
inflation_adjustCPI adjustment from a bundled dated table (Spain INE, US CPI-U, euro area HICP)original
break_evenbreak-even, contribution margin, sensitivityoriginal
portfolio_statsreturn, volatility, Sharpe, drawdown from a price CSVoriginal
tax_bracket_estimatebracket-based estimate from a yearly table given in the input or bundled with its year (IRPF, federal income tax), with a disclaimeroriginal
fx_convertECB reference rates (tier 3)ECB
depreciationstraight-line, declining balance, sum-of-years tablesoriginal
cashflow_forecastmonthly cash-flow projection from recurring itemsoriginal

Law and compliance🔗

ToolDescriptionSource
deadline_calccalendar versus working-day terms, from a jurisdiction rule given in the input (e.g. "10 hábiles, agosto inhábil"); never guesses the ruleoriginal
clause_checklistchecklist per contract type (NDA, services, lease, employment)original
gdpr_ropa_templateArticle 30 record of processing skeletonoriginal
dpia_screeningDPIA need screening from the EDPB criteriaoriginal
license_compatcompatibility matrix of open-source licencesoriginal
retention_scheduleretention periods by record type from a table given in the inputoriginal
legal_citation_formatBOE, EUR-Lex, ECLI and US case citation formatsoriginal
consent_text_checkconsent and privacy notice completeness against GDPR Articles 13 and 14original

Education🔗

ToolDescriptionSource
quiz_clozecloze questions from a text, with answer keyoriginal
quiz_mcq_scaffoldmultiple-choice scaffolds with distractors from the same textoriginal
srs_scheduleSM-2 next interval (tier 2 with fsrs for FSRS)py-fsrs
rubric_gradeweighted rubric scoring and feedback reportoriginal
grade_statsclass statistics, curves, item difficulty and discriminationoriginal
flashcards_exportCSV to Anki-importable TSVoriginal
timeline_builderevents to a Markdown or ASCII timelineoriginal
lesson_plan_templatelesson plan skeleton by level and duration (Bloom verbs)original
bloom_classifyclassify learning objectives by Bloom level (verb table)original

Language🔗

ToolDescriptionSource
tokenize_textUnicode-aware words, sentences, countsoriginal
unicode_toolsnormalise, strip accents, code points, confusablesstdlib unicodedata
transliterateCyrillic, Greek, Arabic (table-based)original
es_verb_conjugateregular Spanish conjugation plus bundled irregularsmlconjug3 ideas
hangul_romanizeRevised Romanization from Hangul decompositionhangul-romanization
kana_romanizeHepburn for kana (kanji needs pykakasi, tier 2)pykakasi
pinyin_converttier 2 with pypinyinpython-pinyin
language_detectcharacter n-gram heuristic (tier 2 with lingua)lingua-py
number_to_wordsnumbers, ordinals and currency to words (es, en, fr, de, pt)original
gender_agreement_esagreement check for Spanish noun phrases (heuristic)original

Geography and time🔗

ToolDescriptionSource
haversinegreat-circle distance and bearing, batchoriginal
tz_convertconversions, DST transitions, offsets at a date (zoneinfo)stdlib
sun_timessunrise, sunset, twilight by the NOAA algorithmastral
coord_convertdecimal degrees, DMS, UTM, geohash, what3words-style not includedoriginal
calendar_convertGregorian, ISO week, Julian day, Hebrew, Islamicoriginal
iso_country_lookupISO 3166, currency, calling code, time zonesoriginal
moon_phasephase and illuminationoriginal
geojson_toolsbounding box, centroid, area of GeoJSON polygonsoriginal

Health (deterministic, every output carries a disclaimer)🔗

ToolDescriptionSource
bmi_bsaBMI with WHO categories; BSA (Mosteller, DuBois)original
egfr_calcCKD-EPI 2021original
dose_weight_basedmg/kg arithmetic with a hard maximum given in the inputoriginal
unit_lab_convertmg/dL to mmol/L for common analytesoriginal
heart_rate_zonesKarvonen zonesoriginal
sleep_cyclesbed and wake-time planneroriginal
nutrition_totalstotals from a food table given in the inputoriginal

Security (defensive)🔗

ToolDescriptionSource
hash_verifyMD5, SHA-1, SHA-256, SHA-512, BLAKE2 and verifystdlib
password_entropyentropy estimate, never echoes the passwordoriginal
sbom_checkCycloneDX or SPDX JSON required fields and licence summaryoriginal
jwt_decodedecode without verifying, with a clear warningoriginal
cert_inspectPEM certificate fields and expiry (bash with openssl)original
secrets_scankey-like strings in filesgitleaks ideas
totp_generateRFC 6238 code from a secret in the inputoriginal
csp_lintContent-Security-Policy weaknessesoriginal

Media🔗

ToolDescriptionSource
image_infodimensions and format from PNG, JPEG, GIF headers; EXIF tier 2 with PillowPillow
qr_generateQR code to SVG (tier 2 with segno, pure Python)segno
wav_infoduration and format of WAVstdlib wave
color_toolshex, RGB, HSL, WCAG contrast, palette from a seedoriginal
srt_toolsshift, convert, merge subtitlesoriginal
ascii_bannertext banneroriginal

Personal, games, cooking and engineering🔗

ToolDescriptionSource
eisenhower_matrixtasks to quadrants with a planoriginal
habit_streaksstreaks and rates from a logoriginal
unit_price_compareprice per unit across offersoriginal
sudoku_solve, chess_fen_validate, dice_roll_seeded, wordle_helperpuzzles and gamesoriginal
recipe_scale, cooking_unit_convertscale servings, convert cups and grams by ingredient densityoriginal
resistor_color, ohms_law, beam_loadelectronics and staticsoriginal

First batch🔗

Fourteen tier-1 tools, one or two per domain, each the kind of computation a model gets wrong and a person checks: seat_allocation and business_days (done), vote_condorcet, invoice_calc, iban_validate, exact_calc, stats_describe, citation_format, readability, npv_irr, deadline_calc, srs_schedule, tz_convert, hash_verify. Then the Spanish-administration set (es_tax_id_validate, eu_vat_validate, tax_bracket_estimate, transparency_request_draft), which no other catalog serves.

Repositories to learn from🔗

RepositoryStarsLast pushWhy
modelcontextprotocol/registry7.4k2026-10-14server.json, namespace auth, publisher CLI
anthropics/skills181.6k2026-10-09SKILL.md conventions, marketplace.json
agentskills/agentskills26.2k2026-08-09spec and skills-ref validator
strands-agents/tools1.3k2026-10-1350 tools incl. calculator, current_time, rss, diagram
huggingface/smolagents29.9k2026-10-06the smallest clean tool interface
punkpeye/awesome-mcp-servers96.5k2026-10-15category taxonomy
arthurdejong/python-stdnum6022026-08-15IBAN, VAT, NIF/NIE and national ids
vacanza/holidays1.9k2026-10-16holiday data per country and region
hgrecco/pint2.8k2026-10-13units with dimensional analysis
textstat/textstat1.4k2026-10-13readability formulas
numpy/numpy-financial4142026-10-05NPV, IRR, PMT edge cases
collective/icalendar1.2k2026-10-15RFC 5545 reference
wireservice/csvkit, johnkerl/miller6.4k / 10.0k2026-09 / 2026-10CSV verbs
citation-style-language/styles3.9k2026-10-13citation styles
open-spaced-repetition/py-fsrs5132026-08-09spaced repetition
andrewcmyers/civs962026-08-21Condorcet and Schulze
heuer/segno8142026-07-23pure-Python QR

No maintained small repository exists for D'Hondt and Sainte-Laguë (the best have about 14 stars) or for GDPR templates; those are original tools, which is why seat_allocation is the first reference entry.