{"name":"io.github.2s-io/mcp","slug":"2s-io-mcp","title":null,"description":"575+ agent tools: data, AI gateway, storage/queues/watchers. x402 USDC, no keys, usage billing.","url":"https://mcp.market/server/2s-io-mcp","rating":null,"grade":"B","score":82,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":41,"stars":9,"forks":0,"downloads_week":471,"last_push_at":"2026-10-24T15:25:05.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/2s-io/sdk","website":"https://2s.io","version":"1.82.0","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@2sio/mcp","version":"1.82.0","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Hex-encoded EVM private key (0x-prefixed) used by the SDK to sign x402 EIP-3009 payment authorizations. Funds USDC on Base.","isRequired":true,"format":"string","isSecret":true,"name":"EVM_PRIVATE_KEY"}]}],"tools":[{"name":"agriculture.drought","description":"US Drought Monitor severity for a county (5-digit FIPS) or state (2-letter). Weekly % of area in each category (None, D0 Abnormally Dry → D4 Exceptional), newest first, with the worst category per week. Keyless, public-domain (NDMC/USDA/NOAA). The official metric behind USDA disaster eligibility.","write_action":false,"price_micros":0,"input_schema":null},{"name":"agriculture.stats","description":"USDA NASS QuickStats — authoritative US ag statistics: crop yields, acreage, production, livestock inventory, prices received. Filter by commodity (CORN/SOYBEANS/CATTLE…), year (or year__GE/__LE range), state (2-letter), county, statistic category (YIELD/PRODUCTION/AREA HARVESTED/PRICE RECEIVED), aggregation level. 50k-row cap — narrow broad queries. Public-domain.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aviation.accidents","description":"Search NTSB civil aviation accident/incident history (CAROL database). Filter by registration (N-number), state, make, model, city, and/or date range (dateFrom/dateTo YYYY-MM-DD). Returns events with date, location, aircraft, injury severity/counts, flight phase, and an NTSB report URL. Free, US public-domain. At least one filter required.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aviation.metar","description":"Current aviation weather observation (METAR) for airports. Pass ids (comma-separated ICAO, e.g. KATL,EGLL). Returns raw METAR + decoded flight category, temp/dewpoint, wind, visibility, altimeter, clouds. Source: NOAA Aviation Weather Center (keyless).","write_action":false,"price_micros":0,"input_schema":null},{"name":"aviation.sigmet","description":"Active in-flight weather hazard advisories (SIGMETs/AIRMETs) from the NOAA Aviation Weather Center. Returns current advisories over a 1-24h window, optionally filtered by hazard (CONVECTIVE, TURB, ICE, IFR, MTN OBSCN, ASH). Each carries issuing office, type, hazard, severity, valid-from/to, altitude band (ft MSL), movement (dir/speed), and raw bulletin. Keyless, public-domain. The active-hazard la","write_action":false,"price_micros":0,"input_schema":null},{"name":"aviation.taf","description":"Terminal Aerodrome Forecast (TAF) for airports — the official ~24–30h aviation forecast. Pass ids (comma-separated ICAO). Returns raw TAF + issue time. Source: NOAA Aviation Weather Center (keyless).","write_action":false,"price_micros":0,"input_schema":null},{"name":"batch.run","description":"Run up to 50 endpoint calls behind ONE x402 payment. Price = exact sum of the sub-call prices (no discount). Atomic: every sub-call must succeed or nothing is charged (failures are returned so you can retry for free). Sub-calls must be ordinary catalog endpoints (no bearer-only, deprecated, variable-priced, or metered-upstream endpoints; no nested batch). Each item carries that endpoint's own resp","write_action":true,"price_micros":0,"input_schema":null},{"name":"business.kyb-360","description":"Full Know-Your-Business (KYB) intelligence dossier on a company in one call. Pass name (company name); optional state narrows federal awards, optional ticker pulls SEC EDGAR identity + filings. Fans out to SAM registration, SAM exclusions (debarment), OFAC sanctions, GLEIF LEI, USAspending awards, FARA foreign-agent registration, and USPTO trademarks owned. Returns riskFlags + a cleared boolean (d","write_action":false,"price_micros":0,"input_schema":null},{"name":"calendar.business-days","description":"Holiday-aware business-day calculator for 200+ countries — the ground-truth answer for payment terms, SLA deadlines, and delivery dates instead of guessing holidays. Three modes: start+addDays shifts a date by N business days (signed); start+end counts business days between two dates (exclusive of start, inclusive of end); start alone checks one date (business day? which holiday? next/previous bus","write_action":false,"price_micros":0,"input_schema":null},{"name":"calendar.holidays","description":"List the official holidays for a country and year with exact observed dates, including substitute days (e.g. a Saturday July 4th observed Friday). 200+ countries, regional subdivisions (US states, German Länder, Canadian provinces…), movable feasts and lunar-calendar holidays computed from maintained rules. Filter by type (public, bank, school, optional, observance) and localize names via lang. Re","write_action":false,"price_micros":0,"input_schema":null},{"name":"convert.currency","description":"Convert an amount between currencies at a live or historical exchange rate. Pass from + to (3-letter ISO 4217) + optional amount (default 1) + date (YYYY-MM-DD for historical; omit for latest). Returns the converted result, per-unit rate, and effective rate date. Live ECB reference rates (via Frankfurter), fetched per request — never stale; weekends/holidays use the last business day. ECB major cu","write_action":false,"price_micros":0,"input_schema":null},{"name":"convert.unit","description":"Deterministic unit-of-measure conversion: mass (g/kg/lb/oz/t…), length (m/km/in/ft/mi…), volume (l/ml/gal/qt/cup…), area (m2/ft2/acre/ha), temperature (C/F/K). Case-insensitive with aliases (kg/kilogram). Returns the exact result + dimension. Cross-dimension (kg→m) is rejected. Ground-truth factors instead of an LLM approximation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"crypto.address-validate","description":"Validate a cryptocurrency address with full checksum verification (not just regex). Catches typos before sending funds. Chains: btc, eth, sol, ltc, trx, xrp, bch.","write_action":false,"price_micros":0,"input_schema":null},{"name":"crypto.contract","description":"Decode an EVM smart contract. Pass chain (ethereum, base, polygon, arbitrum, optimism, bsc, avalanche) + address → whether source-verified (Sourcify), name/compiler/language, proxy + implementation, and human-readable function/event signatures from the ABI. Optional selector (0x 4-byte) → decode what it calls (from the contract ABI if verified, else the 4byte directory). Pairs with crypto.tx. Free","write_action":false,"price_micros":0,"input_schema":null},{"name":"crypto.defi","description":"DeFi total-value-locked (TVL) via DefiLlama. No params → top protocols by TVL (name, category, TVL, 1d/7d change, chains) + total DeFi TVL. protocol=<slug> (e.g. lido, aave, uniswap) → one protocol; chain=<name> (e.g. ethereum, solana) → that chain's TVL. Distinct from crypto.markets (spot prices) — protocol/chain capital locked. Free, keyless.","write_action":false,"price_micros":0,"input_schema":null},{"name":"crypto.fear-greed","description":"Crypto Fear & Greed Index — 0–100 market sentiment (0 = Extreme Fear, 100 = Extreme Greed), updated daily, with classification. Pass limit (1–90) for recent history. Contrarian sentiment signal. Source: alternative.me.","write_action":false,"price_micros":0,"input_schema":null},{"name":"crypto.global","description":"Whole-crypto-market overview: total market cap, 24h volume, 24h change, BTC + ETH dominance, active-coin count. Source: CoinGecko.","write_action":false,"price_micros":0,"input_schema":null},{"name":"crypto.markets","description":"Top cryptocurrencies by market cap with live price, market cap, 24h volume, and 24h + 7d % change. Pass limit (1–100, default 20). Source: CoinGecko. Single token = crypto.token-price; market overview = crypto.global.","write_action":false,"price_micros":0,"input_schema":null},{"name":"crypto.tx","description":"Live EVM transaction status + receipt by hash: mined/reverted/pending, block, confirmations, timestamp, from/to, value, gas used, effective gas price, total fee, contract created, log count. Chains: base, ethereum, polygon, arbitrum, optimism. Confirm a payment settled or a tx reverted before acting. 404 if unknown.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dev.preflight","description":"Check whether a shell command is runnable before running it — a pre-execution gate for agent-generated commands. POST command (curl/wget/httpie or anything with a URL). Parses out method, target URL, and headers and returns a structured verdict: verdict ('runnable'/'invalid'), runnable boolean, and a checks breakdown (hasTarget, urlValid, schemeOk, hostPresent, methodValid, privateTarget). Default","write_action":false,"price_micros":0,"input_schema":null},{"name":"dev.rfc","description":"Look up an IETF RFC by number. Returns status (e.g. INTERNET STANDARD/PROPOSED STANDARD), title, authors, date, stream, DOI, and the obsoletes/obsoleted-by/updates/updated-by relationship chain. Bundled RFC index (~9.8k RFCs); anti-hallucination on RFC status/relationships.","write_action":false,"price_micros":0,"input_schema":null},{"name":"domain.ct-logs","description":"Certificate Transparency recon for a domain — discover its subdomains and issued certificates from public CT logs (passive attack-surface mapping). Pass domain (+ optional limit). Returns deduplicated subdomains + certs (issuer, validity, SAN names), newest first. certSpotter primary, crt.sh fallback, keyless. CT shows names that ever appeared in a cert, not necessarily live hosts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"domain.email-security","description":"Grade a domain's email-authentication / DNS-security posture from live DNS in one call: SPF, DMARC (policy), DKIM (supplied/common selectors), MTA-STS, TLS-RPT, DNSSEC, CAA, BIMI. Pass domain (+ optional dkimSelector). Returns a letter grade, a summary (incl. spoofingProtected), and a per-mechanism block with the raw record, parsed tags, and specific issues. Live DNS via DoH (keyless) — an LLM can","write_action":true,"price_micros":0,"input_schema":null},{"name":"domain.intel","description":"Domain intelligence in one call — composes DNS (A/AAAA/MX/NS/TXT), WHOIS/RDAP (registrar, dates, status, nameservers, DNSSEC), and the live TLS certificate (issuer, validity, SANs, fingerprint) for a domain. Returns a summary (resolves, has MX, registrar, domain expiry, HTTPS valid, days to cert expiry) plus a found/error block per section. For domain due diligence, security recon, and expiry moni","write_action":false,"price_micros":0,"input_schema":null},{"name":"econ.commodity","description":"Latest benchmark commodity price + % change. Pass commodity (wti, brent, natural-gas, gasoline, diesel, heating-oil, propane, copper, aluminum, corn, wheat, sugar) or omit for all. Each names the FRED series + unit. Source: EIA/IMF via FRED.","write_action":false,"price_micros":0,"input_schema":null},{"name":"econ.fred","description":"Any series in the Federal Reserve's FRED database (800k+ economic time series). Pass seriesId (e.g. UNRATE, CPIAUCSL, GDP, DGS10, MORTGAGE30US) for metadata + recent observations (optionally bounded by start/end), or query to full-text search the catalog. Free, public-domain for most series (FRED attribution). Distinct from econ.indicator (curated headline set) — this is the full FRED catalog by i","write_action":false,"price_micros":0,"input_schema":null},{"name":"econ.fred-categories","description":"Browse the FRED category tree to DISCOVER economic series. Pass categoryId for that category (name+parent) + its child categories + its most-popular series (id/title/units/frequency); omit (or 0) for the 8 top-level categories. Walk down via child ids, then fetch with econ.fred. Free, public-domain.","write_action":false,"price_micros":0,"input_schema":null},{"name":"econ.fred-regional","description":"FRED regional economic data — one snapshot of a regional FRED series across ALL its geographies (every U.S. state, county, or metro) for a single period. Pass a regional series id (e.g. WIPCPI = per-capita personal income by state) and get each region's name, FIPS region code, value, and per-region series id, plus units/frequency/available date range. Add date (YYYY-MM-DD) for a point-in-time cros","write_action":false,"price_micros":0,"input_schema":null},{"name":"econ.fred-releases","description":"US economic-data release CALENDAR from FRED — when official reports are published. Returns upcoming release dates (date, release name, release id) from `from` (default today), ascending. Filter by name (e.g. \"Consumer Price Index\" for next CPI, \"Employment Situation\" for jobs) or releaseId. Free, public-domain. Future release dates an LLM cannot know — for trading/scheduling/macro agents. Pair wit","write_action":false,"price_micros":0,"input_schema":null},{"name":"econ.fred-vintage","description":"Point-in-time (vintage) economic data from FRED's ALFRED archive — what a figure was AS FIRST REPORTED / as known on a past date, before revisions. Give seriesId (GDP, GDPC1, PAYEMS…) + asOf date for the values as they stood then (omit asOf for current); also returns the series' revision dates. Free, public-domain. Eliminates look-ahead bias for backtesting/macro research — unavailable from any LL","write_action":false,"price_micros":0,"input_schema":null},{"name":"econ.indicator","description":"Latest reading of a curated US macro indicator (+ prior, year-ago, YoY %). Pass indicator (unemployment-rate, fed-funds-rate, real-gdp, gdp-growth, nonfarm-payrolls, 10y-treasury, 30y-mortgage, consumer-sentiment, ...) or omit for all. Source: BLS/BEA/Fed via FRED.","write_action":false,"price_micros":0,"input_schema":null},{"name":"econ.recession","description":"Composite US recession-signal dashboard: NY Fed recession probability (12mo ahead), Sahm-rule real-time indicator (≥0.50 = recession begun), and 10y2y Treasury spread (negative = inverted). Each with value, date, triggered flag, and a count of signals flashing. A read of the standard gauges, not a forecast. Source: FRED.","write_action":false,"price_micros":0,"input_schema":null},{"name":"econ.yield-curve","description":"Current US Treasury yield curve (1M–30Y constant-maturity yields) plus the 2s10s and 3m10y spreads and an inversion flag (recession signal). Daily data. Source: US Treasury via FRED.","write_action":false,"price_micros":0,"input_schema":null},{"name":"edi.ack","description":"Generate the ANSI X12 997 Functional Acknowledgment for a received EDI interchange. POST edi with the raw inbound interchange (the 850/810/856 you received); returns the ready-to-send 997 in meta.ack — sender/receiver mirrored, delimiters echoed, one ST(997) per inbound functional group with correct AK1/AK2/AK5 and AK9 included/received/accepted counts. status controls the response: A=Accepted (de","write_action":false,"price_micros":0,"input_schema":null},{"name":"edi.edifact","description":"Parse a raw UN/EDIFACT document (the B2B EDI standard used across Europe, Asia, logistics and customs — international counterpart to ANSI X12) into clean structured JSON. POST edi with the raw interchange text. Reads the optional UNA service-string advice to auto-detect delimiters (or applies UN defaults); handles release-character escaping; returns the interchange envelope (UNB: sender/recipient ","write_action":false,"price_micros":0,"input_schema":null},{"name":"edi.edifact-generate","description":"Generate an outbound UN/EDIFACT document from JSON (international counterpart to edi.generate/X12). POST type ('ORDERS' PO or 'INVOIC' invoice) + senderId, recipientId, documentNumber, optional date, parties (NAD role+name), items (quantity, productId, price), and for INVOIC optional total. Returns the full EDIFACT interchange in meta.edi (UNA/UNB/UNH…UNT/UNZ with BGM/DTM/NAD/LIN/QTY/PRI/MOA), pro","write_action":false,"price_micros":0,"input_schema":null},{"name":"edi.generate","description":"Generate an outbound ANSI X12 EDI document from JSON. POST type (850 = Purchase Order, 810 = Invoice) + senderId, receiverId, documentNumber (PO#/invoice#), optional date, parties (N1 role+name), items (quantity, uom, price, productId); for 810 optionally poNumber + total. Returns the full X12 interchange in meta.edi (correct ISA/GS/ST…SE/GE/IEA envelope). Deterministic — the outbound complement t","write_action":false,"price_micros":0,"input_schema":null},{"name":"edi.parse","description":"Parse a raw ANSI X12 EDI document (B2B purchase orders, invoices, ship notices, etc.) into clean structured JSON. POST edi with the raw interchange text. Auto-detects delimiters; returns interchange metadata, each functional group + transaction set with its type decoded (850 PO, 810 invoice, 856 ASN, 855 PO ack, 997 ack), every segment named, and a semantic summary (PO/invoice numbers, parties, li","write_action":false,"price_micros":0,"input_schema":null},{"name":"email.validate","description":"Validate an email address: RFC syntax validity, normalized address with local/domain, and flags for isDisposable (throwaway domain), isRoleAccount (info@/support@/…), isFreeProvider (gmail/outlook/…). With checkMx (default true) also reports hasMxRecords (domain MX presence, via DNS-over-HTTPS) + MX hosts. NOT a deliverability or mailbox-existence guarantee — signals only. For signup hygiene and l","write_action":true,"price_micros":0,"input_schema":null},{"name":"factcheck.search","description":"Search the global corpus of published fact-checks (ClaimReview) by claim text. Returns matching claims with the claimant, claim date, and each review's verdict (textualRating like \"False\"/\"Misleading\"/\"True\"), publisher (PolitiFact, Snopes, FactCheck.org, Reuters, AFP…), review URL and date. Covers all topics — politics, health, science, viral/misinformation. Optional language, maxAgeDays, and pub","write_action":false,"price_micros":0,"input_schema":null},{"name":"finance.amortize","description":"Compute a loan or mortgage amortization schedule. Pass principal, annualRatePct (e.g. 6.5), and term as termMonths or termYears; optional extraMonthly adds extra principal each month. Returns the fixed monthly payment, total interest, total paid, payoff month count, and the full month-by-month schedule (payment/principal/interest/balance). Deterministic, no external calls.","write_action":false,"price_micros":0,"input_schema":null},{"name":"health.disease-surveillance","description":"Current US disease surveillance from the CDC (NNDSS weekly notifiable-disease counts, MMWR 2022→current). Filter by condition (substring), location (state/region/territory/national), and/or year; weeks/limit page results. Returns current-week count, prior-52-week max, and cumulative YTD per condition+location+week. Free, keyless CDC data. At least one of condition/location required.","write_action":false,"price_micros":0,"input_schema":null},{"name":"inflation.calculator","description":"Adjust a US dollar amount for inflation between two dates ('what is $100 in 1990 worth today?') using CPI-U. Returns the adjusted amount, cumulative inflation %, annualized rate, and the CPI values used. Source: BLS CPI via FRED.","write_action":false,"price_micros":0,"input_schema":null},{"name":"inflation.expectations","description":"US inflation expectations — 5y & 10y TIPS breakevens, 5y5y forward, and U-Michigan 1-year consumer expectation. Each a percent. Market breakevens update daily. Source: Fed/Treasury via FRED.","write_action":false,"price_micros":0,"input_schema":null},{"name":"inflation.hicp","description":"EU harmonized inflation (HICP annual rate) — the official cross-country-comparable inflation rate for the EU, euro area, and each member state. Pass country (Eurostat geo: DE, FR, EL=Greece, EA20=euro area, EU27_2020=EU) or omit for all. Source: Eurostat (keyless). For US inflation use inflation.rates.","write_action":false,"price_micros":0,"input_schema":null},{"name":"inflation.rates","description":"Current US inflation by measure with index level + YoY/MoM %. Pass measure (cpi, core-cpi, pce, core-pce, ppi, cpi-shelter, cpi-energy, import-prices, ...) or omit for all. The YoY change is the headline inflation rate. Source: BLS/BEA via FRED.","write_action":false,"price_micros":0,"input_schema":null},{"name":"iso.currency","description":"ISO 4217 currency lookup. Pass code (alphabetic USD or 3-digit numeric 840) or country. Returns alphabetic + numeric code, English name, minor unit (decimal places — JPY 0, USD 2, BHD 3), and countries using it. Bundled authoritative ISO 4217 data.","write_action":false,"price_micros":0,"input_schema":null},{"name":"iso.language","description":"ISO 639 language lookup. Pass code in any form — 639-1 (en), 639-2/B (ger), 639-2/T (deu) — or name. Returns the English name + all sibling codes (alpha-2, alpha3-B, alpha3-T), resolving the bibliographic/terminological split (German = de/deu/ger). Bundled authoritative ISO 639 data.","write_action":false,"price_micros":0,"input_schema":null},{"name":"iso.subdivision","description":"ISO 3166-2 subdivision lookup (states/provinces/regions). Pass code (US-CA) to resolve one → name + country, or country (2-letter, US) to list all its subdivisions with codes. Bundled authoritative ISO 3166-2 data (~3.8k subdivisions, 237 countries).","write_action":false,"price_micros":0,"input_schema":null},{"name":"labor.openings","description":"US labor-market turnover from BLS JOLTS (total nonfarm, national), monthly newest-first. measure = openings (default) / hires / quits / layoffs / separations. Returns level in thousands per month. The standard labor-tightness (openings) + worker-confidence (quits) signal. Public-domain.","write_action":false,"price_micros":0,"input_schema":null},{"name":"labor.unemployment","description":"US unemployment from BLS, monthly newest-first — national (CPS, area=\"US\") or by state (LAUS). measure = rate (default) / unemployed / employed / laborforce. Seasonally adjusted; rate in percent, counts in thousands. Public-domain.","write_action":false,"price_micros":0,"input_schema":null},{"name":"labor.wages","description":"Occupational employment + wages from BLS OEWS by SOC code, nationally or by US state. Pass soc (e.g. 15-1252 Software Developers) + optional 2-letter state. Returns employment, hourly mean, and annual mean + 10th/25th/median/75th/90th-percentile wages (latest survey year). Authoritative ground-truth wages for comp benchmarking. Public-domain.","write_action":false,"price_micros":0,"input_schema":null},{"name":"maritime.cases","description":"US Coast Guard activity / port-state-control case history for a vessel, by USCG vessel id (from maritime.vessel). Returns cases newest-first with activity id, start date, type (Boarding, Inspection, Investigation…), and process status. Keyless, public-domain. The compliance/inspection record behind a vessel.","write_action":false,"price_micros":0,"input_schema":null},{"name":"maritime.port","description":"Look up world ports and terminals in the NGA World Port Index (Pub 150, ~2,950 ports) by port name (partial) and/or country (full name, e.g. \"Japan\"). Returns matching ports with location (lat/lon, country, region), UN/LOCODE, harbor size/type and shelter, max vessel length/draft (m), channel/anchorage/cargo-pier depths, tidal range, and chart number. Keyless, public-domain (NGA). Physical-port re","write_action":false,"price_micros":0,"input_schema":null},{"name":"maritime.vessel","description":"Search the US Coast Guard PSIX vessel registry by name (partial), call sign, official number, hull number (HIN), flag, service type, or build year. Returns vessels with USCG vessel id, name, call sign, service type, build year, status, official number, HIN, flag. Keyless, public-domain. US-flagged vessels + foreign vessels with US PSC activity. Pair vesselId with maritime.cases.","write_action":false,"price_micros":0,"input_schema":null},{"name":"medical.drug-price","description":"US drug pricing from CMS NADAC (National Average Drug Acquisition Cost), the benchmark per-unit acquisition cost CMS surveys weekly. Pass ndc (11-digit NDC) for an exact product or name (e.g. 'atorvastatin 10 mg') to search. Returns NDC, description, nadacPerUnit (USD), pricingUnit, effectiveDate, OTC flag, brand/generic classification — newest first. Real surveyed acquisition costs (not retail/in","write_action":false,"price_micros":0,"input_schema":null},{"name":"music.artist","description":"Resolve a music artist from MusicBrainz (CC0). Pass a name or query. Returns ranked artists with MBID, name, sort name, type (Person/Group), country, gender, life span, disambiguation. Keyless, public-domain.","write_action":false,"price_micros":0,"input_schema":null},{"name":"music.recording","description":"Resolve a song/recording from MusicBrainz (open, CC0 music encyclopedia). Pass artist + title, or a free-text/Lucene query. Returns ranked recordings with MBID, title, primary artist, length (ms), first-release date, disambiguation. Keyless, public-domain. Canonicalize a track to its MBID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"music.release","description":"Resolve an album/release from MusicBrainz (CC0). Pass a barcode (UPC/EAN), artist + album, or a free-text query. Returns ranked releases with MBID, title, artist, date, country, barcode, status, track count, label, catalog number. Barcode → album is the differentiated lookup. Keyless, public-domain.","write_action":false,"price_micros":0,"input_schema":null},{"name":"net.rpki-validity","description":"RPKI Route Origin Validation for a (BGP origin AS, prefix) pair — is this AS authorized to originate this prefix? Pass asn (AS15169) + prefix (8.8.8.0/24). Returns status (valid / invalid = possible hijack / unknown), a hijackSignal boolean, validating ROAs, and a description. Live RIR/RPKI data via RIPEstat (keyless). The core BGP-security check.","write_action":false,"price_micros":0,"input_schema":null},{"name":"occupation.profile","description":"Full occupation dossier from O*NET (US DOL) by SOC/O*NET-SOC code (e.g. 15-1252). Returns title, description, bright-outlook flag, sample job titles, and top skills, knowledge, abilities, work tasks, and technology tools. CC-BY. The canonical occupation reference for résumé/JD reasoning + career mapping; pair the code with labor.wages.","write_action":false,"price_micros":0,"input_schema":null},{"name":"occupation.related","description":"Occupations related/career-adjacent to a given O*NET occupation, by SOC/O*NET-SOC code. Returns ranked related occupations (code + title). For career-pathing and transferable-skills reasoning. CC-BY.","write_action":false,"price_micros":0,"input_schema":null},{"name":"occupation.search","description":"Find O*NET occupations by keyword (job title, skill, or activity). Returns ranked occupations with SOC/O*NET-SOC code + title. The \"occupation code for this job/skill\" primitive — every occupation.* / labor.wages call composes on the code. CC-BY.","write_action":false,"price_micros":0,"input_schema":null},{"name":"patents.detail","description":"Full file-wrapper detail for a US patent application: bibliography, event timeline (filings, Office Actions, allowances), continuity chain (parents, divisionals), assignments, foreign priority.","write_action":false,"price_micros":0,"input_schema":null},{"name":"patents.documents","description":"List every document in a US patent application file wrapper: Office Actions (CTNF, CTFR), IDS, claims, notices of allowance. Returns code, description, official date, and Patent Center download URL.","write_action":false,"price_micros":0,"input_schema":null},{"name":"patents.search","description":"Search US patent applications and grants (USPTO Open Data Portal). Returns titles, inventors, applicants, status, classification codes, and Patent Center URLs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search.endpoints","description":"Find the right 2s endpoint(s) for a task using a natural-language query (e.g. \"screen a company for sanctions\", \"decode a VIN\", \"check a domain's email security\"). Returns ranked matches with id, path, method, price, and description. Use this to discover capabilities before calling.","write_action":false,"price_micros":0,"input_schema":null},{"name":"security.attack","description":"Authoritative MITRE ATT&CK (Enterprise) technique lookup. Pass id (T1059 / T1059.001) for name, tactics, description, platforms, sub-technique parent, mitigations, detection — or query for keyword search. Bundled (~700 techniques), zero external calls. Agents cite T-numbers + tactics that must be exact. For threat modeling, detection engineering, report enrichment.","write_action":false,"price_micros":0,"input_schema":null},{"name":"security.capec","description":"Authoritative MITRE CAPEC (Common Attack Pattern Enumeration) lookup. Pass id (CAPEC-66 or 66) for name, abstraction, description, likelihood, severity, mapped CWE weaknesses + related patterns (with names) — or query for keyword search. Bundled (~615), zero external calls. The attacker view; CAPEC↔CWE cross-links let an agent pivot between an attack and the weakness it exploits.","write_action":false,"price_micros":0,"input_schema":null},{"name":"security.cve-changes","description":"CVE change feed — the CVE records MODIFIED within a time window, so an agent can incrementally maintain a vulnerability view instead of re-scanning. Pass since (YYYY-MM-DD or ISO datetime); until defaults to now (window ≤120 days). Optional keyword/cpe filter. Each result: id, published + lastModified, vulnStatus, CVSS score/severity, description, and kevListed (now on the CISA Known-Exploited cat","write_action":false,"price_micros":0,"input_schema":null},{"name":"security.cwe","description":"Authoritative MITRE CWE (Common Weakness Enumeration) lookup. Pass id (CWE-79 or 79) for the canonical weakness — name, abstraction, description, ChildOf/ParentOf relationships, mapped CAPEC patterns (all with names) — or query for keyword search. Bundled (~970), zero external calls. Anti-hallucination: agents cite CWE IDs/names that must be exact. Pairs with security.cve + security.capec.","write_action":false,"price_micros":0,"input_schema":null},{"name":"security.exploit-availability","description":"Does public exploit code exist for a CVE, and where? Pass cve (CVE-2021-44228). Returns hasPublicExploit, count, hasMetasploitModule + hasVerifiedExploit flags, and Exploit-DB entries (description, type, platform, date, link). Bundled Exploit-DB index (~25k CVEs). The 'is it weaponized?' triage signal BEYOND security.cve's KEV (in-the-wild) + EPSS (probability). Absence != no exploit exists.","write_action":false,"price_micros":0,"input_schema":null},{"name":"security.http-headers","description":"Fetch a URL and grade its HTTP security headers (CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, COOP/CORP). Pass url. Returns a letter grade + score, present/missing headers, and a per-header analysis with the live value and issues. Also flags Server/X-Powered-By info disclosure. SSRF-guarded live fetch (private targets refused) — an LLM can't see a site's","write_action":false,"price_micros":0,"input_schema":null},{"name":"security.ioc-reputation","description":"Threat-intel reputation for an IOC — pass ioc as an IP, domain, URL, or file hash (auto-detected). Returns a malicious boolean + per-source breakdown: abuse.ch ThreatFox, URLhaus, MalwareBazaar, Feodo Tracker (botnet C2 IPs), Tor exit nodes, Spamhaus DROP. Live, hourly-rotating threat feeds an LLM cannot know — a ground-truth check for SOC alert triage. Absence ≠ safety.","write_action":false,"price_micros":0,"input_schema":null},{"name":"security.ip-abuse","description":"AbuseIPDB single-IP abuse check. Pass ip (IPv4/IPv6). Returns abuseConfidenceScore (0-100), totalReports, numDistinctUsers, lastReportedAt, usageType, ISP, domain, hostnames, isTor, isWhitelisted, country. verbose=true adds individual report records; maxAgeInDays (1-365, default 90) bounds the window. Live crowd data for SOC triage and login-abuse blocking.","write_action":false,"price_micros":0,"input_schema":null},{"name":"security.ip-blacklist","description":"AbuseIPDB bulk blacklist — most-reported abusive IPs above a confidence threshold (the fail2ban / firewall block-feed). Tune confidenceMinimum (25-100, default 90), limit (1-10000), ipVersion (4/6), onlyCountries / exceptCountries (ISO-2). Returns each IP with country, confidence, lastReportedAt + the list generatedAt.","write_action":false,"price_micros":0,"input_schema":null},{"name":"security.ip-block","description":"AbuseIPDB subnet (CIDR) check — which IPs inside a network block have been reported. Pass network as a CIDR (e.g. 118.25.0.0/24; up to /16 IPv4, /112 IPv6). Returns block metadata + reportedAddress (each flagged IP with numReports, confidence, mostRecentReport, country). Optional maxAgeInDays (default 30), limit. Vet a hosting range or sweep your own allocation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"security.ip-reputation","description":"Multi-source IP reputation with one combined authority score (0-100). Polls AbuseIPDB (crowd abuse confidence), abuse.ch threat-lists (Feodo C2 + ThreatFox + Spamhaus DROP + Tor), blocklist.de (fail2ban network), and StopForumSpam in parallel and blends them into a verdict (clean/low/suspicious/malicious) + flaggedBy + per-source opinions + enrichment (ISP, usage type, country, ASN, Tor). Authorit","write_action":false,"price_micros":0,"input_schema":null},{"name":"security.password-exposure","description":"Check whether a password appears in known breaches via Have I Been Pwned's k-anonymity model — only the first 5 chars of the password's SHA-1 are sent upstream, never the password or full hash. POST { password } (hashed server-side) or { sha1 } (the 40-hex SHA-1, for zero-knowledge). Returns breached + count. 900M+ breach corpus; for signup/password-policy enforcement. Absence ≠ strength.","write_action":false,"price_micros":0,"input_schema":null},{"name":"soil.hardiness-zone","description":"USDA Plant Hardiness Zone for a US ZIP code — planting zone (e.g. \"9b\") + average annual minimum-temperature range (°F) + ZIP centroid. Keyless, public-domain. The \"what grows where\" primitive for gardening/landscaping/nursery/agronomy.","write_action":false,"price_micros":0,"input_schema":null},{"name":"soil.profile","description":"Ground-truth soil profile for any US lat/lng from USDA-NRCS SSURGO. Returns the soil map unit + component soil types ranked by composition %, each with taxonomic order/class, drainage class, hydrologic group, and slope. Keyless, public-domain. For agronomy, land/septic/foundation suitability, hydrology, crop-fit. Water/unsurveyed points return an empty component list.","write_action":false,"price_micros":0,"input_schema":null},{"name":"tax.vat","description":"Validate an EU VAT number against the official VIES register in real time. Confirms current registration for intra-EU trade and, when the member state discloses it, returns the registered business name + address. Covers the 27 EU states (Greece as EL) plus Northern Ireland (XI); Great Britain (GB) is not in VIES. Pass vat (full identifier like DE811569869) OR country + number. Returns {valid, coun","write_action":false,"price_micros":0,"input_schema":null},{"name":"tax.vat-rates","description":"Current EU VAT rates by member state — standard rate plus reduced/super-reduced/parking/zero rates — from the European Commission TEDB, refreshed regularly. Pass country (ISO 2-letter; Greece is EL) for one state, or omit for all 27. Each result returns standardRate, reducedRates[], every rate category with its percentage, and the date in force. Pairs with tax.vat (number validation).","write_action":false,"price_micros":0,"input_schema":null},{"name":"telecom.fcc-filings","description":"Search FCC ECFS filings for a proceeding/docket (e.g. 17-108 net neutrality, 11-42 Lifeline), optionally by filer. Returns newest filings with submission id, filer, type, lead bureau, received/disseminated dates, doc count. Track FCC regulatory dockets, comments, ex-parte filings. Public-domain.","write_action":false,"price_micros":0,"input_schema":null},{"name":"telecom.market-area","description":"Map a US lat/lon to its FCC spectrum-licensing geographies — Cellular Market Area (CMA), Basic/Major Trading Area (BTA/MTA), Partial Economic Area (PEA), and BEA/EAG/MEA/REAG economic areas — plus 2020 Census block FIPS, county, and block population. These define spectrum-license boundaries; distinct from ordinary geocoding. Keyless, public-domain.","write_action":false,"price_micros":0,"input_schema":null},{"name":"travel.advisory","description":"Current US State Department travel advisories. Omit country for the full list, or pass a country name (case-insensitive substring) for one. Returns the advisory level (1 Normal Precautions → 4 Do Not Travel) with label, a plain-text summary of reasons, the official link, and published date. Live from the official travel.state.gov RSS feed (public domain).","write_action":false,"price_micros":0,"input_schema":null},{"name":"travel.visa","description":"Visa requirement for a passport × destination. Pass passport and destination as ISO-3166 alpha-3, alpha-2, or country name. Returns the category — visa free (with visaFreeDays), visa on arrival, e-visa, eta, visa required, or no admission — plus a plain-language description. Community-maintained Passport Index dataset (MIT); informational, not official immigration advice.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate.aba","description":"Validate a US bank ABA routing number with the Federal Reserve weighted mod-10 (3-7-1) checksum, not just a regex. Returns valid, routingNumber, and routing-symbol district. Catches transposed digits in ACH/wire setup.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate.batch","description":"Validate up to 100 mixed identifiers in one deterministic call. Pass items=[{type,value}] with type one of iban, gtin, aba, lei, bic, gln, sscc, isin, cusip. Each result (in input order, with index + type) carries valid/reason plus the same type-specific fields the single endpoints return. One bad value or unsupported type degrades to that item only. Collapses a whole record of checksum checks int","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate.bic","description":"Validate a SWIFT/BIC code (ISO 9362): 8 or 11 chars = institution + ISO country + location + optional branch, with the country checked against ISO 3166. Returns parsed parts. Structure only, not a directory lookup.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate.cusip","description":"Validate a CUSIP (9-character US/Canada securities identifier) with its mod-10 weighted check digit. Returns valid + check digit. Deterministic security-master validation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate.gln","description":"Validate a GS1 GLN (Global Location Number), 13 digits with the GS1 mod-10 check digit. GLNs identify trading parties + physical locations in CPG supply chains / EDI. Deterministic.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate.gtin","description":"Validate a product barcode (GTIN-8/12/13/14, UPC-A, EAN-13, ISBN-10/13) with the GS1 mod-10 / ISBN mod-11 check digit. Returns valid, type, and the canonical GTIN-14 key for product-master dedup. Deterministic — no checksum math in the LLM.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate.iban","description":"Validate an IBAN (International Bank Account Number) with full ISO 13616 checks: country-specific length + ISO 7064 mod-97 checksum, not just regex. Returns valid flag, normalized + 4-char-grouped form, country, check digits, and BBAN. Deterministic, ~85 countries — validate AND canonicalize bank details in one call instead of doing checksum math in an LLM.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate.isin","description":"Validate an ISIN (ISO 6166 securities identifier): 2-letter country + 9-char NSIN + Luhn check digit. Returns valid, country, nsin, and the embedded CUSIP for US/CA issues. Catches transposed chars in security master data.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate.lei","description":"Validate a Legal Entity Identifier (LEI, ISO 17442) with the ISO 7064 mod-97-10 check digits. Returns valid, normalized LEI, and the issuing LOU prefix. Confirms a counterparty/vendor LEI is well-formed before GLEIF lookup.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate.sscc","description":"Validate a GS1 SSCC (Serial Shipping Container Code), 18 digits with the GS1 mod-10 check digit. SSCCs identify logistic units (pallets/cases) — the key field in shipping/ASN (EDI 856). Deterministic.","write_action":false,"price_micros":0,"input_schema":null},{"name":"vehicle.canadian-specs","description":"Canadian-market vehicle dimensions/weights from NHTSA vPIC Canadian Vehicle Specifications. Pass year + make (required) + optional model. Returns labeled dimensions — overall length/width/height (cm), wheelbase, curb weight (kg), track width, interior room, weight distribution — plus the raw spec map. Keyless, public-domain, 1971+.","write_action":false,"price_micros":0,"input_schema":null},{"name":"vehicle.fuel-economy","description":"Official US EPA/DOE fuel-economy, fuel-cost, and emissions data for a vehicle by year + make + model. Returns one entry per powertrain configuration: MPG city/highway/combined (MPGe for EVs), CO2 grams/mile, annual fuel cost, annual petroleum barrels, EPA greenhouse-gas score, 5-year savings vs average, transmission, drivetrain, cylinders, displacement, fuel type, size class, EV range. Authoritati","write_action":false,"price_micros":0,"input_schema":null},{"name":"water.gauge","description":"Real-time US river/stream conditions from a USGS monitoring site. Pass site (USGS site number, e.g. 01646500). Returns latest streamflow, gage height, water temp + site name/location. Source: USGS NWIS (keyless).","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":82,"grade":"B","scanned_at":"2026-11-01T22:09:58.369Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-01T22:09:58.358Z","components":{"code":{"score":25,"max":25,"notes":["10 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 8 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@2sio/mcp","version":"1.82.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-08-21T13:35:08.788Z","repositoryUrl":"git+https://github.com/2s-io/sdk.git"}],"repo":{"found":true,"owner":"2s-io","repo":"sdk","archived":false,"pushedAt":"2026-10-24T15:25:05Z","stars":9,"forks":0,"openIssues":3,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/288736398?v=4","ownerCreatedAt":"2026-05-28T18:53:23Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/288736398?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":9,"forks":0,"downloadsWeek":471,"license":"MIT","lastPushAt":"2026-10-24T15:25:05.000Z","score":41}}}},"grade_history":[],"reviews":[]}