mcp-sales-intel
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-sales-intelAnalyse the mcp server development market and price my gig."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-sales-intel
A production-shaped MCP server that turns any marketplace into competitive intelligence.
Scout live Fiverr gigs, analyse pricing bands and competition, and get a data-anchored package-price ladder — all through natural language from Claude, Cursor, or any MCP client.
This is the reference implementation I use to demonstrate MCP server work: real external data, bounded inputs, structured errors, caching, and both stdio and streamable-HTTP transports. Zero secrets required.
Why this exists
Most Fiverr MCP gigs ship a demo server that returns hardcoded JSON. This one actually scrapes, actually parses, actually computes. It's the difference between "here's a server" and "here's a server that works on Monday."
Related MCP server: BizIntel MCP Server
Tools
Tool | What it does |
| Scrape live Fiverr search results → title, seller, rating, reviews, entry price, URL. Filter by price/rating. |
| Pricing bands, review distribution, and an explicit "open market" verdict from raw page markdown. |
| A Basic/Standard/Premium ladder anchored to observed medians — not vibes. |
Quick start
# stdio (works with Claude Desktop, Cursor, Hermes, mcporter)
uv run mcp-sales-intel
# streamable HTTP (for shared/remote deployments)
MCP_TRANSPORT=streamable-http uv run mcp-sales-intelWire it into an MCP client
claude_desktop_config.json / Cursor mcp.json:
{
"mcpServers": {
"sales-intel": {
"command": "uv",
"args": ["run", "--directory", "/abs/path/to/mcp-sales-intel", "mcp-sales-intel"]
}
}
}Requirements
Python 3.12+
mcpPython SDK 2.x (note:FastMCPwas renamedMCPServerin 2.0)firecrawlCLI onPATH— only for live scraping. The other two tools work without it.
Example
"Analyse the mcp server development market and price my gig."
The agent calls list_gigs, feeds the result to analyse_market, then
price_gig, and returns a real ladder with the reasoning attached.
Design notes
Bounded inputs. Query length and
max_resultsare clamped; bad ranges return a structured error instead of raising.30-minute cache per query, LRU-evicted, so repeated agent calls don't re-scrape and burn credits.
Honest failures. Missing CLI, timeouts, non-zero exits, and layout drift all return
{"error": ..., "gigs": []}rather than fabricating results.
License
MIT
Available Tools
3 toolsanalyse_marketAnalyse a market from scraped markdownA
Take raw Fiverr search-page markdown (as a string) and compute pricing bands, review-count distribution and an 'open market' verdict — i.e. how reachable a new seller is. Use for competitive analysis without re-scraping.
| Name | Required | Description | Default |
|---|---|---|---|
| markdown | Yes | ||
| open_market_review_threshold | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the whole burden; it usefully discloses that input must be Fiverr search-page markdown and that output is derived analysis ('how reachable a new seller is'), and that it does no scraping. It does not say how malformed/partial markdown is handled, whether the computation is deterministic, or how the threshold influences the verdict, leaving gaps for a tool with no annotation coverage.
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 filler, with the input requirement, the computed outputs, and the intended use all front-loaded. Every clause 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?
With an output schema present, return values need no explanation, and the description covers purpose, input expectations and usage context. The one meaningful omission is the review-threshold parameter's role in the verdict, but otherwise the definition is complete for a low-complexity, side-effect-free analysis 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 coverage is 0% and the description rescues one of two parameters by specifying the expected content and format of 'markdown' (raw scraped Fiverr search-page markdown as a string), which the bare 'string' schema does not convey. The second parameter, open_market_review_threshold, is entirely unexplained despite directly shaping the 'open market' verdict, so compensation is only partial.
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?
States a concrete verb and resource ('Take raw Fiverr search-page markdown ... compute pricing bands, review-count distribution and an open market verdict') and names its outputs, so an agent knows exactly what it produces. Sibling differentiation is only implied ('without re-scraping' hints it does not fetch, unlike list_gigs/price_gig) rather than stated, which keeps it short of a 5.
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?
'Use for competitive analysis without re-scraping' gives a clear context and a reason to prefer this over re-fetching, which is implied guidance. It never names the sibling tools as alternatives or states when not to use it (e.g. when you have no markdown yet), so usage remains inferred rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gigsList gigs in a categoryB
Scrape live Fiverr search results for a query and return gig cards with title, seller, rating, review count, entry price and URL. Use this to scout what sellers are actually offering and charging.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| max_price | No | ||
| min_price | No | ||
| min_rating | No | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden alone. It usefully discloses that results are scraped live (implying fresh, network-dependent, non-deterministic data) and what each card contains, but says nothing about rate limits, rate-limit/blocking risk, auth needs, or pagination behavior for a 5-parameter scrape.
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 tight sentences with the operation front-loaded and the returned fields listed compactly. No filler, though it spends words on return contents that the output schema already covers.
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?
An output schema exists, so return-value explanation is not strictly needed, and the call signature is simple. But with 0% parameter documentation and no annotations, the definition leaves an agent guessing about filter semantics and scrape behavior (limits, failures) it must handle.
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 0% across 5 parameters, so the description must compensate and it does not. It never explains the query syntax, the units/scope of max_price and min_price (entry price?), min_rating's scale, or what max_results does when more matches exist.
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?
States a specific verb+resource ('Scrape live Fiverr search results ... return gig cards') and enumerates the returned fields, so the operation is unambiguous. It does not differentiate itself from siblings like price_gig or analyse_market, whose scopes could plausibly overlap with 'scouting what sellers are charging'.
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?
'Use this to scout what sellers are actually offering and charging' hints at intent (market reconnaissance) but gives no when-to-use boundaries, no prerequisites, and no guidance on when to prefer price_gig or analyse_market over this search-based listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
price_gigRecommend a gig price ladderB
Given a set of gigs (or a market query), recommend a three-tier Basic/Standard/Premium package ladder with prices anchored to observed medians.
| Name | Required | Description | Default |
|---|---|---|---|
| gigs | No | ||
| query | No | ||
| floor_usd | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It does disclose a genuine behavioral trait beyond the schema — that prices are anchored to observed medians rather than invented — and the operation is implicitly a safe read. It omits any note on determinism, whether results are advisory only, or how unspecified/both-input cases are resolved.
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?
A single front-loaded sentence that states the output artifact and the pricing basis with no filler. Every clause carries 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?
The presence of an output schema means return structure need not be restated, which lowers the bar. Still, with three undocumented parameters, no annotations covering the safety profile, and unstated interaction between gigs/query, an agent lacks enough to call this confidently in edge cases.
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 0% and the description addresses only two of the three params loosely ('set of gigs', 'market query'). floor_usd, which materially changes the recommendation and defaults to 25, is never explained, nor is the precedence or exclusivity between gigs and query when both are supplied.
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 names a specific verb+resource: it recommends a three-tier Basic/Standard/Premium price ladder with medians as the anchor. That is far more informative than the bare tool name, though it never differentiates itself from siblings list_gigs and analyse_market, which plausibly feed it.
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 parenthetical 'a set of gigs (or a market query)' tells the agent the two input paths, which is implicit routing guidance toward list_gigs output or analyse_market output. It does not state when to prefer this tool over analyse_market, nor when not to call it.
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.
3 tool updates
v0.1.0- First observed
analyse_market - First observed
list_gigs - First observed
price_gig
TDQS
Scored across 3 tools
The three tools target clearly distinct actions: scraping live gigs, analyzing supplied market markdown, and generating a pricing ladder. Their descriptions make boundaries explicit, so an agent should not confuse list_gigs with analyse_market or price_gig.
All names follow a consistent snake_case verb_noun pattern: list_gigs, analyse_market, price_gig. The convention is predictable and readable throughout.
Three tools cover the core scrape-analyze-price workflow without redundancy, which is well-scoped for a niche sales-intel server. It is slightly lean, but each tool earns its place.
The surface covers scraping, analysis, and pricing, but there is a notable gap: analyse_market requires raw Fiverr search-page markdown while list_gigs only returns structured gig cards, leaving no direct tool path to obtain that input. Additional gaps include seller-level detail and historical tracking, though the main workflow is partially covered.
Maintenance
Related MCP Connectors
Extract structured pricing tiers and addons from any SaaS pricing page URL. Built for AI agents.
Extract and structure pricing pages from any SaaS site: plans, tiers, and features.
Web data tools: Threads, Yelp, YouTube/TikTok transcripts, Google Trends, Airbnb, Jumia prices.
Priced listings from Amazon, Shopify stores, the App Store, Google Play, Airbnb and Redfin
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to manage Fiverr seller accounts directly from the browser session. Supports gig management, order tracking, messaging, analytics, and profile updates without API keys.14MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to perform real-time business intelligence tasks including competitive analysis, website scoring, review analysis, and market research.MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to perform real-time market research including competitor analysis, pricing intelligence, and company overviews via live web search through Tavily API.-
- FlicenseBqualityCmaintenanceEnables AI-powered competitor pricing analysis by scraping LLM inference pricing websites via Firecrawl, storing the data in SQLite, and answering cost comparison queries through natural language.2-