{"server":{"name":"io.github.boriskendev/stormap","title":"Stormap","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://stormap.ai/mcp","type":"streamable-http"}],"version":"1.8.0","websiteUrl":"https://stormap.ai/developers","description":"Brainstorm scored idea maps, check npm/PyPI packages and vendors, find the right paid API."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-19T18:20:47.499134Z","publishedAt":"2026-10-19T18:20:47.499134Z","statusChangedAt":"2026-10-19T18:20:47.499134Z"},"dev.protogrid/connectability":{"class":"R0","autonomous":true,"human_steps":[],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://stormap.ai/mcp","transport":"streamable-http","templated":false,"headers":[],"auth":{"type":"none","location":null,"secret_name":null,"oauth":null},"protocol":{"supported_versions":["2025-06-18"],"stateless":false},"health":{"reachable":true,"uptime_30d":1,"latency_ms_p50":284,"consecutive_failures":0,"last_probe_at":"2026-10-19T18:50:40.568Z","last_ok_at":"2026-10-19T18:50:40.568Z"}}],"packages":[]},"dev.protogrid/tools":[{"name":"agentic_commerce_readiness","title":"Agentic commerce readiness (AI shopping agents)","description":"Is this store ready for ChatGPT shopping? Audit whether an online store is ready for AI shopping agents (ChatGPT shopping and Instant Checkout via ACP, Google AI Mode via UCP, Perplexity, Claude): AI bot access to product pages, Product structured data (price, currency, availability, GTIN/MPN, brand, ratings), return policy and shipping details, policy pages, product sitemap/feed, platform and Stripe detection, and agent protocol discovery files (/.well-known/ucp, /.well-known/acp.json, MCP server card). Returns a 0-100 score, readiness level and a prioritized fix list.","annotations":{"title":"Agentic commerce readiness (AI shopping agents)","readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"ai_visibility_score","title":"AI visibility score","description":"AI search / GEO / AEO audit: score how well AI assistants (ChatGPT, Claude, Perplexity, Gemini) can find, read and cite a public web page: 0-100 score, letter grade, pass/fail checks (AI answer-bot access in robots.txt, server-rendered content, title/meta, JSON-LD, canonical, llms.txt, sitemap) and a prioritized fix list. Blocking bulk training crawlers is treated as a policy choice and does not lower the score.","annotations":{"title":"AI visibility score","readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"brainstorm_ideas","title":"Brainstorm scored ideas for a topic","description":"Brainstorm ideas for a topic, goal, problem or question, each scored 1-10 on three criteria that fit the kind of brainstorm (for business ideas: market size, ease to start, profit potential; for problem solving: impact, feasibility, cost to implement) with an overall score, sorted best first. depth 2 also grows 3 sub-ideas under each of the top 3. Returns a map_url that opens the result as an interactive bubble map on stormap.ai, where a person can keep growing, re-scoring and sharing it. Scores are quick model estimates for sorting, not research.","annotations":{"title":"Brainstorm scored ideas for a topic","readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"check_ai_crawler_access","title":"Check AI crawler access","description":"Check whether AI crawlers (GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, Claude-User, PerplexityBot, Google-Extended, CCBot) may access a public URL according to its robots.txt, and score the page's machine readability (status, title, meta description, canonical, JSON-LD, server-rendered text). Returns a 0-100 score and a list of findings.","annotations":{"title":"Check AI crawler access","readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"check_before_paying","title":"Check before paying","description":"Should your agent pay this? Run before paying an x402 / pay-per-call endpoint, an unfamiliar seller or a wallet address. Returns a verdict (ok_to_pay, caution, dont_pay, no_payment_needed) with reasons, from: the endpoint's live payment terms (price, token, payment address), its listing in Coinbase's x402 marketplace (how many different wallets paid it in 30 days, listed payment address), whether the live payment address matches the listing, whether the token is real USDC, the price compared with typical prices for similar tools, and the seller domain's age, website and mail security. Read-only: never pays or signs anything.","annotations":{"title":"Check before paying","readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"company_changes","title":"Company change history (pricing, terms, privacy, subprocessors)","description":"Did they raise prices or change their terms? What changed on a company's pricing, terms of service, privacy policy and subprocessor pages, and when. Returns the change history (prices added/removed, free plan or trial added/removed, subprocessors added/removed, text added/removed) and the current prices. Stormap checks tracked pages about once a day; asking about a new company starts tracking it, so history builds from that day. Useful for competitor monitoring, vendor renewals and compliance.","annotations":{"title":"Company change history (pricing, terms, privacy, subprocessors)","readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"company_profile","title":"Company profile from a domain","description":"Company profile from a domain: a one-line summary, what the company does, founded, headquarters, industry, employee count, founders, parent company, public listing (ticker, exchange, SEC business address and industry), key pages (pricing, docs, contact, careers, status), social profiles, current prices with the date seen, tech stack, role contact emails, domain age and mail provider, and AI-readiness. From the company's own website plus Wikidata, SEC EDGAR, RDAP and DNS.","annotations":{"title":"Company profile from a domain","readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"email_domain_check","title":"Check an email address or domain","description":"Is this email address or domain real and legitimate? For lead research, signup / fraud screening, outreach list cleaning and vendor checks. Returns a verdict (looks_legitimate, risky, invalid) with reasons, plus: email syntax, role address (sales@, info@), free provider or disposable/throwaway service, whether the domain accepts mail (MX, null MX), mail provider (Google Workspace, Microsoft 365...), SPF and DMARC policy, whether the website loads, and domain age from RDAP. Does not contact the mail server, so it cannot confirm a specific mailbox exists.","annotations":{"title":"Check an email address or domain","readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"find_best_api","title":"Which paid API should I call?","description":"Describe what you need (\"web search\", \"weather forecast\", \"verify an email\", \"pdf to text\", \"people enrichment\") and get the top 1-5 pay-per-call (x402) APIs to use, from an hourly index of Coinbase's x402 marketplace (~38,000 endpoints). Ranked by evidence that other agents keep paying for them: calls per paying wallet over 30 days (so one-off sampling bots count little), how recently each was paid, relevance and price vs. typical. Top candidates are checked live (still asking for payment, at the listed price). Each result: endpoint URL, method, price, network, why it ranks there, and flags (mostly one-time payers, above typical price, not called recently, did not answer). Read-only; never pays.","annotations":{"title":"Which paid API should I call?","readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"generate_ai_robots_txt","title":"Generate robots.txt rules for AI crawlers","description":"Generate robots.txt rules for AI crawlers from a policy: \"open\" (allow all), \"balanced\" (allow search and user-triggered fetchers, block bulk training crawlers) or \"block\" (block all). Optional per-bot overrides, allowed/blocked paths, sitemap and crawl delay. No network access.","annotations":{"title":"Generate robots.txt rules for AI crawlers","readOnlyHint":true,"openWorldHint":false},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"generate_llms_txt","title":"Generate llms.txt","description":"Generate an llms.txt file (llmstxt.org format) for a public website. Uses the site name, summary and pages you pass; anything missing is filled from the homepage and sitemap.xml. Returns the file text plus notes on how to improve it.","annotations":{"title":"Generate llms.txt","readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"get_guide","title":"Read a Stormap guide","description":"Return one Stormap guide as clean Markdown with front matter (title, URL, dates, tags). Accepts a slug (\"how-to-install-hermes-desktop\") or a stormap.ai post URL.","annotations":{"title":"Read a Stormap guide","readOnlyHint":true,"openWorldHint":false},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"package_check","title":"Is this package safe to install?","description":"Before installing an npm or PyPI package: does it exist (AI-suggested names are sometimes made up, and attackers register them), has it been reported as malicious, which known vulnerabilities affect this version (with the fixed version), is it deprecated or yanked, how old is it, does it run code on install, how many downloads, and does its name imitate a popular package (typosquat). Verdict: ok_to_install, caution, dont_install or does_not_exist, with reasons. From OSV.dev, deps.dev, the npm registry and PyPI.","annotations":{"title":"Is this package safe to install?","readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"read_url","title":"Read a web page as Markdown","description":"Read a web page for an AI: fetch a public page and return its main content as clean, LLM-ready Markdown (navigation, footers, scripts and cookie banners removed) plus metadata: title, description, author, published/modified dates, canonical URL, language and word count. Reads server-rendered HTML (no JavaScript execution) and respects robots.txt.","annotations":{"title":"Read a web page as Markdown","readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"search_guides","title":"Search Stormap guides","description":"Search Stormap's practical guides on building with AI agents (OpenClaw, Hermes, Claude, coding agents, browser automation, RAG, MCP, AI news). Returns titles, URLs, Markdown URLs and short descriptions.","annotations":{"title":"Search Stormap guides","readOnlyHint":true,"openWorldHint":false},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"trading_halts","title":"Trading halts","description":"US stock trading halts right now and earlier today (Nasdaq, NYSE, NYSE American and other US markets), from Nasdaq's halt feed refreshed every minute. For each: symbol, market, the reason in plain English (news pending, volatility pause, additional information requested, regulatory concern...), halt time, and when quoting and trading resume, with a status (halted, resuming_soon, resumed). Filter by one or more tickers, or omit for all.","annotations":{"title":"Trading halts","readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"vendor_trust_profile","title":"Vendor security & privacy profile","description":"Vendor security review / third-party risk check: a first-pass security and privacy profile of a software vendor from its own public website, given a domain. Answers \"is this vendor SOC 2 certified?\" and \"do they train AI on our data?\": certifications it claims (SOC 2 Type I/II, ISO 27001/27701/42001, HIPAA, PCI DSS, FedRAMP…), whether it trains AI models on customer data (with the exact quote and page), subprocessor list, DPA, data residency, security features (SSO/SAML, SCIM, MFA, encryption, pen tests, bug bounty), security.txt contact, status page, links to trust center, privacy policy and terms, plus a 0-100 transparency score. Use for vendor risk assessments, procurement and security questionnaires. Certifications are vendor claims, not verified audits.","annotations":{"title":"Vendor security & privacy profile","readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"why_is_it_moving","title":"Why is this stock moving?","description":"For a US stock ticker: the likely catalysts behind a move, from primary sources, in seconds. Ranks the last 48 hours (adjustable) of SEC filings: 8-K events decoded into plain English (deals, earnings, new debt, unregistered share sales, delisting notices, management changes), the press-release headline from Exhibit 99.1, offerings and shelf registrations (dilution), insider open-market buys and sells from Form 4 (who, shares, price, value), 5%+ stakes (13D/13G); plus whether the stock is halted or was halted today and why. Each item has its time, a link to the filing and why it ranks where it does; filing bursts say which filing to read first. An explicit answer status (filing_found, news_halt_no_filing_yet, unexplained_by_primary_sources) and a coverage block (window searched, when each source was last checked, latest filing date) let an agent tell \"nothing filed\" apart from \"a source failed\". Facts only: no price data and no buy/sell opinions.","annotations":{"title":"Why is this stock moving?","readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"},{"name":"x402_market_report","title":"x402 marketplace report","description":"What paid AI-agent tools cost and who sells the most, from an hourly index of Coinbase's x402 marketplace (about 38,000 pay-per-call endpoints). For a category or a search phrase: the typical price that paying wallets actually accept (median, middle range, top 10%), a price distribution, the top sellers by distinct paying wallets in the last 30 days, new listings this week that are already being paid, and how concentrated the market is. Use it to price your own x402 endpoint, or to pick which paid tool to call.","annotations":{"title":"x402 marketplace report","readOnlyHint":true,"openWorldHint":false},"source":"probe","observed_at":"2026-10-19T18:50:40.568Z"}],"dev.protogrid/trust":{"score":80,"components":{"hygiene":80,"liveness":100,"freshness":100,"provenance":45},"drivers":["+website","+reachable","+uptime-100%","+updated-0d-ago","-no-repository"],"flags":["no-repository"],"blocked":false,"computed_at":"2026-10-19T22:06:09.911Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":69,"label":"needs work","components":{"auth":null,"hygiene":86,"protocol":75,"stability":25,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28","status":"warn","category":"protocol"},{"id":"protocol.stateless","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"protocol.transport","detail":"streamable HTTP","status":"pass","category":"protocol"},{"id":"protocol.list_ttl","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"auth.prm","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.as_metadata","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.cimd","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"descriptions are concise","status":"pass","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"19 of 19 tools declare readOnlyHint or destructiveHint","status":"pass","category":"hygiene"},{"id":"tools.directory_hints","detail":"no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: generate_llms_txt (destructiveHint, idempotentHint); vendor_trust_profile (destructiveHint, idempotentHint); company_changes (destructiveHint, idempotentHint); …","status":"fail","category":"hygiene"},{"id":"tools.token_cost","detail":"about 4,498 tokens to load every tool","status":"pass","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"35 tool changes in 30 days","status":"warn","category":"stability"},{"id":"stability.rug_pull","detail":"1 tools kept their name but changed most of their description in 30 days; review before trusting them","status":"fail","category":"stability"},{"id":"deps.known_vulns","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"no npm or PyPI package","status":"na","category":"dependencies"}],"drivers":["-tools.directory_hints","-stability.rug_pull","~protocol.modern","~stability.changes"],"flags":[],"tool_count":19,"token_estimate":4498,"tools_hash":"061c6917966f3bb8fad7347bb8250d8a","tools_changed_at":"2026-10-18T01:22:45.732Z","computed_at":"2026-10-19T22:14:06.215Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"io.github.boriskendev/stormap","aliases":[],"alias_count":0,"repository_key":null,"owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/io.github.boriskendev%2Fstormap/tools","arguments":{"name":"io.github.boriskendev/stormap"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/io.github.boriskendev%2Fstormap/connection?target=mcpServers","arguments":{"name":"io.github.boriskendev/stormap","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}