{"name":"com.agishub/mcp","slug":"agishub-mcp","title":null,"description":"AgisHub — 34 pay-per-call tools for AI agents over x402 (USDC on Base). No API key, no signup.","url":"https://mcp.market/server/agishub-mcp","rating":null,"grade":"B","score":84,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":33,"stars":0,"forks":0,"downloads_week":110,"last_push_at":"2026-09-11T07:30:22.000Z","license":"MIT"},"uptime":{"percent":100,"checks":3,"ok":3,"last_checked_at":"2026-09-20T02:45:53.777Z","last_ok_at":"2026-09-20T02:45:53.777Z","latency_ms":6},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/agishub/agishub-mcp","website":"https://agishub.com","version":"3.0.0","remotes":[{"type":"streamable-http","url":"https://api.agishub.com/mcp"}],"packages":[{"registryType":"npm","identifier":"@agishub/mcp","version":"3.0.0","transport":{"type":"stdio"}}],"tools":[{"name":"browser","description":"Drive a headless browser: open a URL and run an ordered list of steps — click, type, press keys, wait, extract text and screenshot. For flows the plain scraper can't reach (logins, forms, multi-step pages).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Starting URL to open in a headless browser."},"steps":{"type":"array","items":{"type":"object","properties":{"action":{"type":"string","enum":["click","type","press","wait","extract_text","screenshot"],"description":"What to do."},"selector":{"type":"string","description":"CSS selector (for click/type/wait-for/extract_text)."},"text":{"type":"string","description":"Text to type (type), or key to press (press, e.g. 'Enter')."},"ms":{"type":"integer","minimum":0,"maximum":10000,"description":"Milliseconds to wait (wait, when no selector given)."}},"required":["action"],"additionalProperties":false},"maxItems":20,"description":"Ordered actions to perform after the page loads."},"screenshot":{"type":"boolean","description":"Also return a final full-page PNG screenshot (base64)."}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calculate","description":"Timezone-aware date arithmetic: add or subtract a duration to a datetime (days are calendar-based and DST-safe; hours and minutes are absolute), or compute the difference between two datetimes that may be in different zones.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"datetime":{"type":"string","description":"Base datetime: ISO 8601 or natural language."},"timezone":{"type":"string","description":"IANA timezone the base datetime is in."},"operation":{"type":"object","properties":{"type":{"type":"string","enum":["add","diff"],"description":"'add' to shift the datetime by a duration, or 'diff' to measure the gap between two datetimes."},"amount":{"type":"number","description":"For type 'add': how much to shift. Use a negative number to subtract."},"unit":{"type":"string","enum":["seconds","minutes","hours","days","weeks"],"description":"For type 'add': one of seconds, minutes, hours, days, weeks."},"to_datetime":{"type":"string","description":"For type 'diff': the second datetime (ISO 8601 or natural language)."},"to_timezone":{"type":"string","description":"For type 'diff': the IANA timezone of to_datetime (defaults to the base timezone)."}},"required":["type"],"additionalProperties":false,"description":"What to compute: { type:'add', amount, unit } to add/subtract a duration, or { type:'diff', to_datetime, to_timezone? } for the difference between two datetimes."}},"required":["datetime","timezone","operation"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"chat","description":"Ask a general-purpose LLM a question or give it an instruction, with an optional system prompt. No external API key required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"prompt":{"type":"string","minLength":1,"description":"The user's message or question for the assistant."},"system":{"type":"string","description":"Optional system instruction to steer the assistant's behaviour/persona."},"max_tokens":{"type":"integer","exclusiveMinimum":0,"maximum":2048,"description":"Maximum tokens to generate (default 512)."}},"required":["prompt"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"classify","description":"Classify a text into exactly one of the candidate labels you provide (e.g. sentiment, topic, intent).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"description":"The text to classify."},"labels":{"type":"array","items":{"type":"string","minLength":1},"minItems":2,"maxItems":20,"description":"Candidate labels to choose from, e.g. ['positive','negative','neutral']."}},"required":["text","labels"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"convert","description":"Convert a specific date/time from one IANA timezone to another (single or batch). Accepts ISO 8601 or natural language ('next Tuesday 3pm'). Returns the converted datetime with UTC offset, zone abbreviation and DST flag.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"datetime":{"type":"string","description":"ISO 8601 or natural language, e.g. \"2026-07-09T15:30\" or \"next Tuesday 3pm\"."},"from":{"type":"string","description":"Source IANA timezone."},"to":{"type":"string","description":"Target IANA timezone."}},"required":["datetime","from","to"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"convert_units","description":"Convert a value between units of the same category: length, mass, volume, speed, area, digital storage, time, and temperature (Celsius/Fahrenheit/Kelvin).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"value":{"type":"number","description":"The numeric value to convert."},"from":{"type":"string","description":"Source unit, e.g. 'km', 'mi', 'kg', 'lb', 'C', 'F', 'GB', 'm/s'."},"to":{"type":"string","description":"Target unit in the SAME category as 'from', e.g. 'mi', 'km', 'lb', 'F'."}},"required":["value","from","to"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"crawl","description":"Crawl multiple pages of a site, respecting link depth and domain limits. Returns async job_id; results include markdown or HTML per page. Use it to fetch and process many pages of content at once.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Root domain URL to crawl (e.g., https://example.com)."},"limit":{"type":"integer","exclusiveMinimum":0,"maximum":100,"description":"Maximum pages to crawl (default 100, max 100 per call). Returns 202 with job_id for async processing. For larger sites, issue several calls: each one is priced the same, so 1.000 pages cost ten calls."},"max_depth":{"type":"integer","exclusiveMinimum":0,"maximum":10,"description":"Maximum link depth from root (default 2, max 10). Depth 0 = root only, depth 1 = root + direct children."},"formats":{"type":"array","items":{"type":"string","enum":["markdown","html"]},"description":"Output formats per page (default ['markdown']). 'html' adds raw HTML."},"same_domain":{"type":"boolean","description":"Only crawl URLs on the same domain (default true). Subdomain links are excluded when false."}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"crawl_status","description":"Check the status of a crawl started with crawl, and retrieve its pages once finished. Free: the crawl itself was already paid for when it was queued.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"job_id":{"type":"string","description":"Job ID returned from POST /v1/crawl, used to check status and retrieve results."}},"required":["job_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"crypto_price","description":"Get live USD spot prices for one or more cryptocurrencies by ticker symbol (e.g. BTC, ETH, SOL).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbols":{"type":"string","description":"Comma-separated ticker symbols, e.g. 'BTC,ETH,SOL'. Prices are returned in USD."}},"required":["symbols"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"currency_convert","description":"Convert an amount between currencies using live daily exchange rates (ISO 4217 codes, e.g. USD, EUR, GBP, JPY). Returns the converted amount and the rate used.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"amount":{"type":"number","description":"The amount of money to convert."},"from":{"type":"string","minLength":3,"maxLength":3,"description":"Source currency ISO 4217 code, e.g. 'USD', 'EUR'."},"to":{"type":"string","minLength":3,"maxLength":3,"description":"Target currency ISO 4217 code, e.g. 'EUR', 'JPY'."}},"required":["amount","from","to"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"embed","description":"Turn text into a numeric embedding vector for semantic search, RAG and similarity. Multilingual.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"description":"Text to embed into a numeric vector for semantic search / RAG."}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"extract","description":"Fetch any public web page and return its main content as clean, token-efficient Markdown (title, description, headings, links, lists). Set render:true to execute JavaScript first for single-page apps or JS-heavy pages that would otherwise come back empty. Built for RAG and for agents that need to read the contents of a URL.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Full http/https URL of the page to extract."},"render":{"type":"boolean","description":"Render JavaScript with a headless browser before extracting (default false). Enable for SPAs / JS-heavy pages that return empty content otherwise. Slower."},"include_links":{"type":"boolean","description":"Keep hyperlinks in the markdown output (default true)."},"include_images":{"type":"boolean","description":"Keep images as markdown (default false)."},"max_chars":{"type":"integer","exclusiveMinimum":0,"description":"Truncate the markdown to at most this many characters (sets truncated:true)."}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"extract_entities","description":"Extract named entities from text — people, organizations, locations, dates and miscellaneous — returned as structured JSON.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"description":"The text to extract named entities from."}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"extract_structured","description":"AI-powered structured extraction: give a URL plus a natural-language prompt and/or a JSON Schema, and get back clean structured JSON (e.g. product name, price, rating). Renders the page in a headless browser first, so it works on SPAs.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Full http/https URL of the page to extract data from."},"prompt":{"type":"string","description":"Natural-language instruction of what to extract, e.g. 'the product name, price and rating'. Provide this and/or a schema."},"schema":{"type":"object","additionalProperties":{},"description":"Optional JSON Schema object describing the exact shape of the data to return. When given, the output is constrained to it."}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"generate","description":"Generate a QR code for any text or URL. Returns an inline SVG plus a data URI, with selectable size, quiet-zone margin and error-correction level.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"description":"Text or URL to encode in the QR code."},"size":{"type":"integer","exclusiveMinimum":0,"maximum":40,"description":"Pixel size of each QR module/cell in the SVG (default 6)."},"margin":{"type":"integer","minimum":0,"maximum":20,"description":"Quiet-zone margin around the code, in cells (default 4)."},"ec_level":{"type":"string","enum":["L","M","Q","H"],"description":"Error-correction level: L(7%), M(15%), Q(25%), H(30%). Default M."}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"holiday","description":"Check whether a given date is a public holiday in a country (identified by its ISO 3166-1 alpha-2 code), and return the holiday name if so. Backed by an authoritative public-holiday dataset.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"date":{"type":"string","description":"Date \"YYYY-MM-DD\"."},"country_code":{"type":"string","description":"ISO country code, e.g. \"US\", \"ES\", \"IN\"."}},"required":["date","country_code"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"links","description":"Return every hyperlink on a JavaScript-rendered page as a list of absolute URLs, with options to keep only visible links or only same-site links. Backed by a headless browser. Use it to map a site or seed a crawler.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Full http/https URL of the page to read links from."},"visible_only":{"type":"boolean","description":"Return only links visible in the rendered layout (default false)."},"exclude_external":{"type":"boolean","description":"Drop links pointing to other domains, keeping only same-site links (default false)."}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"map","description":"Discover all URLs reachable from a domain within a link depth limit. Returns a flat list of absolute URLs, respects robots.txt crawl delays. Use it to map a site's structure before crawling.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Root domain URL to map (e.g., https://example.com)."},"limit":{"type":"integer","exclusiveMinimum":0,"maximum":200,"description":"Maximum URLs to return (default 100, max 200 per call). Respects robots.txt crawl-delay."},"include_subdomains":{"type":"boolean","description":"Include URLs from subdomains (default false, same domain only)."},"search":{"type":"string","description":"Optional regex or plain string to filter results (case-insensitive)."}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"meeting_slots","description":"Find working-hour time slots that overlap across participants in different timezones for a meeting of a given duration, excluding weekends and (when a country is given per participant) that person's public holidays.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"participants":{"type":"array","items":{"type":"object","properties":{"timezone":{"type":"string","description":"Participant's IANA timezone, e.g. 'Europe/Madrid'."},"working_hours":{"type":"object","properties":{"start":{"type":"string","description":"Local start time \"HH:mm\" (24h), e.g. \"09:00\"."},"end":{"type":"string","description":"Local end time \"HH:mm\" (24h), e.g. \"17:00\"."}},"required":["start","end"],"additionalProperties":false,"description":"This participant's local working hours. Defaults to 09:00-17:00."},"country":{"type":"string","description":"ISO 3166-1 alpha-2 code (e.g. 'US', 'ES') to exclude that person's public holidays."}},"required":["timezone"],"additionalProperties":false},"minItems":1,"description":"The people to meet. Each participant is { timezone (IANA, required), working_hours? { start, end }, country? (ISO alpha-2) }."},"duration":{"type":"number","description":"Meeting duration in minutes."},"date_range":{"type":"object","properties":{"start":{"type":"string","description":"First date to search \"YYYY-MM-DD\"."},"end":{"type":"string","description":"Last date to search \"YYYY-MM-DD\"."}},"required":["start","end"],"additionalProperties":false,"description":"Inclusive date window to search, e.g. { \"start\":\"2026-07-13\", \"end\":\"2026-07-17\" }."}},"required":["participants","duration","date_range"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"now","description":"Get the current local time in an IANA timezone, including the UTC offset, zone abbreviation and whether DST is in effect. Use whenever you need to know what time it is 'now' somewhere.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"timezone":{"type":"string","description":"IANA timezone, e.g. 'Europe/Madrid', 'Asia/Kolkata'."}},"required":["timezone"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"offset","description":"Get the exact UTC offset of an IANA timezone at a given instant, DST-aware. Correctly handles fractional offsets such as India +05:30 and Nepal +05:45.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"timezone":{"type":"string","description":"IANA timezone."},"instant":{"type":"string","description":"ISO 8601 or natural language. Defaults to now."}},"required":["timezone"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"pdf","description":"Render a public URL or a raw HTML string into a PDF document, returned base64-encoded. Backed by a headless browser. Use for invoices, reports, receipts and any HTML-to-PDF need.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Public http/https URL to render to PDF. Provide this OR html."},"html":{"type":"string","description":"Raw HTML string to render to PDF. Provide this OR url."},"landscape":{"type":"boolean","description":"Landscape orientation (default false = portrait)."},"format":{"type":"string","enum":["A4","Letter","Legal","A3","A5","Tabloid"],"description":"Paper size (default A4)."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"request_feature","description":"Request a new service, an improvement to an existing tool, or report a bug to the AgisHub team. Use this whenever the capability you need doesn't exist yet, an existing tool falls short, or something is broken — describe what you want and the use case. Free. Your request is posted to the public AgisHub roadmap and the team is notified, so agents (and their humans) can ask for new functionality directly.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":120,"description":"A short, specific title for the request, e.g. 'Add a PDF-merge tool' or 'Support Solana in crypto.price'."},"details":{"type":"string","minLength":10,"maxLength":4000,"description":"What you want and why: the new service, the improvement to an existing one, or the bug. Be concrete about the use case so it can be prioritized."},"type":{"type":"string","enum":["new_service","improvement","bug","other"],"default":"other","description":"The kind of request: a brand-new service, an improvement to an existing one, a bug report, or other feedback."},"service":{"type":"string","maxLength":60,"description":"Optional: the existing service/tool this relates to, e.g. 'crypto.price' or 'web.extract'."},"contact":{"type":"string","maxLength":200,"description":"Optional: how the team can reach you for follow-up — an email, an X/GitHub handle, or a wallet address. Leave empty to stay anonymous."}},"required":["title","details"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"scrape","description":"Extract specific elements from a JavaScript-rendered page by CSS selector. Give a list of selectors (e.g. 'h1', '.price', 'a.product') and get back the text and attributes of every match. Backed by a headless browser, so it works on SPAs and JS-heavy pages.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Full http/https URL of the page to scrape."},"selectors":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":20,"description":"CSS selectors to extract, e.g. ['h1', 'a.product', '.price']. Returns the text and attributes of every match per selector."}},"required":["url","selectors"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"screenshot","description":"Capture a PNG screenshot of any public URL — full page or just the viewport, at a chosen size — returned base64-encoded. Backed by a headless browser.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Public http/https URL to capture."},"full_page":{"type":"boolean","description":"Capture the entire scrollable page instead of just the viewport (default false)."},"width":{"type":"integer","exclusiveMinimum":0,"description":"Viewport width in pixels (default 1280)."},"height":{"type":"integer","exclusiveMinimum":0,"description":"Viewport height in pixels (default 800)."}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"search","description":"Semantically search a memory collection (namespace) and return the most relevant stored entries. The retrieval half of RAG.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"namespace":{"type":"string","minLength":1,"description":"The namespace to search within (the same key used on upsert)."},"query":{"type":"string","minLength":1,"description":"Natural-language query; returns the most semantically similar stored entries."},"top_k":{"type":"integer","minimum":1,"maximum":20,"description":"How many results to return (default 5)."}},"required":["namespace","query"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"send","description":"Deliver a webhook (POST/PUT/PATCH a JSON payload to a URL) with guaranteed, retried delivery. Returns immediately with a job_id; AgisHub keeps retrying in the background until it succeeds.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Public http/https URL to deliver the webhook to."},"payload":{"description":"JSON body to POST to the target (object, array, string or number)."},"method":{"type":"string","enum":["POST","PUT","PATCH"],"description":"HTTP method (default POST)."},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional extra request headers, e.g. an auth token."}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"shorten","description":"Shorten a long URL into a compact api.agishub.com/s/<code> link that redirects to the original. Codes are stored for a year.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The long http/https URL to shorten."}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"snapshot","description":"Capture several representations of a page in one call — rendered HTML plus a PNG screenshot by default, and optionally Markdown and the accessibility tree. Backed by a headless browser. Saves round-trips when an agent needs both the content and a visual of a page.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Full http/https URL to capture."},"formats":{"type":"array","items":{"type":"string","enum":["html","screenshot","markdown","accessibilityTree"]},"description":"Which representations to return (default ['html','screenshot']). Add 'markdown' and/or 'accessibilityTree' as needed."},"full_page":{"type":"boolean","description":"Capture the full scrollable page in the screenshot instead of just the viewport (default false)."},"width":{"type":"integer","exclusiveMinimum":0,"description":"Viewport width in pixels (default 1280)."},"height":{"type":"integer","exclusiveMinimum":0,"description":"Viewport height in pixels (default 800)."}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"status","description":"Check the delivery status of a webhook job (queued / retrying / delivered / failed) by its job_id.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"job_id":{"type":"string","description":"The job_id returned by webhook_relay."}},"required":["job_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"store","description":"Store a piece of text in a persistent, searchable memory collection (namespace). Embedded and indexed for later semantic recall.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"namespace":{"type":"string","minLength":1,"description":"Your collection key — groups and isolates your memories. Treat it like a secret: anyone with it can read/write this collection."},"text":{"type":"string","minLength":1,"description":"The text/content to store and make searchable."},"id":{"type":"string","description":"Optional stable id to update an existing entry; auto-generated if omitted."}},"required":["namespace","text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"summarize","description":"Summarize a block of text into a short abstract, with an optional target length. No external API key required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"description":"The text to summarize."},"max_words":{"type":"integer","exclusiveMinimum":0,"maximum":400,"description":"Approximate maximum length of the summary, in words (default ~80)."}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"timezones","description":"List or search valid IANA timezone identifiers by city/region/country, and resolve a city/country name to its timezone(s). Use it to discover the exact identifier to pass to the other tools.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Case-insensitive substring filter."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"transcribe","description":"Transcribe an audio file (given by public URL) to text. Handles mp3, wav, m4a, ogg and more.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"audio_url":{"type":"string","format":"uri","description":"Public URL of an audio file (mp3, wav, m4a, ogg, ...) to transcribe to text."}},"required":["audio_url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":84,"grade":"B","scanned_at":"2026-09-20T00:26:31.637Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T00:26:31.646Z","components":{"code":{"score":25,"max":25,"notes":["1 source files scanned"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 2802ms"]},"poisoning":{"score":15,"max":15,"notes":["34 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 9 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","website matches verified namespace"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://api.agishub.com/mcp","reachable":true,"authRequired":false,"latencyMs":2802,"serverInfo":{"name":"agishub","version":"2.1.0"}}],"packages":[{"registryType":"npm","identifier":"@agishub/mcp","version":"3.0.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":17,"publishedAt":"2026-09-06T22:34:28.159Z","repositoryUrl":"git+https://github.com/agishub/agishub-mcp.git","weeklyDownloads":110}],"repo":{"found":true,"owner":"agishub","repo":"agishub-mcp","archived":false,"pushedAt":"2026-09-11T07:30:22Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/302189868?v=4","ownerCreatedAt":"2026-07-10T15:27:36Z","license":"MIT"},"icon":{"url":"https://agishub.com/icon.png?icon.1n8oao5g8u_my.png","source":"site","width":512,"height":512},"presence":{"stars":0,"forks":0,"downloadsWeek":110,"license":"MIT","lastPushAt":"2026-09-11T07:30:22.000Z","score":33}}}},"grade_history":[],"reviews":[]}