evc-spark-mcp
This MCP server provides access to the Spark AI marketplace catalog, enabling AI assistants to search, discover, and retrieve AI workflow assets.
Search assets (
search_assets): Find agents, skills, prompts, prompt chains, MCP connectors, and bundles by keyword, asset type, or domain (e.g. 'development', 'marketing'), with up to 50 results.Get asset details (
get_asset): Retrieve full details of a specific asset by slug, including description, content, files, and ratings.Get asset content (
get_asset_content): Fetch the raw content of an asset (prompt text, skill instructions, agent config) — especially useful for prompts and skills.List popular assets (
list_popular): Browse the most popular assets ranked by download count, with optional type filtering and up to 20 results.List categories (
list_categories): Retrieve all available domains and AI tags to aid filtering and discovery.Access via resources: Use URI patterns like
spark://assets/{slug}for markdown content orspark://catalog/{type}to list assets by type.
No authentication required — run with npx evc-spark-mcp and use with Claude Code, Claude Desktop, Cursor, or any MCP-compatible client.
Spark MCP
MCP server for Spark — your AI toolbox for real work. Search and discover agents, skills, prompts, bundles, and MCP connectors.
Quick Start
npx evc-spark-mcpThat's it. No API key needed.
Related MCP server: Agent Index MCP Server
Setup
Claude Code
claude mcp add spark -- npx -y evc-spark-mcpClaude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"spark": {
"command": "npx",
"args": ["-y", "evc-spark-mcp"]
}
}
}Cursor
Add to Cursor MCP settings:
{
"mcpServers": {
"spark": {
"command": "npx",
"args": ["-y", "evc-spark-mcp"]
}
}
}OpenClaw
{
"mcpServers": {
"spark": {
"command": "npx",
"args": ["-y", "evc-spark-mcp"]
}
}
}ChatGPT (via MCP bridge)
Any MCP-compatible client works — just point it at npx evc-spark-mcp.
Tools
Tool | Description |
| Search the Spark catalog by query, type, and domain |
| Get full details of an asset by slug |
| Get raw prompt/skill content (best for prompts and skills) |
| List most popular assets by download count |
| List available domains and AI tags for filtering |
Resources
URI Pattern | Description |
| Asset content as markdown |
| Asset list by type (agent, skill, prompt, etc.) |
What's in the Catalog
Spark is a marketplace of AI workflow assets:
Agents — ready-to-use AI agent configurations
Skills — capabilities you can add to your agent (like this MCP server)
Prompts — tested prompt templates for specific tasks
Bundles — curated sets of tools that work together
MCP Connectors — integrations with external services
Find, share, and monetize AI tools — all in one place.
Configuration
Environment Variable | Default | Description |
|
| Spark API base URL |
|
| Spark website URL (for links) |
Development
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build
npm run build
# Test with MCP Inspector
npm run inspectPart of the Entire VC Toolbox
Product | What it does | Link |
Local Sync | Vault ↔ AI dev tools sync | |
Team Relay | Self-hosted collaboration server | |
Team Relay Plugin | Obsidian plugin for Team Relay | |
OpenClaw Skill | AI agent ↔ vault access | |
Spark MCP ← you are here | MCP server for Spark catalog | this repo |
Community
License
MIT — Copyright (c) 2026 Entire VC
Available Tools
5 toolsget_assetA
Get full details of a Spark asset by its slug. Returns description, content, files, ratings, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Asset slug (e.g. 'vb-seo-expert', 'vb-python-expert') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It correctly implies a read operation ('Get') and specifies return fields, but lacks details on authentication, rate limits, or any side effects. There is no contradiction, but behavioral traits beyond the obvious are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first states the core action, second lists returned data. It is concise, front-loaded, and every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with one parameter and no output schema, the description covers the main points. It could be improved by specifying that it returns a single asset object and clarifying 'more', but it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with a clear description for 'slug' including examples. The description adds no additional meaning beyond 'by its slug', so it meets the baseline but does not enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get full details of a Spark asset by its slug,' specifying the verb ('Get'), resource ('Spark asset'), and the means ('by its slug'). It lists what is returned ('description, content, files, ratings, and more'), and distinguishes itself from siblings like 'get_asset_content' (likely subset) and 'search_assets' (broader search).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have the slug, but does not explicitly state when to use this tool over alternatives. For example, there is no guidance on using 'get_asset' vs 'get_asset_content' (if only content is needed) or 'search_assets' (when slug is unknown). Context is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_asset_contentA
Get the raw content of a Spark asset (prompt text, skill instructions, agent config). Best for prompts and skills that have inline content.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Asset slug |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the core behavior (getting raw content) but does not address error handling, permissions, or response format. Adequate for a simple read operation but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action ('Get the raw content'), no redundant information. Efficient and direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description explains purpose and provides usage guidance. It could mention return format but is largely complete for its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'slug' described as 'Asset slug'. Description adds context about asset types but does not enhance parameter understanding beyond schema. Baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states verb 'Get', resource 'raw content of a Spark asset', and provides examples (prompt text, skill instructions, agent config). It implicitly distinguishes from sibling 'get_asset' which likely retrieves metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description says 'Best for prompts and skills that have inline content', which implies usage context but does not explicitly state when not to use it or name alternative tools. Lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesA
List available categories (domains and AI tags) in the Spark marketplace. Useful for filtering searches.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It discloses that the tool lists available categories, which implies a read-only operation. However, it does not specify behavior like pagination, ordering, or scope, which could be helpful but is not critical for a zero-parameter list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no unnecessary words. The description is front-loaded and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description is adequate. It explains the tool's purpose and usage context. However, it could mention if categories are global or user-specific, but for a simple list, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is 100%. The description adds value by explaining that categories include 'domains and AI tags', which supplements the empty schema. This is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists available categories (domains and AI tags) in the Spark marketplace, distinguishing it from sibling tools like search_assets. The verb 'list' and resource 'categories' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes it is useful for filtering searches, implying usage context. However, it does not explicitly state when not to use it or compare with alternatives, but the context is clear for a list tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_popularA
List the most popular Spark assets by download count. Great for discovering top-rated AI tools.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by asset type | |
| limit | No | Number of results (1-20, default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the purpose and a use case, but does not disclose aspects such as read-only nature, the need for authentication, rate limits, or what happens if no assets are found. The behavior is minimally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and the second sentence adds value by stating a use case. Every word is necessary and there is no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 optional parameters, no output schema), the description is adequate but lacks details about result ordering (e.g., descending by download count), output format, or how to use the type filter. It does not fully compensate for the absence of annotations, so completeness is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, describing both parameters (type and limit) with enums, defaults, and ranges. The description adds no additional meaning beyond the schema; it does not elaborate on how to use the parameters effectively. Thus, the score is at baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'popular Spark assets', with specific ordering by download count. It also notes the use case for discovering top-rated AI tools. This effectively distinguishes it from sibling tools like get_asset, get_asset_content, list_categories, and search_assets, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers implicit usage guidance by mentioning 'discovering top-rated AI tools', but it does not explicitly state when to use this tool versus alternatives, nor does it include when-not-to-use conditions. Sibling tools are present but not referenced in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_assetsA
Search the Spark AI assets marketplace. Returns matching agents, skills, prompts, MCP connectors, and bundles.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by asset type | |
| limit | No | Number of results (1-50, default 10) | |
| query | Yes | Search query (title, description) | |
| domain | No | Filter by domain slug (e.g. 'development', 'marketing') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses the return types but omits details like pagination, sorting, authorization requirements, or side effects, leaving gaps for an AI agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence, front-loaded with the action and result, with no unnecessary words. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description could be more complete by mentioning the structure of results (e.g., names, descriptions, IDs). However, the listed asset types and the presence of a query parameter provide adequate context for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented. The description adds marginal value by stating the return types, but does not enhance parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Search' and the resource 'Spark AI assets marketplace', and enumerates the returned asset types (agents, skills, etc.), distinguishing it from siblings like get_asset (single asset) or list_categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for general searching but does not explicitly state when to use this vs. siblings like get_asset or list_popular, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.0- First observed
get_asset - First observed
get_asset_content - First observed
list_categories - First observed
list_popular - First observed
search_assets
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: retrieving full asset details, getting raw content, listing categories, listing popular assets, and searching. No ambiguity.
All tools follow a consistent verb_noun pattern in snake_case (e.g., get_asset, list_categories, search_assets), ensuring predictability.
Five tools is well-scoped for a marketplace discovery server, covering search, listing, and detailed retrieval without unnecessary complexity.
The tool set covers core marketplace operations (search, details, categories, popular items) but lacks a tool for user reviews or direct asset download, though get_asset includes ratings and likely download links.
Maintenance
Related MCP Connectors
Search & install 6,500+ AI agent skills from skills-hub.ai inside any MCP tool.
AI agent registry — search, discover, register, and connect agents via MCP.
Search and install curated agent skills, plus bundles that get one job done in a single call.
A registry of 5,900+ peer-authored skills any MCP agent can search and load on demand.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to search and discover over 6,000 curated MCP connectors from the AgentHotspot marketplace using natural language. It provides a lightweight tool for builders to find and integrate diverse OSS connectors into their agentic workflows.14 PyPI3MIT
- FlicenseNot gradedqualityNot gradedmaintenanceEnables users to search and discover over 500 AI agent endpoints and x402 APIs directly from MCP-compatible clients like Claude and Cursor. It provides tools to query endpoints by keyword, category, or capability while offering access to detailed provider statistics.-
- AlicenseAqualityDmaintenanceConnects AI coding agents to the SkillFlow marketplace to search, discover, and retrieve detailed information about agent skills. It enables users to browse trending skills, categories, and publisher data directly through MCP-compatible environments.527 npm1MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to search, discover, and get recommendations from 20,000+ skills, tools, agents, rules, and MCP servers.515 npm1MIT