Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Certificate changed, valid to 2027-02-04
Recently observed → Live
Live → Recently observed
Changed the definition of "get_asset", "get_asset_content", "list_categories" and 3 more
⟨15 unchanged words⟩ , bundled files and the URL on spark.entire.vc.TakesFor when a known slug,forneedsexampleinspectionfrombeforeaacquisition.searchReturnsresultMarkdown details,awhichpopularmaylistincludeorembedded
Certificate recorded, valid to 2026-12-06
Authorization not required
Changed the definition of "get_asset", "get_asset_content", "list_categories" and 3 more
⟨15 unchanged words⟩ , bundled files and the URL on spark.entire.vc.CallTakesthisaonceslug,youforhaveexampleafromsluga(fromsearchsearch_assetsresult,list_popular,
Changed the definition of "get_asset", "get_asset_content", "list_categories" and 3 more
GetAssetasset details
Get full details of a Spark asset by itsslug. Returnsslug — description, metadata, outcomereports, bundled files,and the URL on spark.entire.vc. Call this once you have a slug (from search_assets, list_popular, or a link) and want the full picture before deciding to use it. It does NOT return the actual prompt/skill/agent content to apply — use get_asset_content for that.
Unknown → Live
First tool surface recorded: 6 tools (server version 4.0.3)
https://spark.entire.vc/mcp (mcp_streamable_http) — from mcp_registry
Showing the latest 11 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
{"additionalProperties":false,"properties":{"slug":{"description":"AssetExact asset slug(e.g.from'vb-seo-expert'a search result or Spark URL,'vb-python-expert')e.g. 'vb-seo-expert'; not a URL or asset ID.","type":"string"}},"required": ⟨3 unchanged words⟩
⟨19 unchanged words⟩ apply, not just a description of it.TakesFor when aslug.knownUnlikeasset'ssearch_assetscontentandis needed for application; get_asset,thisprovides detailscountswithoutasacquisition. Each successful fetch records adownload/acquisitiondownload/acquisition;event, andrepeatedeachcallscallcreatemaynewreturnreceiptsdifferentand contentifmaythechangeassetafterwasupdates. Freeupdated.content needs no login. Paidassetsrequirecontentauthentication:requires a Spark API key (X-API-Keyheader)oraBearer tokenintheandMCPpriorclientpurchaseconfiguration.orTheownership;responsethisendstoolwithmakes no purchase. Returns content and an`application_id`application_idlineforthatreport_outcome, or a not-found/accessidentifiesmessage.thisContentfetch;mayreport_outcomebetakesaitsourceaslinkitsrather`application_id`thanargument.embedded text. For example, get_asset_content(slug='vb-seo-expert').
{"additionalProperties":false,"properties":{"slug":{"description":"AssetExact asset slug from a search result or Spark URL, e.g. 'vb-seo-expert'; not a URL or asset ID.","type":"string"}},"required": ⟨3 unchanged words⟩
List available categories (domains and AI tags) in the Spark marketplace.ReturnsForthewhen domainslugsfilterthatvalues or taxonomy are needed; search_assetsacceptsreturns assetsasratheritsthan`domain`categories.filter,Takes no parameters. Returns Markdown lists of AI tag names/slugs andthedomain names/slugs grouped by parent category; domain slugs are accepted by search_assets' domain filter. AI tags,asare not a search_assetstaxonomyfilter.ofPublicthecatalogcatalog.lookup, no login or download recorded.Example:For example, list_categories().
⟨6 unchanged words⟩ by download count, optionally filtered by type.TakesFornowhensearchbrowsingtext;withoutitareturnstextthequery;currentsearch_assetstopfindsoftextthematches. Returns numbered summaries with outcomes, price, tags and URLs, or 'No assets found.' Downloads measure acquisitions, not successful applications or ratings. Public catalogbylookup,downloads.no login or download recorded. For example, list_popular(type='skill', limit=5).
⟨3 unchanged words⟩ "limit":{"default":10,"description":"NumberMaximumofresults;resultsclamped(to 1-20, default10)10.","type":"integer"},"type":{ ⟨4 unchanged words⟩ null"}],"default":null,"description":"Filter byOptional asset type:(agent, skill, prompt, prompt_chain, mcp_connector,bundle)or bundle; omitted means all types."}},"type":"object"}
Records the result of applyingan asset that wasa fetchedwithSparkget_asset_contentasset: applied as is,applied with changeschanged, broke, or not applicable.TheForreportwhen the outcome istiedknowntoandthean application_idthatfrom get_asset_contentreturned;issubmittingavailable, rather than a star rating. Mismatched user/session receipts are rejected; asset owners cannot report on their own assets. Submitting the same application_idagainupdates the report.ReportsAuthenticatedmadereportswithcount,anbutAPIteamkeyreportsaredocounted;not affect rankings; anonymousonesreports arestoredunverified.asReturnsunverified.a saved/updated confirmation, or a validation/receipt error. Fields `task`, `note`, `changed_what`, `failed_at`, `expected` ⟨30 unchanged words⟩ never shown on that page. Example: report_outcome(application_id='<from get_asset_content>'application_id='<receipt>',result='applied_with_changes'result='applied_as_is', task='add a ratelimiter to the API', changed_what='swapped the fixed window for a token bucket'limiter').
⟨21 unchanged words⟩ null"}],"default":null,"description":"Required for applied_with_changes: whatyouchanged (≤ 200 characters).; ignored for other results."},"expected":{"anyOf":[{"type ⟨2 unchanged words⟩ null"}],"default":null,"description":"Required for not_applicable: whatyou were lookingwasforsought (≤ 200 characters).; ignored for other results."},"failed_at":{"anyOf":[{"type ⟨2 unchanged words⟩ null"}],"default":null,"description":"Required for broke:thefailed step, tool or commandthat failed,andtheerror class (≤ 200 characters).; ignored for other results."},"got":{"anyOf":[{"type ⟨2 unchanged words⟩
⟨9 unchanged words⟩ prompts, prompt chains, MCP connectors and bundles.FindsForassetswhenbya text query,foriswhenavailable but the slug is notknown.known;Returnsget_asset describes anumbered listknownofslug.shortReturns numbered summaries:title,with type, downloads,outcome summaryoutcomes, price,tags and URL, or a no-results message. No login required; no acquisition is made.theUnmatchedasset'snonemptyURLqueriesonmayspark.entire.vc.be recorded as unmet catalog needs. A nonempty job ranks text matches by task fit, even with a non-combo sort. For example, search_assets(query='rate limiting', job='add a rate limiter', limit=5).
⟨8 unchanged words⟩ null"}],"default":null,"description":"Filter byOptional domain slug(e.g.from'development'list_categories,'marketing')e.g. 'development'; omitted means all domains."},"job":{"anyOf":[{"type ⟨2 unchanged words⟩ null"}],"default":null,"description":"Job/task the agent is trying toOptionalaccomplish.task,Enablese.g.job-based'reviewrelevancePythonrankingcode';(e.g.a'reviewnonemptyPythonvalue
⟨19 unchanged words⟩ apply, not just a description of it.Call this once you've pickedTakes aslugslug.(viaUnlikesearch_assets/get_asset)search_assets andare ready to use the asset. Unlike search_assets/get_assetget_asset, this counts as a download/acquisition event, and each call may return different content if the asset was updated.For paidPaid assets,authentication is required —requireaddauthentication:youra Spark API key (X-API-Key header) or aBearer tokentoinyourthe MCP client configuration. The response ends with an`application_id`;pass`application_id`itlinetothat identifiesreport_outcomethisoncefetch;youreport_outcomeknowtakeswhetherittheasassetitsworked.`application_id` argument.
List available categories (domains and AI tags) in the Spark marketplace.CallReturnsthisthetodomaindiscoverslugsvalidthatvaluessearch_assetsforacceptssearch_assets'as its `domain` filter,orandtothebrowseAIthetags,catalog'sas a taxonomybeforeofsearching.the catalog. Example: list_categories()
⟨6 unchanged words⟩ by download count, optionally filtered by type.Use this to browse what's trending when youTakesdon'tnohavesearchatext;specificitsearchreturnstermthe— forcurrentatoptargetedoflookup,theusecatalogsearch_assetsbyinstead.downloads.
Report whatRecordshappenedthewhenresultyouofappliedapplying an assetyouthat was fetched withget_asset_content. Call it once you knowget_asset_content: applied as is, applied with changes, broke, or not applicable. Thenextreportagentischoosingtiedthistoassetthereadsapplication_id that get_asset_content returned; submitting theoutcomessameinapplication_idsearchagainresults.updates the report. Reports made with an API keycount;are counted; anonymous ones are stored as unverified.Calling again with the same application_id updates your report.Fields `task`, `note`, `changed_what`, `failed_at`, `expected`, `got` areshownpublishedtoon the asset'sauthor.public page on spark.entire.vc, visible to any visitor. Do not include client data, private paths, keys, emails or URLs with tokens. Your identity is never showntoonthethatauthor.page. Example: report_outcome(application_id='<from get_asset_content>', result='applied_with_changes', task='add ⟨15 unchanged words⟩
⟨3 unchanged words⟩ :{"application_id":{"description":"The application_idprintedat the end ofget_asset_content.the get_asset_content response.","type":"string"},"changed_what":{ ⟨183 unchanged words⟩
⟨9 unchanged words⟩ prompts, prompt chains, MCP connectors and bundles.Call this first when you needFindstoassetsfindbyantextassetquery, fora task and don't already havewhenitsthe slug— use get_asset/get_asset_content once youisknownottheknown.slug.Returns a numberedlist of shortsummaries;summaries:usetitle,get_assettype,fordownloads,fulloutcomedetailssummary, price, tags andontheaasset'sspecificURLresult.on spark.entire.vc.
⟨42 unchanged words⟩ code', 'generate marketing copy', 'analyze data').Recommended for agent use."},"limit":{"default":10,"description ⟨27 unchanged words⟩ rating. 'combo' = combined quality+ratings+agent outcomes score (default, recommended).","type":"string"},"type" ⟨22 unchanged words⟩
before
—after
{"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}GetAssetassetContentcontent
⟨8 unchanged words⟩ (prompt text, skill instructions, agent config).— the actual text to apply, not just a description of it.ThisCall this once you've picked a slug (via search_assets/get_asset) and are ready to use the asset. Unlike search_assets/get_asset, this counts as a download/acquisition event,event.and each call may return different content if the asset was updated. For paidassets, authentication is required —add your Spark API key (X-API-Key header) or aBearer token to your MCP client configuration. The response ends with an `application_id`; pass it to report_outcome once you know whether the asset worked.
before
—after
{"destructiveHint":false,"idempotentHint":false,"readOnlyHint":false}ListCategoriescategories
List available categories (domains and AI tags) in the Spark marketplace.UsefulCallforthisfilteringtosearchesdiscoverbyvaliddomainvalues for search_assets' `domain` filter, orAIto browsemodelthecompatibility.catalog's taxonomy before searching. Example: list_categories()
before
—after
{"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}ListPopularpopular assets
List the most popular Spark assets by downloadcount.count, optionally filtered by type. Use this to browse what's trending when you don't have a specific search term — for a targeted lookup, use search_assets instead.
before
—after
{"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}ReportOutcomeoutcome
⟨87 unchanged words⟩ Your identity is never shown to the author. Example: report_outcome(application_id='<from get_asset_content>', result='applied_with_changes', task='add a rate limiter to the API', changed_what='swapped the fixed window for a token bucket').
before
—after
{"destructiveHint":false,"idempotentHint":true,"readOnlyHint":false}SearchAssetsassets
Search the Spark AI assetsmarketplace.marketplace for agents, skills, prompts, prompt chains, MCP connectors and bundles. Call this first when you need to find an asset for a task and don't already have its slug — use get_asset/get_asset_content once you know the slug. Returns a numbered list of short summaries; use get_asset for full details on a specific result.
before
—after
{"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}