{"serverId":"mcp-registry/com.apiacre/api-acre","tools":[{"name":"commerce.product-price","fixed":{"name":"commerce_product-price","description":"Paste one public retailer product URL to get its current publisher-supplied structured price, currency, availability, seller, shipping terms, aggregate rating, variant attributes, identifiers, observation time, and evidence hashes from Schema.org JSON-LD, Schema.org microdata, or paired product meta tags; optionally compare the selected offer with a buyer-supplied maximum. Fetching proceeds only when robots.txt permits it, without JavaScript, login, cookies, or anti-bot bypass.","inputSchema":{"type":"object","title":"ProductPriceInput","required":["url"],"properties":{"url":{"type":"string","title":"Url","format":"uri","maxLength":2083,"minLength":1},"maximum_price":{"anyOf":[{"type":"number","maximum":1000000000000,"minimum":0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,13}|(?=[\\d.]{1,20}0*$)\\d{0,13}\\.\\d{0,6}0*$)"},{"type":"null"}],"title":"Maximum Price","default":null,"examples":["49.99"],"description":"Optional maximum price in expected_currency; comparison is null when the publisher reports another currency"},"expected_currency":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{3}$"},{"type":"null"}],"title":"Expected Currency","default":null,"examples":["GBP"],"description":"Optional ISO 4217 currency expected by the buyer"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"commerce.product-price\" → \"commerce_product-price\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":367,"tokensAfter":367},{"name":"crypto.address-inspect","fixed":{"name":"crypto_address-inspect","description":"Validate and normalize an Ethereum or EVM wallet address, distinguish valid, absent, or invalid ERC-55 checksum casing, and identify the zero address without a network request.","inputSchema":{"type":"object","title":"AddressInput","required":["address"],"properties":{"address":{"type":"string","title":"Address","maxLength":128,"minLength":2}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"crypto.address-inspect\" → \"crypto_address-inspect\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"crypto.base-account-snapshot","fixed":{"name":"crypto_base-account-snapshot","description":"Read point-in-time ETH, native USDC, and up to four caller-selected ERC-20 balances plus account nonce and contract-code status at one resolved Base mainnet block.","inputSchema":{"type":"object","title":"BaseAccountSnapshotInput","required":["address"],"properties":{"address":{"type":"string","title":"Address","maxLength":42,"minLength":42,"description":"A 20-byte EVM address on Base mainnet"},"block_tag":{"enum":["latest","safe","finalized"],"type":"string","title":"Block Tag","default":"safe","description":"Base block tag resolved once and reused for the complete snapshot"},"token_contracts":{"type":"array","items":{"type":"string"},"title":"Token Contracts","maxItems":4,"description":"Optional caller-selected ERC-20 contracts whose balanceOf, decimals, and symbol methods are read at the same resolved block"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"crypto.base-account-snapshot\" → \"crypto_base-account-snapshot\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":245,"tokensAfter":245},{"name":"crypto.base-account-status","fixed":{"name":"crypto_base-account-status","description":"Check one Base mainnet wallet or contract for ETH and official USDC balances, transaction nonce, and contract-bytecode evidence at a single resolved block.","inputSchema":{"type":"object","title":"BaseAccountStatusInput","required":["address"],"properties":{"address":{"type":"string","title":"Address","maxLength":42,"minLength":42,"description":"A 20-byte EVM address on Base mainnet"},"block_tag":{"enum":["latest","safe","finalized"],"type":"string","title":"Block Tag","default":"safe","description":"Base block tag resolved once and reused for every account read"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"crypto.base-account-status\" → \"crypto_base-account-status\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":174,"tokensAfter":174},{"name":"crypto.base-block-inspect","fixed":{"name":"crypto_base-block-inspect","description":"Get and inspect one historical Base mainnet block by exact number or a latest, safe, or finalized tag, returning its header timestamp, transaction count, gas use, base and blob fees, state and receipt roots, confirmations, and head-distance evidence.","inputSchema":{"type":"object","title":"BaseBlockInspectInput","properties":{"block_tag":{"enum":["latest","safe","finalized"],"type":"string","title":"Block Tag","default":"safe","description":"Base block tag used only when block_number is omitted"},"block_number":{"anyOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"null"}],"title":"Block Number","default":null,"examples":[34600000],"description":"Optional Base block number as a JSON-safe integer. When provided it takes precedence over block_tag."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"crypto.base-block-inspect\" → \"crypto_base-block-inspect\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":232,"tokensAfter":232},{"name":"crypto.base-contract-inspect","fixed":{"name":"crypto_base-contract-inspect","description":"Inspect Base mainnet contract bytecode, common token metadata, and ERC-165, ERC-721, and ERC-1155 interface signals at one resolved block.","inputSchema":{"type":"object","title":"BaseContractInspectInput","required":["contract"],"properties":{"contract":{"type":"string","title":"Contract","maxLength":42,"minLength":42,"description":"The 20-byte Base mainnet contract address to inspect"},"block_tag":{"enum":["latest","safe","finalized"],"type":"string","title":"Block Tag","default":"safe","description":"Base block tag resolved once and reused for every inspection read"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"crypto.base-contract-inspect\" → \"crypto_base-contract-inspect\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":176,"tokensAfter":176},{"name":"crypto.base-contract-read","fixed":{"name":"crypto_base-contract-read","description":"Execute one bounded read-only eth_call against a resolved Base mainnet block, retain call and block evidence, and optionally decode caller-specified ABI output types.","inputSchema":{"type":"object","title":"BaseContractReadInput","required":["contract","call_data"],"properties":{"contract":{"type":"string","title":"Contract","maxLength":42,"minLength":42,"description":"The 20-byte Base mainnet contract address to read"},"block_tag":{"enum":["latest","safe","finalized"],"type":"string","title":"Block Tag","default":"safe","description":"Base block tag resolved once before executing the read"},"call_data":{"type":"string","title":"Call Data","examples":["0x313ce567"],"maxLength":16386,"minLength":2,"description":"ABI-encoded eth_call data, including the function selector"},"gas_limit":{"type":"integer","title":"Gas Limit","default":2000000,"maximum":5000000,"minimum":21000,"description":"Bounded execution allowance for the read-only call"},"from_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Address","default":null,"description":"Optional msg.sender context; no private key or transaction is used"},"output_types":{"type":"array","items":{"type":"string"},"title":"Output Types","examples":[["uint8"]],"maxItems":16,"description":"Optional primitive ABI output types used to decode a successful result; arrays and tuples are intentionally excluded"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"crypto.base-contract-read\" → \"crypto_base-contract-read\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":400,"tokensAfter":400},{"name":"crypto.base-event-logs","fixed":{"name":"crypto_base-event-logs","description":"Query validated eth_getLogs events from one Base mainnet contract using a required event signature and optional indexed topic filters across a bounded resolved block range.","inputSchema":{"type":"object","title":"BaseEventLogsInput","required":["contract","topics"],"properties":{"limit":{"type":"integer","title":"Limit","default":50,"maximum":100,"minimum":1,"description":"Maximum newest-first validated logs returned"},"topics":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"null"}]},"title":"Topics","examples":[["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"],["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",null,"0x0000000000000000000000001111111111111111111111111111111111111111"]],"maxItems":4,"minItems":1,"description":"One required event-signature topic followed by optional indexed topic values or null wildcards. Signature-only scans are limited to 100 resolved blocks; adding an indexed value permits up to 2,000."},"contract":{"type":"string","title":"Contract","maxLength":42,"minLength":42,"description":"The 20-byte Base mainnet contract whose event logs are queried"},"block_tag":{"enum":["latest","safe","finalized"],"type":"string","title":"Block Tag","default":"safe","description":"Base block tag resolved once as the inclusive upper bound"},"lookback_blocks":{"type":"integer","title":"Lookback Blocks","default":100,"maximum":2000,"minimum":1,"description":"Inclusive resolved Base blocks to scan; defaults to the 100-block signature-only ceiling and may be raised to 2,000 with an indexed topic value"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"crypto.base-event-logs\" → \"crypto_base-event-logs\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":456,"tokensAfter":456},{"name":"crypto.base-gas-estimate","fixed":{"name":"crypto_base-gas-estimate","description":"Estimate gas for one Base mainnet transaction context at a resolved block, add a bounded caller-selected buffer, and preserve RPC rejection evidence without signing or broadcasting.","inputSchema":{"type":"object","title":"BaseGasEstimateInput","required":["from_address","to"],"properties":{"to":{"type":"string","title":"To","maxLength":42,"minLength":42,"description":"The 20-byte Base mainnet transaction destination"},"block_tag":{"enum":["latest","safe","finalized"],"type":"string","title":"Block Tag","default":"safe","description":"Base block tag resolved once before estimation"},"call_data":{"type":"string","title":"Call Data","default":"0x","examples":["0x313ce567"],"maxLength":32770,"minLength":2,"description":"Optional even-length hexadecimal transaction calldata"},"value_wei":{"type":"string","title":"Value Wei","default":"0","examples":["0"],"maxLength":78,"minLength":1,"description":"Unsigned ETH value in wei as a canonical decimal string"},"from_address":{"type":"string","title":"From Address","maxLength":42,"minLength":42,"description":"The 20-byte Base mainnet sender context; no private key is used"},"buffer_percent":{"type":"integer","title":"Buffer Percent","default":20,"maximum":50,"minimum":0,"description":"Bounded percentage added to the RPC estimate for a suggested gas limit"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"crypto.base-gas-estimate\" → \"crypto_base-gas-estimate\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":381,"tokensAfter":381},{"name":"crypto.base-network-status","fixed":{"name":"crypto_base-network-status","description":"Read the latest Base mainnet block and a bounded EIP-1559 fee history in one RPC batch, including gas utilization and priority-fee percentile samples.","inputSchema":{"type":"object","title":"BaseNetworkStatusInput","properties":{"fee_history_blocks":{"type":"integer","title":"Fee History Blocks","default":5,"maximum":20,"minimum":1,"description":"Number of recent Base blocks included in the EIP-1559 fee history"},"reward_percentiles":{"type":"array","items":{"type":"number"},"title":"Reward Percentiles","maxItems":5,"minItems":1,"description":"Strictly increasing gas-tip percentiles requested from eth_feeHistory"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"crypto.base-network-status\" → \"crypto_base-network-status\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":189,"tokensAfter":189},{"name":"crypto.base-transaction-inspect","fixed":{"name":"crypto_base-transaction-inspect","description":"Inspect Base transaction status and receipt evidence in one call, including success, revert, or pending state, confirmations, actual gas fee, recognized calldata, bounded ERC-20-shaped transfers, and official Base USDC recognition for payment confirmation.","inputSchema":{"type":"object","title":"BaseTransactionInspectInput","required":["transaction_hash"],"properties":{"transaction_hash":{"type":"string","title":"Transaction Hash","examples":["0x1212121212121212121212121212121212121212121212121212121212121212"],"description":"A 32-byte Base mainnet transaction hash"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"crypto.base-transaction-inspect\" → \"crypto_base-transaction-inspect\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":177,"tokensAfter":177},{"name":"crypto.base-usdc-transfers","fixed":{"name":"crypto_base-usdc-transfers","description":"Retrieve newest-first incoming and outgoing Circle USDC Transfer events for one address across a validated, bounded Base mainnet block range.","inputSchema":{"type":"object","title":"BaseUsdcTransfersInput","required":["address"],"properties":{"limit":{"type":"integer","title":"Limit","default":50,"maximum":100,"minimum":1,"description":"Maximum newest-first transfers returned after validation and de-duplication"},"address":{"type":"string","title":"Address","maxLength":42,"minLength":42,"description":"The 20-byte Base mainnet address whose official USDC transfers are read"},"block_tag":{"enum":["latest","safe","finalized"],"type":"string","title":"Block Tag","default":"safe","description":"Base block tag resolved once as the inclusive upper bound"},"direction":{"enum":["any","incoming","outgoing"],"type":"string","title":"Direction","default":"any","description":"Return transfers in either direction or restrict the indexed address topic"},"lookback_blocks":{"type":"integer","title":"Lookback Blocks","default":2000,"maximum":2000,"minimum":1,"description":"Inclusive number of resolved Base blocks to scan, capped for RPC reliability"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"crypto.base-usdc-transfers\" → \"crypto_base-usdc-transfers\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":335,"tokensAfter":335},{"name":"crypto.calldata-decode","fixed":{"name":"crypto_calldata-decode","description":"Resolve 29 common ERC-20, ERC-165, ERC-721, ERC-1155, ERC-2612, and ERC-3009 selectors without a network lookup, or strictly decode arbitrary Ethereum or EVM calldata using a supplied Solidity signature.","inputSchema":{"type":"object","title":"CalldataInput","required":["calldata"],"properties":{"calldata":{"type":"string","title":"Calldata","maxLength":200000,"minLength":2,"description":"ABI argument bytes, optionally prefixed by the four-byte function selector"},"input_mode":{"enum":["auto","selector_and_arguments","arguments_only"],"type":"string","title":"Input Mode","default":"auto","description":"Whether calldata includes a selector. Auto consumes a matching supplied-signature selector, or resolves a built-in standard selector when function_signature is omitted."},"function_signature":{"anyOf":[{"type":"string","maxLength":500,"minLength":3},{"type":"null"}],"title":"Function Signature","default":null,"examples":["transfer(address,uint256)"],"description":"Optional Solidity function signature, including argument types but no parameter names. When omitted, calldata must include a selector from the bounded built-in ERC-20, ERC-165, ERC-721, ERC-1155, ERC-2612, or ERC-3009 set."}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"crypto.calldata-decode\" → \"crypto_calldata-decode\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":349,"tokensAfter":349},{"name":"crypto.typed-data-hash","fixed":{"name":"crypto_typed-data-hash","description":"Validate EIP-712 typed structured data and derive its domain separator, message hash, and signing digest.","inputSchema":{"type":"object","title":"TypedDataInput","required":["typed_data"],"properties":{"typed_data":{"type":"object","title":"Typed Data","additionalProperties":true}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"crypto.typed-data-hash\" → \"crypto_typed-data-hash\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":93,"tokensAfter":93},{"name":"data.clean","fixed":{"name":"data_clean","description":"Clean CSV, TSV, JSON, JSON Lines, or YAML records with collision-safe header normalization, deterministic integrity hashes, and exact transformation counts.","inputSchema":{"type":"object","title":"CleanInput","required":["content","format"],"properties":{"format":{"enum":["csv","tsv","json","jsonl","yaml"],"type":"string","title":"Format","description":"Source format; use jsonl for JSON Lines or NDJSON"},"content":{"type":"string","title":"Content","maxLength":2000000},"trim_strings":{"type":"boolean","title":"Trim Strings","default":true},"empty_to_null":{"type":"boolean","title":"Empty To Null","default":true},"normalize_headers":{"type":"boolean","title":"Normalize Headers","default":true}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.clean\" → \"data_clean\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":206,"tokensAfter":206},{"name":"data.contract","fixed":{"name":"data_contract","description":"Normalize caller-supplied CSV, TSV, JSON, JSON Lines, or YAML to deterministic JSON, infer a Draft 2020-12 schema from that normalized value, and validate one future JSON value in a single x402 call.","inputSchema":{"type":"object","title":"DataContractInput","required":["content","format","instance"],"properties":{"format":{"enum":["csv","tsv","json","jsonl","yaml"],"type":"string","title":"Format","description":"Source format; use jsonl for JSON Lines or NDJSON"},"content":{"type":"string","title":"Content","maxLength":2000000},"instance":{"title":"Instance","description":"Future JSON-compatible value to validate against the schema inferred from content","type":"string"},"root_mode":{"enum":["records","preserve"],"type":"string","title":"Root Mode","default":"records","description":"Keep the compatible array-of-records contract, or preserve the JSON/YAML root shape"},"max_errors":{"type":"integer","title":"Max Errors","default":25,"maximum":100,"minimum":1},"check_formats":{"type":"boolean","title":"Check Formats","default":true,"description":"Assert supported JSON Schema formats during future-value validation"}},"description":"Source records plus one future value to check against their observed contract.","additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.contract\" → \"data_contract\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true},{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: instance. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":356,"tokensAfter":361},{"name":"data.convert","fixed":{"name":"data_convert","description":"Convert caller-supplied CSV, TSV, JSON, JSON Lines (NDJSON), or YAML with optional root preservation, deterministic integrity hashes, JSON-encoded nested tabular cells, and explicit rejection of ambiguous duplicate keys or non-finite numbers.","inputSchema":{"type":"object","title":"ConvertInput","required":["content","format","target_format"],"properties":{"format":{"enum":["csv","tsv","json","jsonl","yaml"],"type":"string","title":"Format","description":"Source format; use jsonl for JSON Lines or NDJSON"},"content":{"type":"string","title":"Content","maxLength":2000000},"root_mode":{"enum":["records","preserve"],"type":"string","title":"Root Mode","default":"records","description":"Normalize the source into record rows, or preserve its parsed root when the target is JSON or YAML"},"target_format":{"enum":["csv","tsv","json","jsonl","yaml"],"type":"string","title":"Target Format","description":"Target format; use jsonl for JSON Lines or NDJSON"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.convert\" → \"data_convert\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":279,"tokensAfter":279},{"name":"data.current-weather","fixed":{"name":"data_current-weather","description":"Get one current weather snapshot for a city/locality name or exact coordinates. Returns the nearest NOAA/NWS station observation where available; otherwise returns the latest MET Norway model point, always labeled explicitly as observation or model with bounded SI fields and source provenance.","inputSchema":{"type":"object","oneOf":[{"not":{"anyOf":[{"required":["latitude"]},{"required":["longitude"]}]},"required":["city"]},{"not":{"required":["city"]},"required":["latitude","longitude"]}],"title":"CurrentWeatherInput","properties":{"city":{"anyOf":[{"type":"string","maxLength":100,"minLength":2},{"type":"null"}],"title":"City","default":null,"examples":["London, GB"],"description":"City or locality name, optionally followed by country and first-level region qualifiers, for example London, GB or Paris, Texas, US. Provide either city or both latitude and longitude."},"latitude":{"anyOf":[{"type":"number","maximum":90,"minimum":-90},{"type":"null"}],"title":"Latitude","default":null,"examples":[38.8977],"description":"Latitude in decimal degrees, rounded to four decimal places. Provide with longitude instead of city."},"longitude":{"anyOf":[{"type":"number","maximum":180,"minimum":-180},{"type":"null"}],"title":"Longitude","default":null,"examples":[-77.0365],"description":"Longitude in decimal degrees, rounded to four decimal places. Provide with latitude instead of city."}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.current-weather\" → \"data_current-weather\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":410,"tokensAfter":410},{"name":"data.deduplicate","fixed":{"name":"data_deduplicate","description":"Remove duplicate CSV, TSV, JSON, JSON Lines, or YAML records using selected identity fields and report the removed count.","inputSchema":{"type":"object","title":"DedupeInput","required":["content","format"],"properties":{"keep":{"enum":["first","last"],"type":"string","title":"Keep","default":"first"},"keys":{"type":"array","items":{"type":"string"},"title":"Keys","maxItems":20},"format":{"enum":["csv","tsv","json","jsonl","yaml"],"type":"string","title":"Format","description":"Source format; use jsonl for JSON Lines or NDJSON"},"content":{"type":"string","title":"Content","maxLength":2000000}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.deduplicate\" → \"data_deduplicate\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":180,"tokensAfter":180},{"name":"data.ecb-fx-reference","fixed":{"name":"data_ecb-fx-reference","description":"Convert an amount between two supported currencies using one validated ECB daily reference-rate observation. The underlying ECB statistics are available free from the ECB Data Portal; the fee covers bounded retrieval, validation, clearly labelled cross-rate calculation, and x402 delivery.","inputSchema":{"type":"object","title":"EcbFxReferenceInput","required":["base_currency","quote_currency"],"properties":{"amount":{"type":"string","title":"Amount","default":"1","pattern":"^(?:0|[1-9][0-9]{0,14})(?:\\.[0-9]{1,8})?$","examples":["100"],"maxLength":24,"minLength":1,"description":"Positive decimal amount with at most 15 integer and 8 fractional digits"},"on_or_before":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"On Or Before","default":null,"examples":["2026-08-18"],"description":"Optional date whose latest available ECB reference observation is used; omit for the latest available common business day"},"base_currency":{"enum":["AUD","BRL","CAD","CHF","CNY","CZK","DKK","EUR","GBP","HKD","HUF","IDR","ILS","INR","ISK","JPY","KRW","MXN","MYR","NOK","NZD","PHP","PLN","RON","SEK","SGD","THB","TRY","USD","ZAR"],"type":"string","title":"Base Currency","examples":["GBP"],"maxLength":3,"minLength":3,"description":"Three-letter currency converted from, for example GBP"},"quote_currency":{"enum":["AUD","BRL","CAD","CHF","CNY","CZK","DKK","EUR","GBP","HKD","HUF","IDR","ILS","INR","ISK","JPY","KRW","MXN","MYR","NOK","NZD","PHP","PLN","RON","SEK","SGD","THB","TRY","USD","ZAR"],"type":"string","title":"Quote Currency","examples":["USD"],"maxLength":3,"minLength":3,"description":"Three-letter currency converted to, for example USD"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.ecb-fx-reference\" → \"data_ecb-fx-reference\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":477,"tokensAfter":477},{"name":"data.json-repair","fixed":{"name":"data_json-repair","description":"Repair caller-supplied malformed JSON by safely removing an outer Markdown fence, comments, single-quoted strings, unquoted identifier keys, Python literals, and trailing commas, with transformation hashes and strict rejection of duplicate keys or non-finite numbers.","inputSchema":{"type":"object","title":"JsonRepairInput","required":["content"],"properties":{"content":{"type":"string","title":"Content","maxLength":1000000,"minLength":1},"repairs":{"type":"array","items":{"enum":["markdown_fence","comments","single_quoted_strings","unquoted_keys","python_literals","trailing_commas"],"type":"string"},"title":"Repairs","maxItems":6,"minItems":1,"description":"Safe repair classes to permit; service execution order is fixed and deterministic"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.json-repair\" → \"data_json-repair\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":229,"tokensAfter":229},{"name":"data.place-geocode","fixed":{"name":"data_place-geocode","description":"Resolve one global city or locality name into bounded, population-ranked GeoNames coordinates, country and first-level-region identity, population, timezone, feature code, and source freshness without a request-time network call.","inputSchema":{"type":"object","title":"PlaceGeocodeInput","required":["place"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"maximum":10,"minimum":1,"description":"Maximum number of population-ranked exact-name candidates to return."},"place":{"type":"string","title":"Place","examples":["London, GB"],"maxLength":100,"minLength":2,"description":"City or locality name with optional comma-separated country or first-level region qualifiers. Examples: 'London, GB' or 'Paris, Texas, US'. This is not a street-address, parcel, point-of-interest, or routing lookup."}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.place-geocode\" → \"data_place-geocode\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":241,"tokensAfter":241},{"name":"data.profile","fixed":{"name":"data_profile","description":"Profile CSV, TSV, JSON, JSON Lines, or YAML records for field types, nulls, uniqueness, and representative samples.","inputSchema":{"type":"object","title":"DataInput","required":["content","format"],"properties":{"format":{"enum":["csv","tsv","json","jsonl","yaml"],"type":"string","title":"Format","description":"Source format; use jsonl for JSON Lines or NDJSON"},"content":{"type":"string","title":"Content","maxLength":2000000}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.profile\" → \"data_profile\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":132,"tokensAfter":132},{"name":"data.reverse-geocode","fixed":{"name":"data_reverse-geocode","description":"Resolve one latitude/longitude pair into bounded, great-circle-distance-ranked nearby GeoNames populated places with country, first-level region, population, timezone, feature code, and source freshness without a request-time network call.","inputSchema":{"type":"object","title":"ReverseGeocodeInput","required":["latitude","longitude"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"maximum":10,"minimum":1,"description":"Maximum number of nearest populated places to return."},"latitude":{"type":"number","title":"Latitude","maximum":90,"minimum":-90,"examples":[51.5074],"description":"Latitude in decimal degrees."},"longitude":{"type":"number","title":"Longitude","maximum":180,"minimum":-180,"examples":[-0.1278],"description":"Longitude in decimal degrees."},"radius_km":{"type":"number","title":"Radius Km","default":100,"maximum":500,"minimum":1,"description":"Maximum great-circle distance in kilometres to search for populated places."}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.reverse-geocode\" → \"data_reverse-geocode\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":284,"tokensAfter":284},{"name":"data.schema","fixed":{"name":"data_schema","description":"Create and generate a nested JSON Schema Draft 2020-12 contract by inferring field types and required fields from representative JSON, CSV, TSV, JSON Lines, or YAML records, with equivalent CSV/TSV numeric and null inference, input evidence, and non-enforcing observed bounds.","inputSchema":{"type":"object","title":"SchemaInput","required":["content","format"],"properties":{"format":{"enum":["csv","tsv","json","jsonl","yaml"],"type":"string","title":"Format","description":"Source format; use jsonl for JSON Lines or NDJSON"},"content":{"type":"string","title":"Content","maxLength":2000000},"root_mode":{"enum":["records","preserve"],"type":"string","title":"Root Mode","default":"records","description":"Keep the compatible array-of-records contract, or preserve the JSON/YAML root shape"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.schema\" → \"data_schema\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":232,"tokensAfter":232},{"name":"data.schema-validate","fixed":{"name":"data_schema-validate","description":"Validate JSON data against a bounded JSON Schema Draft 2020-12 contract for nested objects, arrays, required properties, types, enums, formats, lengths, patterns, and numeric bounds; return deterministic instance and schema JSON Pointers, explicit error truncation, input hashes, and no remote reference resolution.","inputSchema":{"type":"object","title":"SchemaValidateInput","required":["schema","instance"],"properties":{"schema":{"type":"object","title":"Schema","description":"JSON Schema Draft 2020-12 document; only local fragment references are allowed","additionalProperties":true},"instance":{"title":"Instance","description":"JSON-compatible value to validate","type":"string"},"max_errors":{"type":"integer","title":"Max Errors","default":25,"maximum":100,"minimum":1},"check_formats":{"type":"boolean","title":"Check Formats","default":true,"description":"Assert supported JSON Schema formats as well as structural keywords"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.schema-validate\" → \"data_schema-validate\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true},{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: instance. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":279,"tokensAfter":283},{"name":"data.schemaorg-normalize","fixed":{"name":"data_schemaorg-normalize","description":"Normalize caller-supplied inline Schema.org JSON-LD into deterministic Organization, Product, Service, Article, and Event entities with privacy scrubbing and field-level evidence hashes.","inputSchema":{"type":"object","title":"SchemaOrgNormalizeInput","required":["html"],"properties":{"html":{"type":"string","title":"Html","maxLength":500000,"minLength":1,"description":"HTML containing Schema.org JSON-LD script blocks, or a raw JSON-LD object or array."},"base_url":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Base Url","default":null},"include_types":{"type":"array","items":{"enum":["Organization","Product","Service","Article","Event"],"type":"string"},"title":"Include Types","maxItems":5,"minItems":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.schemaorg-normalize\" → \"data_schemaorg-normalize\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":220,"tokensAfter":220},{"name":"data.timezone-convert","fixed":{"name":"data_timezone-convert","description":"Convert an offset-aware ISO 8601 instant or a local wall time between IANA time zones with explicit DST gap and repeated-hour handling, nearby transition evidence, and a pinned local time-zone database.","inputSchema":{"type":"object","title":"TimezoneConvertInput","required":["timestamp","target_timezone"],"properties":{"timestamp":{"type":"string","title":"Timestamp","examples":["2026-11-01T01:30:00"],"maxLength":40,"minLength":16,"description":"ISO 8601 timestamp. Include Z or an offset for an exact instant, or provide a naive local timestamp together with source_timezone."},"ambiguous_time":{"enum":["reject","earlier","later"],"type":"string","title":"Ambiguous Time","default":"reject","description":"How to resolve a repeated local wall time during a backward DST transition; nonexistent spring-forward times are always rejected"},"source_timezone":{"anyOf":[{"type":"string","maxLength":100,"minLength":1},{"type":"null"}],"title":"Source Timezone","default":null,"examples":["America/New_York"],"description":"Required for a timestamp without an offset; optional source display zone for an offset-aware timestamp"},"target_timezone":{"type":"string","title":"Target Timezone","examples":["Europe/London"],"maxLength":100,"minLength":1,"description":"Target IANA time-zone name, for example Europe/London"},"include_transitions":{"type":"boolean","title":"Include Transitions","default":true,"description":"Include previous and next offset transitions within 370 days"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.timezone-convert\" → \"data_timezone-convert\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":427,"tokensAfter":427},{"name":"data.us-address-geocode","fixed":{"name":"data_us-address-geocode","description":"Geocode one structural address in the United States, Puerto Rico, or U.S. Island Areas with normalized U.S. Census MAF/TIGER coordinates, optional bounded state/county/tract/block/congressional geography, exact source attribution, and explicit range-interpolation limits.","inputSchema":{"type":"object","title":"UsAddressGeocodeInput","required":["address"],"properties":{"address":{"type":"string","title":"Address","examples":["4600 Silver Hill Rd, Washington, DC 20233"],"maxLength":300,"minLength":5,"description":"One-line structural address in the United States, Puerto Rico, or a U.S. Island Area. Include a building number and street name; city, state, and ZIP improve matching. The address is sent to the U.S. Census Geocoder for this lookup."},"include_geographies":{"type":"boolean","title":"Include Geographies","default":true,"description":"Include bounded state, county, tract, block, and current congressional-district fields from the Census geographic lookup."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.us-address-geocode\" → \"data_us-address-geocode\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":287,"tokensAfter":287},{"name":"data.us-weather-forecast","fixed":{"name":"data_us-weather-forecast","description":"Get a global weather forecast for a city/locality name or exact coordinates. Returns normalized day/night or hourly periods worldwide: NOAA/NWS is preferred within supported U.S. coverage for optional station conditions and active alerts, while MET Norway provides an attributed open-data fallback globally.","inputSchema":{"type":"object","oneOf":[{"not":{"anyOf":[{"required":["latitude"]},{"required":["longitude"]}]},"required":["place"]},{"not":{"required":["place"]},"required":["latitude","longitude"]}],"title":"UsWeatherForecastInput","properties":{"place":{"anyOf":[{"type":"string","maxLength":100,"minLength":2},{"type":"null"}],"title":"Place","default":null,"examples":["London, GB"],"description":"City or locality name, optionally followed by country and first-level region qualifiers, for example London, GB or Paris, Texas, US. Provide either place or both latitude and longitude."},"units":{"enum":["us","si"],"type":"string","title":"Units","default":"us","description":"US customary or SI units requested from the NWS API"},"periods":{"type":"integer","title":"Periods","default":6,"maximum":48,"minimum":1,"description":"Maximum periods to return; day_night supports at most 14 and hourly at most 48"},"latitude":{"anyOf":[{"type":"number","maximum":90,"minimum":-90},{"type":"null"}],"title":"Latitude","default":null,"examples":[38.8977],"description":"Latitude in decimal degrees, rounded to four decimal places. Provide with longitude instead of place."},"timezone":{"anyOf":[{"type":"string","maxLength":100,"minLength":1},{"type":"null"}],"title":"Timezone","default":null,"examples":["Europe/London"],"description":"Optional IANA time zone used to group MET Norway day/night periods. Place-name requests use the matched GeoNames zone; coordinate requests default to UTC; NWS returns its authoritative point time zone."},"longitude":{"anyOf":[{"type":"number","maximum":180,"minimum":-180},{"type":"null"}],"title":"Longitude","default":null,"examples":[-77.0365],"description":"Longitude in decimal degrees, rounded to four decimal places. Provide with latitude instead of place."},"forecast_type":{"enum":["day_night","hourly"],"type":"string","title":"Forecast Type","default":"day_night","description":"Day/night forecast periods or hourly forecast periods"},"source_preference":{"enum":["auto","nws","met"],"type":"string","title":"Source Preference","default":"auto","description":"Prefer NWS within its U.S. coverage and fall back to MET Norway globally, or explicitly select one source"},"include_active_alerts":{"type":"boolean","title":"Include Active Alerts","default":false,"description":"Include up to 10 currently active NWS alerts whose affected area contains the requested point"},"include_current_conditions":{"type":"boolean","title":"Include Current Conditions","default":false,"description":"Include the latest observation from the nearest available NWS station; kept opt-in to preserve baseline latency"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.us-weather-forecast\" → \"data_us-weather-forecast\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":844,"tokensAfter":844},{"name":"data.vin-decode","fixed":{"name":"data_vin-decode","description":"Decode a full 17-character VIN into normalized NHTSA vPIC make, model, year, body, engine, transmission, plant, fuel, and occupancy fields with official source evidence and explicit missing-data semantics.","inputSchema":{"type":"object","title":"VinDecodeInput","required":["vin"],"properties":{"vin":{"type":"string","title":"Vin","pattern":"^[A-HJ-NPR-Z0-9]{17}$","examples":["1HGCM82633A004352"],"maxLength":17,"minLength":17,"description":"Full 17-character vehicle identification number; letters I, O, and Q are invalid"},"model_year":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1980},{"type":"null"}],"title":"Model Year","default":null,"description":"Optional model-year hint used by NHTSA when VIN encoding is ambiguous"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.vin-decode\" → \"data_vin-decode\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":218,"tokensAfter":218},{"name":"data.worldbank-snapshot","fixed":{"name":"data_worldbank-snapshot","description":"Bundle six official World Development Indicators into one normalized country snapshot with latest and previous GDP, growth, population, inflation, unemployment, and life-expectancy observations plus source and license evidence.","inputSchema":{"type":"object","title":"WorldBankSnapshotInput","required":["country_code"],"properties":{"country_code":{"type":"string","title":"Country Code","pattern":"^[A-Za-z]{2,3}$","examples":["GBR","US"],"maxLength":3,"minLength":2,"description":"ISO 3166-1 alpha-2 or alpha-3 country code"},"lookback_years":{"type":"integer","title":"Lookback Years","default":10,"maximum":20,"minimum":3,"description":"Calendar-year window to request for every fixed indicator"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"data.worldbank-snapshot\" → \"data_worldbank-snapshot\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":210,"tokensAfter":210},{"name":"developer.code-change-review","fixed":{"name":"developer_code-change-review","description":"Compare caller-supplied before and after source snapshots without execution or network access, returning source fingerprints, syntax regressions, structural deltas, function-level changes, and bounded review findings.","inputSchema":{"type":"object","title":"CodeChangeReviewInput","required":["before","after"],"properties":{"after":{"type":"string","title":"After","maxLength":1000000},"before":{"type":"string","title":"Before","maxLength":1000000},"filename":{"anyOf":[{"type":"string","maxLength":260},{"type":"null"}],"title":"Filename","default":null},"language":{"type":"string","title":"Language","default":"python","maxLength":40}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"developer.code-change-review\" → \"developer_code-change-review\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":202,"tokensAfter":202},{"name":"developer.code-metrics","fixed":{"name":"developer_code-metrics","description":"Measure caller-supplied source code with Python AST analysis or a deterministic lexical fallback, including per-function complexity, a SHA-256 fingerprint, density ratios, syntax status, and actionable maintainability signals without retaining or forwarding the code. One bounded no-wallet trial is available through the separate HTTP endpoint https://apiacre.com/trials/developer.code-metrics; this MCP tools/call operation remains paid.","inputSchema":{"type":"object","title":"CodeMetricsInput","required":["code"],"properties":{"code":{"type":"string","title":"Code","maxLength":2000000,"minLength":1},"language":{"type":"string","title":"Language","default":"text","maxLength":40,"minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"developer.code-metrics\" → \"developer_code-metrics\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":217,"tokensAfter":217},{"name":"developer.dependency-audit","fixed":{"name":"developer_dependency-audit","description":"Audit exact Python/PyPI, npm, Go, Maven, NuGet, crates.io, or RubyGems dependencies against OSV and return affected packages and vulnerabilities.","inputSchema":{"type":"object","$defs":{"Dependency":{"type":"object","title":"Dependency","required":["name","version"],"properties":{"name":{"type":"string","title":"Name","maxLength":240,"minLength":1},"version":{"type":"string","title":"Version","maxLength":120,"minLength":1}}}},"title":"DependencyAuditInput","required":["ecosystem","dependencies"],"properties":{"ecosystem":{"enum":["PyPI","npm","Go","Maven","NuGet","crates.io","RubyGems"],"type":"string","title":"Ecosystem"},"dependencies":{"type":"array","items":{"$ref":"#/$defs/Dependency"},"title":"Dependencies","maxItems":100,"minItems":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"developer.dependency-audit\" → \"developer_dependency-audit\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":225,"tokensAfter":225},{"name":"developer.license-audit","fixed":{"name":"developer_license-audit","description":"Classify software dependency licenses and flag packages that need commercial or legal review.","inputSchema":{"type":"object","$defs":{"LicensedDependency":{"type":"object","title":"LicensedDependency","required":["name","license"],"properties":{"name":{"type":"string","title":"Name","maxLength":240,"minLength":1},"license":{"type":"string","title":"License","maxLength":120,"minLength":1}}}},"title":"LicenseAuditInput","required":["dependencies"],"properties":{"policy":{"enum":["permissive","commercial"],"type":"string","title":"Policy","default":"commercial"},"dependencies":{"type":"array","items":{"$ref":"#/$defs/LicensedDependency"},"title":"Dependencies","maxItems":500,"minItems":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"developer.license-audit\" → \"developer_license-audit\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":208,"tokensAfter":208},{"name":"developer.openapi-audit","fixed":{"name":"developer_openapi-audit","description":"Validate and audit an OpenAPI document for missing operation IDs, descriptions, responses, and consistency problems.","inputSchema":{"type":"object","title":"StructuredDocumentInput","required":["document"],"properties":{"format":{"enum":["json","yaml"],"type":"string","title":"Format","default":"yaml"},"document":{"type":"string","title":"Document","maxLength":2000000}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"developer.openapi-audit\" → \"developer_openapi-audit\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":118,"tokensAfter":118},{"name":"developer.openapi-test-generate","fixed":{"name":"developer_openapi-test-generate","description":"Generate deterministic, syntax-validated pytest and requests smoke tests from a caller-supplied OpenAPI 3 document, with mutating operations disabled by default.","inputSchema":{"type":"object","title":"OpenApiTestGenerateInput","required":["document"],"properties":{"format":{"enum":["json","yaml"],"type":"string","title":"Format","default":"yaml"},"base_url":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Base Url","default":null},"document":{"type":"string","title":"Document","maxLength":524288,"minLength":1},"api_key_env":{"type":"string","title":"Api Key Env","default":"API_KEY","maxLength":64,"minLength":2},"max_operations":{"type":"integer","title":"Max Operations","default":50,"maximum":100,"minimum":1},"timeout_seconds":{"type":"integer","title":"Timeout Seconds","default":20,"maximum":120,"minimum":1},"bearer_token_env":{"type":"string","title":"Bearer Token Env","default":"API_BEARER_TOKEN","maxLength":64,"minLength":2},"include_optional":{"type":"boolean","title":"Include Optional","default":false}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"developer.openapi-test-generate\" → \"developer_openapi-test-generate\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":316,"tokensAfter":316},{"name":"developer.secret-scan","fixed":{"name":"developer_secret-scan","description":"Detect likely leaked API keys, tokens, private-key headers, JWTs, and credential assignments in caller-supplied source or configuration text. Return type, line, fingerprint, and a fully redacted preview with no network access or code execution.","inputSchema":{"type":"object","title":"SecretScanInput","required":["content"],"properties":{"content":{"type":"string","title":"Content","maxLength":2000000}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"developer.secret-scan\" → \"developer_secret-scan\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":127,"tokensAfter":127},{"name":"developer.sql-change-review","fixed":{"name":"developer_sql-change-review","description":"Statically parse caller-supplied SQL without a database connection or execution, inventory statements and tables, and flag destructive DDL, unfiltered writes, and migration atomicity concerns.","inputSchema":{"type":"object","title":"SqlChangeReviewInput","required":["sql"],"properties":{"sql":{"type":"string","title":"Sql","maxLength":65536,"minLength":1},"dialect":{"enum":["postgres","mysql","sqlite","tsql","bigquery","snowflake","duckdb","spark","oracle","redshift"],"type":"string","title":"Dialect","default":"postgres"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"developer.sql-change-review\" → \"developer_sql-change-review\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":171,"tokensAfter":171},{"name":"developer.structured-diff","fixed":{"name":"developer_structured-diff","description":"Compare JSON or YAML deterministically and return source hashes plus machine-readable additions, removals, and replacements by path with explicit truncation evidence.","inputSchema":{"type":"object","title":"StructuredDiffInput","required":["before","after"],"properties":{"after":{"type":"string","title":"After","maxLength":1000000},"before":{"type":"string","title":"Before","maxLength":1000000},"format":{"enum":["json","yaml"],"type":"string","title":"Format","default":"json"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"developer.structured-diff\" → \"developer_structured-diff\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":149,"tokensAfter":149},{"name":"developer.x402-preflight","fixed":{"name":"developer_x402-preflight","description":"Probe a public endpoint without paying, grade its x402 v2 challenge, check exact-host x402-list presence and traction, and optionally rank licensed market matches with buyer-concentration caveats.","inputSchema":{"type":"object","title":"X402PreflightInput","required":["url"],"properties":{"url":{"type":"string","title":"Url","format":"uri","maxLength":2083,"minLength":1},"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Body","default":null},"method":{"enum":["GET","POST"],"type":"string","title":"Method","default":"POST"},"market_limit":{"type":"integer","title":"Market Limit","default":5,"maximum":10,"minimum":1},"market_query":{"anyOf":[{"type":"string","maxLength":200,"minLength":3},{"type":"null"}],"title":"Market Query","default":null}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"developer.x402-preflight\" → \"developer_x402-preflight\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":243,"tokensAfter":243},{"name":"document.diff","fixed":{"name":"document_diff","description":"Compare two texts and return structured line additions, removals, and a unified diff.","inputSchema":{"type":"object","title":"DiffInput","required":["before","after"],"properties":{"after":{"type":"string","title":"After","maxLength":500000},"before":{"type":"string","title":"Before","maxLength":500000},"context_lines":{"type":"integer","title":"Context Lines","default":3,"maximum":20,"minimum":0}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"document.diff\" → \"document_diff\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":124,"tokensAfter":124},{"name":"document.extract","fixed":{"name":"document_extract","description":"Extract clean text and metadata from supplied PDF, DOCX, HTML, Markdown, CSV, JSON, YAML, or plain-text documents.","inputSchema":{"type":"object","title":"DocumentInput","required":["filename","content_base64"],"properties":{"filename":{"type":"string","title":"Filename","maxLength":240},"content_base64":{"type":"string","title":"Content Base64","maxLength":7100000}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"document.extract\" → \"document_extract\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":115,"tokensAfter":115},{"name":"document.redact","fixed":{"name":"document_redact","description":"Deterministically detect and redact PII and personal data in supplied text with overlap-safe matching for emails, phone numbers, validated IPv4 and IPv6 addresses, Luhn-valid payment cards, valid-checksum IBANs, and structurally valid US Social Security numbers.","inputSchema":{"type":"object","title":"RedactInput","required":["text"],"properties":{"text":{"type":"string","title":"Text","maxLength":500000},"types":{"type":"array","items":{"enum":["email","phone","ipv4","ipv6","credit_card","ssn","iban"],"type":"string"},"title":"Types","maxItems":7,"minItems":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"document.redact\" → \"document_redact\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":170,"tokensAfter":170},{"name":"document.tables","fixed":{"name":"document_tables","description":"Extract structured table rows and columns from supplied HTML, DOCX, or CSV documents.","inputSchema":{"type":"object","title":"DocumentInput","required":["filename","content_base64"],"properties":{"filename":{"type":"string","title":"Filename","maxLength":240},"content_base64":{"type":"string","title":"Content Base64","maxLength":7100000}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"document.tables\" → \"document_tables\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":107,"tokensAfter":107},{"name":"research.crossref-doi-metadata","fixed":{"name":"research_crossref-doi-metadata","description":"Resolve one DOI into normalized open Crossref bibliographic, author, container, citation-count, license, identifier, and correction or retraction-link metadata without abstracts or full text.","inputSchema":{"type":"object","title":"CrossrefDoiMetadataInput","required":["doi"],"properties":{"doi":{"type":"string","title":"Doi","maxLength":255,"minLength":6}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"research.crossref-doi-metadata\" → \"research_crossref-doi-metadata\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":125,"tokensAfter":125},{"name":"research.crossref-work-search","fixed":{"name":"research_crossref-work-search","description":"Search open Crossref bibliographic metadata by title, author, DOI fragment, or citation and return bounded normalized publication, author, citation, license, and update metadata without abstracts or full text.","inputSchema":{"type":"object","title":"CrossrefWorkSearchInput","required":["query"],"properties":{"query":{"type":"string","title":"Query","maxLength":300,"minLength":2,"description":"Title, author, DOI fragment, or bibliographic citation to search"},"sort_by":{"enum":["relevance","newest","most_cited"],"type":"string","title":"Sort By","default":"relevance"},"work_type":{"anyOf":[{"enum":["book","book-chapter","dataset","dissertation","journal-article","monograph","posted-content","proceedings-article","report","standard"],"type":"string"},{"type":"null"}],"title":"Work Type","default":null},"max_results":{"type":"integer","title":"Max Results","default":10,"maximum":20,"minimum":1},"published_from":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Published From","default":null},"published_until":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Published Until","default":null}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"research.crossref-work-search\" → \"research_crossref-work-search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":343,"tokensAfter":343},{"name":"research.federal-register-search","fixed":{"name":"research_federal-register-search","description":"Search newest U.S. Federal Register document metadata by topic, agency, type, and publication date, returning bounded regulatory notices, rules, proposed rules, presidential documents, and links to FederalRegister.gov and official govinfo.gov PDFs.","inputSchema":{"type":"object","title":"FederalRegisterSearchInput","properties":{"query":{"anyOf":[{"type":"string","maxLength":200,"minLength":2},{"type":"null"}],"title":"Query","default":null,"examples":["artificial intelligence"],"description":"Optional full-text Federal Register search term"},"max_results":{"type":"integer","title":"Max Results","default":10,"maximum":25,"minimum":1,"description":"Maximum newest-first documents returned"},"agency_slugs":{"type":"array","items":{"type":"string"},"title":"Agency Slugs","examples":[["commerce-department"]],"maxItems":5,"description":"Optional exact FederalRegister.gov agency slugs, such as commerce-department"},"published_to":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Published To","default":null,"examples":["2026-12-31"],"description":"Optional inclusive publication-date upper bound"},"document_types":{"type":"array","items":{"enum":["RULE","PRORULE","NOTICE","PRESDOCU"],"type":"string"},"title":"Document Types","maxItems":4,"description":"Optional document types: RULE, PRORULE, NOTICE, or PRESDOCU"},"published_from":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Published From","default":null,"examples":["2026-01-01"],"description":"Optional inclusive publication-date lower bound"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"research.federal-register-search\" → \"research_federal-register-search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":450,"tokensAfter":450},{"name":"research.feed-normalize","fixed":{"name":"research_feed-normalize","description":"Fetch and normalize public RSS or Atom feeds into stable structured JSON entries for agents and research workflows.","inputSchema":{"type":"object","title":"FeedInput","required":["url"],"properties":{"url":{"type":"string","title":"Url","format":"uri","maxLength":2083,"minLength":1},"limit":{"type":"integer","title":"Limit","default":20,"maximum":100,"minimum":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"research.feed-normalize\" → \"research_feed-normalize\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":117,"tokensAfter":117},{"name":"research.lei-entity-search","fixed":{"name":"research_lei-entity-search","description":"Search the official GLEIF Global LEI Index by exact LEI or legal name and return ranked legal-entity identity, registration, mapped-identifier, and relationship-availability evidence.","inputSchema":{"type":"object","title":"LegalEntitySearchInput","properties":{"lei":{"anyOf":[{"type":"string","maxLength":20,"minLength":20},{"type":"null"}],"title":"Lei","default":null,"examples":["HWUPKR0MPOU8FGXBT394"],"description":"Exact 20-character Legal Entity Identifier (LEI)"},"legal_name":{"anyOf":[{"type":"string","maxLength":200,"minLength":2},{"type":"null"}],"title":"Legal Name","default":null,"examples":["Apple Inc."],"description":"Registered or commonly used legal entity name"},"max_results":{"type":"integer","title":"Max Results","default":3,"maximum":5,"minimum":1,"description":"Maximum candidates returned for a name search"},"country_code":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}],"title":"Country Code","default":null,"examples":["US"],"description":"Optional ISO 3166-1 alpha-2 legal-address country filter"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"research.lei-entity-search\" → \"research_lei-entity-search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":309,"tokensAfter":309},{"name":"research.news-aggregate","fixed":{"name":"research_news-aggregate","description":"Merge two to eight public RSS or Atom feeds into a filtered, deduplicated, time-ordered news stream with bounded partial-failure reporting.","inputSchema":{"type":"object","title":"NewsAggregateInput","required":["feeds"],"properties":{"feeds":{"type":"array","items":{"type":"string","format":"uri","maxLength":2083,"minLength":1},"title":"Feeds","maxItems":8,"minItems":2},"limit":{"type":"integer","title":"Limit","default":50,"maximum":100,"minimum":1},"keywords":{"type":"array","items":{"type":"string"},"title":"Keywords","maxItems":20},"since_hours":{"anyOf":[{"type":"integer","maximum":720,"minimum":1},{"type":"null"}],"title":"Since Hours","default":null},"deduplicate_by":{"enum":["url","title","url_or_title"],"type":"string","title":"Deduplicate By","default":"url_or_title"},"per_feed_limit":{"type":"integer","title":"Per Feed Limit","default":25,"maximum":50,"minimum":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"research.news-aggregate\" → \"research_news-aggregate\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":270,"tokensAfter":270},{"name":"research.ofac-entity-search","fixed":{"name":"research_ofac-entity-search","description":"Compare a business or organization name with separately named Entity records and aliases in the official OFAC SDN and Consolidated Non-SDN files, returning deterministic candidate scores, program tags, source hashes, and freshness evidence without issuing an allow or block verdict.","inputSchema":{"type":"object","title":"OfacEntitySearchInput","required":["entity_name"],"properties":{"entity_name":{"type":"string","title":"Entity Name","examples":["AEROCARIBBEAN AIRLINES"],"maxLength":200,"minLength":3,"description":"Organization or business name to compare with separately named OFAC Entity records"},"max_results":{"type":"integer","title":"Max Results","default":5,"maximum":10,"minimum":1,"description":"Maximum candidate records to return after deterministic ranking"},"minimum_score":{"type":"integer","title":"Minimum Score","default":85,"maximum":100,"minimum":70,"description":"Minimum API Acre similarity score to return; this is not OFAC's interactive-search score"},"include_weak_aliases":{"type":"boolean","title":"Include Weak Aliases","default":false,"description":"Include aliases that OFAC labels weak and warns may create false positives"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"research.ofac-entity-search\" → \"research_ofac-entity-search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":339,"tokensAfter":339},{"name":"research.organization-evidence","fixed":{"name":"research_organization-evidence","description":"Retrieve a current supplier and organization evidence report from official GLEIF legal-entity, USAspending prime-contract, SEC filing-activity, and OFAC Entity records, with bounded source-specific coverage for procurement research and no identity, linkage, risk, or compliance verdict.","inputSchema":{"type":"object","title":"OrganizationEvidenceInput","required":["legal_name"],"properties":{"legal_name":{"type":"string","title":"Legal Name","examples":["Palantir Technologies Inc."],"maxLength":200,"minLength":2,"description":"Organization legal or trading name used independently across official GLEIF, USAspending, SEC, and OFAC organization records"},"country_code":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}],"title":"Country Code","default":null,"examples":["US"],"description":"Optional ISO 3166-1 alpha-2 filter applied only to GLEIF candidates"},"sec_identifier":{"anyOf":[{"type":"string","maxLength":20,"minLength":1},{"type":"null"}],"title":"Sec Identifier","default":null,"examples":["PLTR"],"description":"Optional SEC ticker or CIK; when absent, the exact organization name is resolved against the SEC company directory"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"research.organization-evidence\" → \"research_organization-evidence\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":342,"tokensAfter":342},{"name":"research.sec-company-evidence","fixed":{"name":"research_sec-company-evidence","description":"Resolve an exact SEC company name, ticker, or CIK, then bundle recent filing signals, normalized issuer-reported XBRL facts, and Form 4 insider transactions into one bounded public-company evidence report with explicit section coverage and official-source provenance.","inputSchema":{"type":"object","title":"SecCompanyEvidenceInput","required":["identifier"],"properties":{"forms":{"type":"array","items":{"type":"string"},"title":"Forms","maxItems":30,"description":"Optional exact SEC form filters for the filing-activity section"},"identifier":{"type":"string","title":"Identifier","examples":["Apple Inc.","AAPL","0000320193"],"maxLength":160,"minLength":1,"description":"Exact SEC company name, SEC CIK, or U.S.-listed ticker symbol"},"max_filings":{"type":"integer","title":"Max Filings","default":50,"maximum":100,"minimum":1},"financial_metrics":{"type":"array","items":{"enum":["revenue","net_income","operating_income","total_assets","total_liabilities","stockholders_equity","cash_and_equivalents","operating_cash_flow","capital_expenditure","diluted_eps"],"type":"string"},"title":"Financial Metrics","maxItems":10,"minItems":1,"description":"Normalized issuer-reported financial metrics to include"},"financial_periods":{"type":"integer","title":"Financial Periods","default":4,"maximum":12,"minimum":1},"include_derivatives":{"type":"boolean","title":"Include Derivatives","default":true,"description":"Include derivative securities in the Form 4 section"},"max_insider_filings":{"type":"integer","title":"Max Insider Filings","default":10,"maximum":25,"minimum":1},"filing_lookback_days":{"type":"integer","title":"Filing Lookback Days","default":365,"maximum":3650,"minimum":30},"financial_period_type":{"enum":["annual","quarterly","both"],"type":"string","title":"Financial Period Type","default":"both"},"insider_lookback_days":{"type":"integer","title":"Insider Lookback Days","default":90,"maximum":730,"minimum":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"research.sec-company-evidence\" → \"research_sec-company-evidence\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":555,"tokensAfter":555},{"name":"research.sec-filing-signals","fixed":{"name":"research_sec-filing-signals","description":"Look up a public company by ticker or CIK, normalize recent SEC filings, and flag deterministic events such as late filings, amendments, auditor changes, non-reliance, control changes, or bankruptcy disclosures.","inputSchema":{"type":"object","title":"SecFilingSignalsInput","required":["identifier"],"properties":{"forms":{"type":"array","items":{"type":"string"},"title":"Forms","maxItems":30,"description":"Optional exact SEC form filters, such as 10-K, 10-Q, or 8-K"},"identifier":{"type":"string","title":"Identifier","examples":["AAPL","0000320193"],"maxLength":20,"minLength":1,"description":"SEC CIK or U.S.-listed ticker symbol"},"max_filings":{"type":"integer","title":"Max Filings","default":50,"maximum":200,"minimum":1},"lookback_days":{"type":"integer","title":"Lookback Days","default":365,"maximum":3650,"minimum":30}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"research.sec-filing-signals\" → \"research_sec-filing-signals\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":248,"tokensAfter":248},{"name":"research.sec-financial-facts","fixed":{"name":"research_sec-financial-facts","description":"Retrieve normalized, recent issuer-reported revenue, earnings, balance-sheet, cash-flow, and diluted-EPS facts from official SEC XBRL data.","inputSchema":{"type":"object","title":"SecFinancialFactsInput","required":["identifier"],"properties":{"metrics":{"type":"array","items":{"enum":["revenue","net_income","operating_income","total_assets","total_liabilities","stockholders_equity","cash_and_equivalents","operating_cash_flow","capital_expenditure","diluted_eps"],"type":"string"},"title":"Metrics","maxItems":10,"minItems":1,"description":"Normalized financial metrics to return"},"periods":{"type":"integer","title":"Periods","default":4,"maximum":12,"minimum":1,"description":"Observations per metric"},"identifier":{"type":"string","title":"Identifier","examples":["AAPL","0000320193"],"maxLength":20,"minLength":1,"description":"SEC CIK or U.S.-listed ticker symbol"},"period_type":{"enum":["annual","quarterly","both"],"type":"string","title":"Period Type","default":"both"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"research.sec-financial-facts\" → \"research_sec-financial-facts\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":290,"tokensAfter":290},{"name":"research.sec-insider-transactions","fixed":{"name":"research_sec-insider-transactions","description":"Retrieve recent SEC Form 4 officer, director, and 10% beneficial-owner trades for a ticker or CIK, including purchases, sales, awards, exercises, tax withholding, prices, holdings, 10b5-1 context, derivatives, and filing footnotes.","inputSchema":{"type":"object","title":"SecInsiderTransactionsInput","required":["identifier"],"properties":{"identifier":{"type":"string","title":"Identifier","examples":["AAPL","0000320193"],"maxLength":20,"minLength":1,"description":"SEC CIK or U.S.-listed ticker symbol"},"max_filings":{"type":"integer","title":"Max Filings","default":10,"maximum":25,"minimum":1},"lookback_days":{"type":"integer","title":"Lookback Days","default":90,"maximum":730,"minimum":1},"include_derivatives":{"type":"boolean","title":"Include Derivatives","default":true,"description":"Include option, restricted-stock-unit, and other derivative transactions"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"research.sec-insider-transactions\" → \"research_sec-insider-transactions\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":260,"tokensAfter":260},{"name":"research.us-contract-search","fixed":{"name":"research_us-contract-search","description":"Search public USAspending prime federal procurement awards by recipient company or organization name, UEI, or legacy DUNS, returning bounded contract values, agencies, performance dates, descriptions, official award links, and explicit interpretation limits.","inputSchema":{"type":"object","title":"UsContractSearchInput","required":["recipient_query"],"properties":{"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date","default":null,"examples":["2026-08-13"],"description":"Optional inclusive award-action upper bound; defaults to today"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date","default":null,"examples":["2024-01-01"],"description":"Optional inclusive award-action lower bound; defaults to five years before end_date"},"max_results":{"type":"integer","title":"Max Results","default":10,"maximum":25,"minimum":1,"description":"Maximum highest-award-amount prime contracts returned"},"recipient_query":{"type":"string","title":"Recipient Query","examples":["Palantir USG"],"maxLength":120,"minLength":2,"description":"Recipient organization name, UEI, or legacy DUNS to search across public USAspending prime-contract records"},"maximum_award_amount":{"anyOf":[{"type":"integer","maximum":1000000000000,"minimum":0},{"type":"null"}],"title":"Maximum Award Amount","default":null,"description":"Optional maximum current aggregate contract-award amount in whole USD"},"minimum_award_amount":{"anyOf":[{"type":"integer","maximum":1000000000000,"minimum":0},{"type":"null"}],"title":"Minimum Award Amount","default":null,"examples":[1000000],"description":"Optional minimum current aggregate contract-award amount in whole USD"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"research.us-contract-search\" → \"research_us-contract-search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":494,"tokensAfter":494},{"name":"research.wikidata-organization-search","fixed":{"name":"research_wikidata-organization-search","description":"Search CC0 Wikidata organization candidates and normalize public websites, inception dates, company identifiers, entity types, countries, industries, headquarters, parent, founder, owner, subsidiary, and product links with explicit non-verification caveats.","inputSchema":{"type":"object","title":"WikidataOrganizationSearchInput","required":["organization_name"],"properties":{"language":{"type":"string","title":"Language","default":"en","maxLength":12,"minLength":2},"max_results":{"type":"integer","title":"Max Results","default":5,"maximum":10,"minimum":1},"organization_name":{"type":"string","title":"Organization Name","maxLength":200,"minLength":2}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"research.wikidata-organization-search\" → \"research_wikidata-organization-search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":210,"tokensAfter":210},{"name":"web.accessibility-audit","fixed":{"name":"web_accessibility-audit","description":"Check a public page for deterministic HTML accessibility problems and return actionable WCAG-oriented findings.","inputSchema":{"type":"object","title":"UrlInput","required":["url"],"properties":{"url":{"type":"string","title":"Url","format":"uri","maxLength":2083,"minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"web.accessibility-audit\" → \"web_accessibility-audit\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":92,"tokensAfter":92},{"name":"web.business-due-diligence","fixed":{"name":"web_business-due-diligence","description":"Assess one public business website and domain using site quality, SEO, security, accessibility, performance, DNS, TLS, RDAP, and optional public GLEIF candidates; return technical evidence and explicit identity, ownership, compliance, and vendor-approval limitations.","inputSchema":{"type":"object","title":"BusinessDueDiligenceInput","required":["url"],"properties":{"url":{"type":"string","title":"Url","format":"uri","maxLength":2083,"minLength":1},"legal_name":{"anyOf":[{"type":"string","maxLength":200,"minLength":2},{"type":"null"}],"title":"Legal Name","default":null,"examples":["Apple Inc."],"description":"Optional registered company name to match against public GLEIF LEI records. A match does not prove that the company owns the supplied domain."},"country_code":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}],"title":"Country Code","default":null,"examples":["US"],"description":"Optional ISO 3166-1 alpha-2 legal-address country filter"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"web.business-due-diligence\" → \"web_business-due-diligence\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":287,"tokensAfter":287},{"name":"web.domain-intelligence","fixed":{"name":"web_domain-intelligence","description":"Investigate a domain using parallel DNS, TLS certificate, RDAP (the standards-based successor to WHOIS), DNSSEC, SPF, and DMARC signals with factual findings and source provenance.","inputSchema":{"type":"object","title":"UrlInput","required":["url"],"properties":{"url":{"type":"string","title":"Url","format":"uri","maxLength":2083,"minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"web.domain-intelligence\" → \"web_domain-intelligence\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":112,"tokensAfter":112},{"name":"web.email-auth","fixed":{"name":"web_email-auth","description":"Check a public domain's email authentication and anti-spoofing posture using MX, SPF, DMARC, caller-selected DKIM, MTA-STS, TLS-RPT, and BIMI DNS evidence.","inputSchema":{"type":"object","title":"EmailAuthInput","required":["domain"],"properties":{"domain":{"type":"string","title":"Domain","examples":["apiacre.com"],"maxLength":253,"minLength":3,"description":"Public DNS domain to inspect without a URL scheme or path"},"dkim_selectors":{"type":"array","items":{"type":"string"},"title":"Dkim Selectors","examples":[["protonmail"]],"maxItems":5,"description":"Optional known DKIM selectors to query; selectors cannot be discovered reliably from DNS alone"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"web.email-auth\" → \"web_email-auth\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":196,"tokensAfter":196},{"name":"web.extract","fixed":{"name":"web_extract","description":"Convert and extract a public website URL into clean Markdown or readable text plus bounded structured links, canonical and heading signals, Schema.org types, redirect evidence, content hashes, and response provenance for RAG, research, or agent context.","inputSchema":{"type":"object","title":"ExtractInput","required":["url"],"properties":{"url":{"type":"string","title":"Url","format":"uri","maxLength":2083,"minLength":1},"output":{"type":"string","title":"Output","default":"markdown","pattern":"^(markdown|text)$"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"web.extract\" → \"web_extract\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":156,"tokensAfter":156},{"name":"web.full-audit","fixed":{"name":"web_full-audit","description":"Run a comprehensive website audit combining SEO, security, accessibility, and performance scores with prioritized fixes.","inputSchema":{"type":"object","title":"UrlInput","required":["url"],"properties":{"url":{"type":"string","title":"Url","format":"uri","maxLength":2083,"minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"web.full-audit\" → \"web_full-audit\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":92,"tokensAfter":92},{"name":"web.links","fixed":{"name":"web_links","description":"Extract and classify links from one public page or safely crawl up to 10 same-origin pages into an agent-ready site map with page provenance, depth limits, and robots.txt enforcement.","inputSchema":{"type":"object","title":"LinksInput","required":["url"],"properties":{"url":{"type":"string","title":"Url","format":"uri","maxLength":2083,"minLength":1},"max_depth":{"type":"integer","title":"Max Depth","default":1,"maximum":3,"minimum":0},"max_pages":{"type":"integer","title":"Max Pages","default":1,"maximum":10,"minimum":1},"respect_robots":{"type":"boolean","title":"Respect Robots","default":true},"include_external":{"type":"boolean","title":"Include External","default":true}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"web.links\" → \"web_links\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":201,"tokensAfter":201},{"name":"web.metadata","fixed":{"name":"web_metadata","description":"Extract webpage metadata from one public URL: page title, meta description, canonical URL, headings, hreflang, icons, feeds, Open Graph, Twitter Cards, and JSON-LD Schema.org types, with redirect and response provenance plus privacy-safe, publisher-asserted Organization facts with field evidence.","inputSchema":{"type":"object","title":"UrlInput","required":["url"],"properties":{"url":{"type":"string","title":"Url","format":"uri","maxLength":2083,"minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"web.metadata\" → \"web_metadata\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":141,"tokensAfter":141},{"name":"web.performance-profile","fixed":{"name":"web_performance-profile","description":"Measure website response latency, payload size, compression, caching, and performance signals for a public URL.","inputSchema":{"type":"object","title":"UrlInput","required":["url"],"properties":{"url":{"type":"string","title":"Url","format":"uri","maxLength":2083,"minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"web.performance-profile\" → \"web_performance-profile\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":92,"tokensAfter":92},{"name":"web.robots-sitemap","fixed":{"name":"web_robots-sitemap","description":"Inspect a domain's robots.txt crawl rules and XML sitemap health, availability, and URL count.","inputSchema":{"type":"object","title":"UrlInput","required":["url"],"properties":{"url":{"type":"string","title":"Url","format":"uri","maxLength":2083,"minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"web.robots-sitemap\" → \"web_robots-sitemap\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":86,"tokensAfter":86},{"name":"web.security-audit","fixed":{"name":"web_security-audit","description":"Scan a public website for TLS and browser security header weaknesses and return a security score with fixes.","inputSchema":{"type":"object","title":"UrlInput","required":["url"],"properties":{"url":{"type":"string","title":"Url","format":"uri","maxLength":2083,"minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"web.security-audit\" → \"web_security-audit\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":90,"tokensAfter":90},{"name":"web.seo-audit","fixed":{"name":"web_seo-audit","description":"Audit one public URL for title, meta description, H1 count, image alt text, canonical, robots, language, Open Graph, Twitter cards, headings, hreflang, feeds, and Schema.org data; return a deterministic score and prioritized issue codes.","inputSchema":{"type":"object","title":"UrlInput","required":["url"],"properties":{"url":{"type":"string","title":"Url","format":"uri","maxLength":2083,"minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"web.seo-audit\" → \"web_seo-audit\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":125,"tokensAfter":125},{"name":"web.tech-fingerprint","fixed":{"name":"web_tech-fingerprint","description":"Identify frameworks, analytics, CDNs, servers, and other website technologies from public response signals.","inputSchema":{"type":"object","title":"UrlInput","required":["url"],"properties":{"url":{"type":"string","title":"Url","format":"uri","maxLength":2083,"minLength":1}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"web.tech-fingerprint\" → \"web_tech-fingerprint\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":90,"tokensAfter":90}],"toolsChanged":73,"tokensSaved":0,"todo":[{"tool":"commerce_product-price","params":["url"]},{"tool":"crypto_address-inspect","params":["address"]},{"tool":"crypto_typed-data-hash","params":["typed_data"]},{"tool":"data_clean","params":["content","trim_strings","empty_to_null","normalize_headers"]},{"tool":"data_contract","params":["content","max_errors"]},{"tool":"data_convert","params":["content"]},{"tool":"data_deduplicate","params":["keep","keys","content"]},{"tool":"data_json-repair","params":["content"]},{"tool":"data_profile","params":["content"]},{"tool":"data_schema","params":["content"]},{"tool":"data_schema-validate","params":["max_errors"]},{"tool":"data_schemaorg-normalize","params":["base_url","include_types"]},{"tool":"developer_code-change-review","params":["after","before","filename","language"]},{"tool":"developer_code-metrics","params":["code","language"]},{"tool":"developer_dependency-audit","params":["ecosystem","dependencies"]},{"tool":"developer_license-audit","params":["policy","dependencies"]},{"tool":"developer_openapi-audit","params":["format","document"]},{"tool":"developer_openapi-test-generate","params":["format","base_url","document","api_key_env","max_operations","timeout_seconds","bearer_token_env","include_optional"]},{"tool":"developer_secret-scan","params":["content"]},{"tool":"developer_sql-change-review","params":["sql","dialect"]},{"tool":"developer_structured-diff","params":["after","before","format"]},{"tool":"developer_x402-preflight","params":["url","body","method","market_limit","market_query"]},{"tool":"document_diff","params":["after","before","context_lines"]},{"tool":"document_extract","params":["filename","content_base64"]},{"tool":"document_redact","params":["text","types"]},{"tool":"document_tables","params":["filename","content_base64"]},{"tool":"research_crossref-doi-metadata","params":["doi"]},{"tool":"research_crossref-work-search","params":["sort_by","work_type","max_results","published_from","published_until"]},{"tool":"research_feed-normalize","params":["url","limit"]},{"tool":"research_news-aggregate","params":["feeds","limit","keywords","since_hours","deduplicate_by","per_feed_limit"]},{"tool":"research_sec-company-evidence","params":["max_filings","financial_periods","max_insider_filings","filing_lookback_days","financial_period_type","insider_lookback_days"]},{"tool":"research_sec-filing-signals","params":["max_filings","lookback_days"]},{"tool":"research_sec-financial-facts","params":["period_type"]},{"tool":"research_sec-insider-transactions","params":["max_filings","lookback_days"]},{"tool":"research_wikidata-organization-search","params":["language","max_results","organization_name"]},{"tool":"web_accessibility-audit","params":["url"]},{"tool":"web_business-due-diligence","params":["url"]},{"tool":"web_domain-intelligence","params":["url"]},{"tool":"web_extract","params":["url","output"]},{"tool":"web_full-audit","params":["url"]},{"tool":"web_links","params":["url","max_depth","max_pages","respect_robots","include_external"]},{"tool":"web_metadata","params":["url"]},{"tool":"web_performance-profile","params":["url"]},{"tool":"web_robots-sitemap","params":["url"]},{"tool":"web_security-audit","params":["url"]},{"tool":"web_seo-audit","params":["url"]},{"tool":"web_tech-fingerprint","params":["url"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}