Skip to main content
Glama
PriceScout
by John-Eke11

PriceScout

PriceScout is an AI-powered chatbot that researches and tracks LLM inference pricing across providers. It scrapes provider pricing pages with Firecrawl, uses Claude to pull out structured pricing data, and stores everything in a local SQLite database so it can answer pricing questions and comparisons without re-scraping every time.

Providers currently covered:

How it works

  • server.py is an MCP server (built with FastMCP) exposing two tools: scrape_websites, which pulls pricing pages via Firecrawl and caches the results under scraped_content/, and extract_scraped_info, which looks up previously scraped content by provider name, URL, or domain.

  • client.py is the chat client. It connects to the pricing server plus an MCP SQLite server and an MCP filesystem server, routes each query through Claude with tool access, and — whenever a response contains pricing details — asks Claude to extract structured plan data and writes it into the pricing_plans table.

  • server_config.json wires up the three MCP servers (llm_inference, sqlite, filesystem) that the client connects to.

Related MCP server: mcp-price-scout

Setup

  1. Create a virtual environment with uv and sync dependencies: uv sync

  2. Add an Anthropic API key and a Firecrawl API key to .env (ANTHROPIC_API_KEY, FIRECRAWL_API_KEY)

  3. Run the client: uv run client.py

Usage

Once running, ask things like:

Type show data at any point to see recently stored pricing entries, or quit to exit.

Available Tools

2 tools
extract_scraped_infoB

Extract information about a scraped website.

Args: identifier: The provider name, full URL, or domain to look for

Returns: Formatted JSON string with the scraped information

Inputs: identifier (required). Returns: result

scrape_websitesC

Scrape multiple websites using Firecrawl and store their content.

Args: websites: Dictionary of provider_name -> URL mappings formats: List of formats to scrape ['markdown', 'html'] (default: both) api_key: Firecrawl API key (if None, expects environment variable)

Returns: List of provider names for successfully scraped websites

Inputs: websites (required), api_key, formats. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 2 tools

    Disambiguation4/5

    The two tools have distinct roles: one collects and stores scraped content, the other retrieves information by identifier. Some potential confusion exists because 'extract' could imply scraping, but the descriptions clarify the separation.

    Naming Consistency5/5

    Both tool names use lowercase snake_case with a clear verb-first pattern (extract_scraped_info, scrape_websites), making them consistent and descriptive.

    Tool Count3/5

    Only two tools is minimal for a service, but they cover a focused scrape-and-query workflow. It is slightly below the typical well-scoped range.

    Completeness4/5

    The workflow is functional: scrape_websites returns provider names and extract_scraped_info retrieves details. List/delete/update operations are missing but not essential for the apparent basic price-scout purpose.

    Maintenance

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables scraping LLM inference pricing from websites like Cloudrift, DeepInfra, Fireworks, and Groq, storing results in SQLite for cost comparison.
      -