Search / io.github.entire-vc/spark
Spark - AI Assets Marketplace
R0· no sign-inSearch and fetch AI agents, skills, prompts and MCP connectors from the Spark marketplace.
v4.0.4 · active · repository · website · descriptor JSON · versions
Search / io.github.entire-vc/spark
R0· no sign-inSearch and fetch AI agents, skills, prompts and MCP connectors from the Spark marketplace.
v4.0.4 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"spark": {
"type": "http",
"url": "https://spark.entire.vc/mcp/",
"headers": {
"X-API-Key": "${X_API_KEY}"
}
}
}
}claude mcp add --transport http spark https://spark.entire.vc/mcp/ --header "X-API-Key: ${X_API_KEY}"[mcp_servers.spark]
url = "https://spark.entire.vc/mcp/"
env_http_headers = { "X-API-Key" = "X_API_KEY" }
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"spark": {
"type": "remote",
"url": "https://spark.entire.vc/mcp/",
"enabled": true,
"headers": {
"X-API-Key": "{env:X_API_KEY}"
}
}
}
}{
"mcpServers": {
"spark": {
"type": "http",
"url": "https://spark.entire.vc/mcp/",
"headers": {
"X-API-Key": "${X_API_KEY}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=spark&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vc3BhcmsuZW50aXJlLnZjL21jcC8iLCJoZWFkZXJzIjp7IlgtQVBJLUtleSI6IiR7WF9BUElfS0VZfSJ9fQ%3D%3D"
}{
"servers": {
"spark": {
"type": "http",
"url": "https://spark.entire.vc/mcp/",
"headers": {
"X-API-Key": "${X_API_KEY}"
}
}
}
}{
"mcpServers": {
"spark": {
"httpUrl": "https://spark.entire.vc/mcp/",
"headers": {
"X-API-Key": "${X_API_KEY}"
}
}
}
}extensions:
"spark":
enabled: true
name: "spark"
type: streamable_http
uri: "https://spark.entire.vc/mcp/"
headers:
"X-API-Key": "${X_API_KEY}"
timeout: 300
Placeholders to fill from your own secret store: ${X_API_KEY}. The registry never accepts secret values.
protocol.modernsupports 2026-07-28 (server/discover)protocol.statelessanswers without a sessionprotocol.transportstreamable HTTPprotocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every useauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations6 of 6 tools declare readOnlyHint or destructiveHinttools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: list_categories (destructiveHint); report_outcome (openWorldHint); list_popular (destructiveHint); …tools.token_costabout 1,973 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes18 tool changes in 30 daysstability.rug_pull12 tools kept their name but changed most of their description in 30 days; review before trusting themdeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packagelist_categorieschangeddescriptionmeaning changedList available categories (domains and AI tags) in the Spark marketplace. Returns the domain slugs that search_assets accepts as its `domain` filter, and the AI tags, as a taxonomy of the catalog. Example: list_categories()
List available categories (domains and AI tags) in the Spark marketplace. For when domain filter values or taxonomy are needed; search_assets returns assets rather than categories. Takes no parameters. Returns Markdown lists of AI tag names/slugs and domain names/slugs grouped by parent category; domain slugs are accepted by search_assets' domain filter. AI tags are not a search_assets filter. Public catalog lookup, no login or download recorded. For example, list_categories().
list_popularchangeddescription, input schemameaning changedList the most popular Spark assets by download count, optionally filtered by type. Takes no search text; it returns the current top of the catalog by downloads.
List the most popular Spark assets by download count, optionally filtered by type. For when browsing without a text query; search_assets finds text matches. Returns numbered summaries with outcomes, price, tags and URLs, or 'No assets found.' Downloads measure acquisitions, not successful applications or ratings. Public catalog lookup, no login or download recorded. For example, list_popular(type='skill', limit=5).
report_outcomechangeddescription, input schemaRecords the result of applying an asset that was fetched with get_asset_content: applied as is, applied with changes, broke, or not applicable. The report is tied to the application_id that get_asset_content returned; submitting the same application_id again updates the report. Reports made with an API key are counted; anonymous ones are stored as unverified. Fields `task`, `note`, `changed_what`, `failed_at`, `expected`, `got` are published on the asset's 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 shown on that page. 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').
Records the result of applying a fetched Spark asset: applied as is, changed, broke, or not applicable. For when the outcome is known and an application_id from get_asset_content is available, rather than a star rating. Mismatched user/session receipts are rejected; asset owners cannot report on their own assets. Submitting the same application_id updates the report. Authenticated reports count, but team reports do not affect rankings; anonymous reports are unverified. Returns a saved/updated confirmation, or a validation/receipt error. Fields `task`, `note`, `changed_what`, `failed_at`, `expected`, `got` are published on the asset's 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 shown on that page. Example: report_outcome(application_id='<receipt>', result='applied_as_is', task='add a rate limiter').
get_asset_contentchangeddescription, input schemameaning changedGet the raw content of a Spark asset (prompt text, skill instructions, agent config) — the actual text to apply, not just a description of it. Takes a slug. Unlike search_assets and get_asset, this counts as a download/acquisition event, and each call may return different content if the asset was updated. Paid assets require authentication: a Spark API key (X-API-Key header) or a Bearer token in the MCP client configuration. The response ends with an `application_id` line that identifies this fetch; report_outcome takes it as its `application_id` argument.
Get the raw content of a Spark asset (prompt text, skill instructions, agent config) — the actual text to apply, not just a description of it. For when a known asset's content is needed for application; get_asset provides details without acquisition. Each successful fetch records a download/acquisition; repeated calls create new receipts and content may change after updates. Free content needs no login. Paid content requires a Spark API key (X-API-Key) or Bearer token and prior purchase or ownership; this tool makes no purchase. Returns content and an application_id for report_outcome, or a not-found/access message. Content may be a source link rather than embedded text. For example, get_asset_content(slug='vb-seo-expert').
get_assetchangeddescription, input schemameaning changedGet full details of a Spark asset by its slug — description, metadata, outcome reports, bundled files and the URL on spark.entire.vc. Takes a slug, for example from a search result, a popular list or a link. Returns the full picture of the asset. It does not return the prompt/skill/agent text itself; get_asset_content returns that.
Get full details of a Spark asset by its slug — description, metadata, outcome reports, bundled files and the URL on spark.entire.vc. For when a known slug needs inspection before acquisition. Returns Markdown details, which may include embedded content; get_asset_content obtains the raw content and a receipt. Public catalog lookup, no login or download recorded. Missing or unavailable slugs return a not-found message. For example, get_asset(slug='vb-seo-expert').
search_assetschangeddescription, input schemameaning changedSearch the Spark AI assets marketplace for agents, skills, prompts, prompt chains, MCP connectors and bundles. Finds assets by text query, for when the slug is not known. Returns a numbered list of short summaries: title, type, downloads, outcome summary, price, tags and the asset's URL on spark.entire.vc.
Search the Spark AI assets marketplace for agents, skills, prompts, prompt chains, MCP connectors and bundles. For when a text query is available but the slug is not known; get_asset describes a known slug. Returns numbered summaries with type, downloads, outcomes, price, tags and URL, or a no-results message. No login required; no acquisition is made. Unmatched nonempty queries may 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).
list_categorieschangeddescriptionmeaning changedList available categories (domains and AI tags) in the Spark marketplace. Call this to discover valid values for search_assets' `domain` filter, or to browse the catalog's taxonomy before searching. Example: list_categories()
List available categories (domains and AI tags) in the Spark marketplace. Returns the domain slugs that search_assets accepts as its `domain` filter, and the AI tags, as a taxonomy of the catalog. Example: list_categories()
list_popularchangeddescriptionmeaning changedList the most popular Spark assets by download 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.
List the most popular Spark assets by download count, optionally filtered by type. Takes no search text; it returns the current top of the catalog by downloads.
report_outcomechangeddescription, input schemaReport what happened when you applied an asset you fetched with get_asset_content. Call it once you know: applied as is, applied with changes, broke, or not applicable. The next agent choosing this asset reads the outcomes in search results. Reports made with an API key count; 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` are shown to the asset's author. Do not include client data, private paths, keys, emails or URLs with tokens. 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').
Records the result of applying an asset that was fetched with get_asset_content: applied as is, applied with changes, broke, or not applicable. The report is tied to the application_id that get_asset_content returned; submitting the same application_id again updates the report. Reports made with an API key are counted; anonymous ones are stored as unverified. Fields `task`, `note`, `changed_what`, `failed_at`, `expected`, `got` are published on the asset's 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 shown on that page. 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').
get_asset_contentchangeddescriptionGet the raw content of a Spark asset (prompt text, skill instructions, agent config) — the actual text to apply, not just a description of it. Call 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, and each call may return different content if the asset was updated. For paid assets, authentication is required — add your Spark API key (X-API-Key header) or a Bearer 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.
Get the raw content of a Spark asset (prompt text, skill instructions, agent config) — the actual text to apply, not just a description of it. Takes a slug. Unlike search_assets and get_asset, this counts as a download/acquisition event, and each call may return different content if the asset was updated. Paid assets require authentication: a Spark API key (X-API-Key header) or a Bearer token in the MCP client configuration. The response ends with an `application_id` line that identifies this fetch; report_outcome takes it as its `application_id` argument.
Showing the latest 10. Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +website +reachable +uptime-100% +updated-14d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://spark.entire.vc/mcp/ streamable-http | none | yes | 100% | 980 ms | 2026-07-28 | 2026-10-20 |
get_assetread-only | Get full details of a Spark asset by its slug — description, metadata, outcome reports, bundled files and the URL on spark.entire.vc. For when a known slug needs inspection before acquisition. Returns Markdown details, which may include embedded content; get_asset_content obtains the raw content and a receipt. Public catalog lookup, no login or download recorded. Missing or unavailable slugs return a not-found message. For example, get_asset(slug='vb-seo-expert'). |
get_asset_content | Get the raw content of a Spark asset (prompt text, skill instructions, agent config) — the actual text to apply, not just a description of it. For when a known asset's content is needed for application; get_asset provides details without acquisition. Each successful fetch records a download/acquisition; repeated calls create new receipts and content may change after updates. Free content needs no login. Paid content requires a Spark API key (X-API-Key) or Bearer token and prior purchase or ownership; this tool makes no purchase. Returns content and an application_id for report_outcome, or a not-found/access message. Content may be a source link rather than embedded text. For example, get_asset_content(slug='vb-seo-expert'). |
list_categoriesread-only | List available categories (domains and AI tags) in the Spark marketplace. For when domain filter values or taxonomy are needed; search_assets returns assets rather than categories. Takes no parameters. Returns Markdown lists of AI tag names/slugs and domain names/slugs grouped by parent category; domain slugs are accepted by search_assets' domain filter. AI tags are not a search_assets filter. Public catalog lookup, no login or download recorded. For example, list_categories(). |
list_popularread-only | List the most popular Spark assets by download count, optionally filtered by type. For when browsing without a text query; search_assets finds text matches. Returns numbered summaries with outcomes, price, tags and URLs, or 'No assets found.' Downloads measure acquisitions, not successful applications or ratings. Public catalog lookup, no login or download recorded. For example, list_popular(type='skill', limit=5). |
report_outcome | Records the result of applying a fetched Spark asset: applied as is, changed, broke, or not applicable. For when the outcome is known and an application_id from get_asset_content is available, rather than a star rating. Mismatched user/session receipts are rejected; asset owners cannot report on their own assets. Submitting the same application_id updates the report. Authenticated reports count, but team reports do not affect rankings; anonymous reports are unverified. Returns a saved/updated confirmation, or a validation/receipt error. Fields `task`, `note`, `changed_what`, `failed_at`, `expected`, `got` are published on the asset's 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 shown on that page. Example: report_outcome(application_id='<receipt>', result='applied_as_is', task='add a rate limiter'). |
search_assetsread-only | Search the Spark AI assets marketplace for agents, skills, prompts, prompt chains, MCP connectors and bundles. For when a text query is available but the slug is not known; get_asset describes a known slug. Returns numbered summaries with type, downloads, outcomes, price, tags and URL, or a no-results message. No login required; no acquisition is made. Unmatched nonempty queries may 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). |
Schemas: list_tools.
{
"name": "io.github.entire-vc/spark",
"title": "Spark - AI Assets Marketplace",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://spark.entire.vc/mcp/",
"type": "streamable-http",
"headers": [
{
"name": "X-API-Key",
"isSecret": true,
"description": "Optional Spark API key (free, spark.entire.vc/profile, MCP Access tab). Without it the server works anonymously."
}
]
}
],
"version": "4.0.4",
"repository": {
"url": "https://github.com/entire-vc/evc-spark-mcp",
"source": "github"
},
"websiteUrl": "https://spark.entire.vc",
"description": "Search and fetch AI agents, skills, prompts and MCP connectors from the Spark marketplace."
}