Koskamo

L50 Data Tools MCP

An MCP server aggregating multiple L50 data APIs including UK company data, public tenders, property records, vehicle MOT history, and marketplace data from eBay, Vinted, Poshmark, Reverb, and Shopify. It enables AI agents to query these datasets with a pay-per-call model using x402 in USDC on Base, requiring no account or API key.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

L50 Data Tools MCP logo, by L50Community listingStreamable HTTPNo sign-inEndpoint checked 2026-11-06Published by L50
You need:No account or API key
MCP endpoint (Streamable HTTP)
https://api.l50automation.com/mcp
Vendor documentation

What its tools do

15 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

15 of 15 have a description · 15 of 15 declare behavior hints · 6 of 15 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Query UK Companies House data for newly registered companies or director changes
  • Retrieve UK public sector tenders and contract awards filtered by region and value
  • Get UK property sold prices, EPC ratings, and crime statistics by postcode
  • Fetch live marketplace listings and profit estimates from eBay, Vinted, and Shopify

Source and maintenance

Community listingRegistry 1.2.1

Protocol and capabilities

Server
l50-data-tools 1.2.0
MCP protocol negotiated in check
2025-11-25
Tools
15 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Every L50 pay-per-call data API in one place, with one MCP server: UK company data, UK public tenders, UK property data, UK vehicle MOT history, marketplace data (eBay, Vinted, Poshmark, Reverb, Shopify) and YouTube transcripts. Pick a focused API, or connect once and get them all. Paid per call with x402 in USDC on Base. No account or API key. Paid tools cost a few cents each in USDC on Base via x402; bad input is refused for free and failed calls are not charged. companies_changes_feed_sample is free.

Tools

15 advertised

epc_areas — epc areas
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Energy-rating (EPC) statistics for one council in England or Wales: share of homes or commercial buildings rated A to G, per postcode district. Area-level only, no addresses. Costs $0.05 per call, paid in USDC on Base with x402.

epc_areas input schema
{
  "type": "object",
  "required": [
    "council"
  ],
  "properties": {
    "months": {
      "type": "integer",
      "maximum": 60,
      "minimum": 1
    },
    "council": {
      "type": "string",
      "description": "Council name, e.g. Bristol, Manchester, Cornwall"
    },
    "groupBy": {
      "enum": [
        "postcode_district",
        "council",
        "constituency"
      ],
      "type": "string"
    },
    "buildingType": {
      "enum": [
        "domestic",
        "non_domestic"
      ],
      "type": "string"
    },
    "minCertificates": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1
    }
  }
}
epc_areas annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
ebay_market — ebay market
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Live eBay market for one keyword on 8 eBay sites: price range with postage, seller concentration, China share, cheapest listings, optional profit from your cost. Costs $0.02 per call, paid in USDC on Base with x402.

ebay_market input schema
{
  "type": "object",
  "required": [
    "keyword"
  ],
  "properties": {
    "cost": {
      "type": "number",
      "description": "Your cost per item, adds profit and margin"
    },
    "keyword": {
      "type": "string"
    },
    "marketplace": {
      "enum": [
        "EBAY_GB",
        "EBAY_US",
        "EBAY_DE",
        "EBAY_FR",
        "EBAY_IT",
        "EBAY_ES",
        "EBAY_AU",
        "EBAY_CA"
      ],
      "type": "string"
    }
  }
}
ebay_market annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
companies_new — companies new
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Up to 10 newly registered UK companies (Companies House) filtered by town, postcode or industry, with director, website check and email details. Costs $0.10 per call, paid in USDC on Base with x402.

companies_new input schema
{
  "type": "object",
  "properties": {
    "max": {
      "type": "integer",
      "maximum": 10,
      "minimum": 1
    },
    "days": {
      "type": "integer",
      "maximum": 30,
      "minimum": 1
    },
    "industry": {
      "enum": [
        "trades",
        "retail",
        "hospitality",
        "beauty",
        "professional",
        "health",
        "fitness",
        "ecommerce",
        "automotive"
      ],
      "type": "string"
    },
    "locality": {
      "type": "string"
    },
    "postcode": {
      "type": "string"
    }
  }
}
companies_new annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
companies_overdue — companies overdue
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Up to 10 UK companies with overdue (or soon-due) Companies House accounts, with director and email details. Leads for accountants. Costs $0.20 per call, paid in USDC on Base with x402.

companies_overdue input schema
{
  "type": "object",
  "properties": {
    "max": {
      "type": "integer",
      "maximum": 10,
      "minimum": 1
    },
    "mode": {
      "enum": [
        "overdue",
        "due_soon",
        "both"
      ],
      "type": "string"
    },
    "industry": {
      "enum": [
        "trades",
        "retail",
        "hospitality",
        "beauty",
        "professional",
        "health",
        "fitness",
        "ecommerce",
        "automotive"
      ],
      "type": "string"
    },
    "locality": {
      "type": "string"
    },
    "dueWithinDays": {
      "type": "integer",
      "maximum": 180,
      "minimum": 1
    }
  }
}
companies_overdue annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
companies_changes — companies changes
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Director appointments, resignations and owner (PSC) changes at up to 20 UK companies since a date, from Companies House. Costs $0.05 per call, paid in USDC on Base with x402.

companies_changes input schema
{
  "type": "object",
  "required": [
    "numbers"
  ],
  "properties": {
    "days": {
      "type": "integer",
      "maximum": 3650,
      "minimum": 1
    },
    "since": {
      "type": "string",
      "format": "date"
    },
    "numbers": {
      "type": "string",
      "maxItems": 20,
      "description": "Comma-separated company numbers (max 20)"
    }
  }
}
companies_changes annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
companies_changes_feed — companies changes feed
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

New UK director appointments, resignations and owner (PSC) changes from the last 24 hours across all companies, filtered by town, postcode, industry and change type. Up to 100 rows, refreshed daily from Companies House. Costs $0.10 per call, paid in USDC on Base with x402.

companies_changes_feed input schema
{
  "type": "object",
  "properties": {
    "max": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1
    },
    "types": {
      "type": "string",
      "description": "Comma-separated: officer_appointed, officer_resigned, owner_added, owner_removed"
    },
    "industry": {
      "enum": [
        "trades",
        "retail",
        "hospitality",
        "beauty",
        "professional",
        "health",
        "fitness",
        "ecommerce",
        "automotive"
      ],
      "type": "string"
    },
    "locality": {
      "type": "string"
    },
    "postcode": {
      "type": "string",
      "description": "Postcode areas or districts, comma-separated, e.g. M,SK"
    }
  }
}
companies_changes_feed annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tenders — tenders
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

UK public sector tenders open for bids, or contract awards with the winning suppliers (Companies House number, email, phone), from Find a Tender and Contracts Finder. Filter by keyword, CPV code, region and value. Up to 100 notices from the last 30 days, refreshed daily. Costs $0.05 per call, paid in USDC on Base with x402.

tenders input schema
{
  "type": "object",
  "properties": {
    "cpv": {
      "type": "string",
      "description": "Comma-separated CPV code prefixes, e.g. 72 (IT), 90910 (cleaning), 45 (construction)"
    },
    "max": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1
    },
    "days": {
      "type": "integer",
      "maximum": 30,
      "minimum": 1,
      "description": "Published in the last N days (default 30)"
    },
    "mode": {
      "enum": [
        "tenders",
        "awards"
      ],
      "type": "string",
      "description": "tenders = open for bids; awards = contracts awarded, with winners"
    },
    "buyer": {
      "type": "string",
      "description": "Buyer name contains, e.g. NHS or Council"
    },
    "exclude": {
      "type": "string",
      "description": "Comma-separated words or phrases to exclude"
    },
    "regions": {
      "type": "string",
      "description": "Comma-separated: North East, North West, Yorkshire and the Humber, East Midlands, West Midlands, East of England, London, South East, South West, Wales, Scotland, Northern Ireland"
    },
    "keywords": {
      "type": "string",
      "description": "Comma-separated words or phrases; any must appear (whole words)"
    },
    "maxValue": {
      "type": "integer",
      "minimum": 0,
      "description": "Maximum value in GBP"
    },
    "minValue": {
      "type": "integer",
      "minimum": 0,
      "description": "Minimum value in GBP"
    }
  }
}
tenders annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
property_area — property area
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

UK property report for one postcode district in England or Wales: Land Registry sold prices by property type with change on the previous period, EPC energy ratings and police.uk crime. Area-level, no addresses. Costs $0.05 per call, paid in USDC on Base with x402.

property_area input schema
{
  "type": "object",
  "required": [
    "district"
  ],
  "properties": {
    "crime": {
      "type": "boolean",
      "description": "Include crime (default true)"
    },
    "energy": {
      "type": "boolean",
      "description": "Include EPC energy ratings (default true)"
    },
    "months": {
      "type": "integer",
      "maximum": 36,
      "minimum": 3,
      "description": "Period in months, compared with the same period before (default 12)"
    },
    "district": {
      "type": "string",
      "pattern": "^[A-Za-z]{1,2}[0-9][A-Za-z0-9]?( ?[0-9][A-Za-z]{2})?$",
      "description": "Postcode district like M20 or BS9 (a full postcode works too)"
    }
  }
}
property_area annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_transcript — youtube transcript
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

The transcript of one YouTube video, Short or livestream as clean text, with title, channel, language and optional timestamped segments. Videos without captions are refused free. Costs $0.01 per call, paid in USDC on Base with x402.

youtube_transcript input schema
{
  "type": "object",
  "required": [
    "video"
  ],
  "properties": {
    "video": {
      "type": "string",
      "description": "YouTube URL or 11-character video ID"
    },
    "languages": {
      "type": "string",
      "description": "Comma-separated caption languages in order of preference (default en)"
    },
    "timestamps": {
      "type": "boolean",
      "description": "Include every caption line with start time (default false)"
    }
  }
}
youtube_transcript annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
vinted_search — vinted search
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Vinted listings for one keyword in 14 countries (price with buyer fee, brand, size, condition, link), with price statistics and, for UK, France, Germany, Italy and Spain, a resale check against live used eBay prices with estimated profit per flip. Up to 50 listings per call. Costs $0.03 per call, paid in USDC on Base with x402.

vinted_search input schema
{
  "type": "object",
  "required": [
    "keyword"
  ],
  "properties": {
    "max": {
      "type": "integer",
      "maximum": 50,
      "minimum": 1,
      "description": "Listings to return (default 20)"
    },
    "country": {
      "enum": [
        "uk",
        "fr",
        "de",
        "it",
        "es",
        "nl",
        "be",
        "at",
        "ie",
        "pl",
        "pt",
        "lt",
        "cz",
        "se"
      ],
      "type": "string",
      "description": "Vinted country (default uk)"
    },
    "keyword": {
      "type": "string",
      "description": "Product, brand or model, e.g. levi 501"
    },
    "maxPrice": {
      "type": "integer",
      "minimum": 0
    },
    "minPrice": {
      "type": "integer",
      "minimum": 0
    },
    "compareWithEbay": {
      "type": "boolean",
      "description": "Add the eBay resale check (default true)"
    }
  }
}
vinted_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
shopify_store — shopify store
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Any Shopify store's catalogue: a store summary (price range, share on sale, in stock, new in the last 30 days, top product types) plus up to 100 products with price, 'was' price and discount, stock, variants, vendor and date added. Costs $0.02 per call, paid in USDC on Base with x402.

shopify_store input schema
{
  "type": "object",
  "required": [
    "store"
  ],
  "properties": {
    "max": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Products to return (default 50)"
    },
    "store": {
      "type": "string",
      "description": "Store address, e.g. allbirds.com"
    },
    "keyword": {
      "type": "string",
      "description": "Only products matching every word"
    },
    "onlyOnSale": {
      "type": "boolean",
      "description": "Only discounted products (default false)"
    }
  }
}
shopify_store annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
poshmark_search — poshmark search
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Live Poshmark (US fashion resale) listings for a keyword: a market summary (median asking price by condition, discount from retail, top brands and sizes, share listed this week) plus up to 100 listings with price, original price, brand, size, condition and likes. Costs $0.02 per call, paid in USDC on Base with x402.

poshmark_search input schema
{
  "type": "object",
  "required": [
    "keyword"
  ],
  "properties": {
    "max": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Listings to return (default 48)"
    },
    "size": {
      "type": "string",
      "description": "Size, e.g. 4 or M"
    },
    "brand": {
      "type": "string",
      "description": "Brand contains, e.g. lululemon"
    },
    "keyword": {
      "type": "string",
      "description": "What to search for, e.g. lululemon align"
    },
    "priceMax": {
      "type": "number",
      "minimum": 0,
      "description": "Max price in USD"
    },
    "priceMin": {
      "type": "number",
      "minimum": 0,
      "description": "Min price in USD"
    },
    "condition": {
      "enum": [
        "nwt",
        "ret",
        "uln",
        "ug",
        "uf"
      ],
      "type": "string",
      "description": "nwt new with tags, ret boutique, uln like new, ug good, uf fair"
    },
    "department": {
      "enum": [
        "Women",
        "Men",
        "Kids",
        "Home",
        "Pets",
        "Electronics"
      ],
      "type": "string",
      "description": "Only this department"
    }
  }
}
poshmark_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
reverb_search — reverb search
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Live Reverb (music gear marketplace) listings for a keyword: a market summary (median asking price by condition, share taking offers, top makes, cheapest with postage) plus up to 100 listings with price, postage, condition, make, model and year. Costs $0.02 per call, paid in USDC on Base with x402.

reverb_search input schema
{
  "type": "object",
  "required": [
    "keyword"
  ],
  "properties": {
    "max": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Listings to return (default 50)"
    },
    "keyword": {
      "type": "string",
      "description": "What to search for, e.g. fender stratocaster or boss ds-1"
    },
    "shipsTo": {
      "type": "string",
      "description": "Country code, e.g. GB: only listings shipping there, with postage"
    },
    "currency": {
      "enum": [
        "GBP",
        "USD",
        "EUR",
        "CAD",
        "AUD",
        "JPY"
      ],
      "type": "string",
      "description": "Price currency (default GBP)"
    },
    "priceMax": {
      "type": "number",
      "minimum": 0,
      "description": "Max price"
    },
    "priceMin": {
      "type": "number",
      "minimum": 0,
      "description": "Min price"
    },
    "condition": {
      "enum": [
        "any",
        "new",
        "used",
        "b-stock"
      ],
      "type": "string",
      "description": "Condition (default any)"
    }
  }
}
reverb_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
mot_history — mot history
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

UK MOT history for one vehicle from official DVSA data: make, model and age, MOT valid and expiry date, every test result, mileage history with a clocking warning (mileage that went down), last test's advisories and dangerous defects, and repeat failures. No owner data. Costs $0.02 per call, paid in USDC on Base with x402.

mot_history input schema
{
  "type": "object",
  "required": [
    "registration"
  ],
  "properties": {
    "full": {
      "type": "boolean",
      "description": "Include defects and mileage history (default true)"
    },
    "registration": {
      "type": "string",
      "description": "UK number plate, with or without spaces, e.g. AB12 CDE"
    }
  }
}
mot_history annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
companies_changes_feed_sample — companies changes feed sample
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free: up to 3 rows from the daily UK director and owner changes feed, with the same filters as companies_changes_feed. Try before you pay.

companies_changes_feed_sample input schema
{
  "type": "object",
  "properties": {
    "types": {
      "type": "string",
      "description": "Comma-separated: officer_appointed, officer_resigned, owner_added, owner_removed"
    },
    "industry": {
      "enum": [
        "trades",
        "retail",
        "hospitality",
        "beauty",
        "professional",
        "health",
        "fitness",
        "ecommerce",
        "automotive"
      ],
      "type": "string"
    },
    "locality": {
      "type": "string"
    },
    "postcode": {
      "type": "string",
      "description": "Postcode areas or districts, comma-separated, e.g. M,SK"
    }
  }
}
companies_changes_feed_sample annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (3 of 3 answered).

  1. 2026-11-07: 2 of 2 checks answered
  2. 2026-11-09: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
922 ms
95th percentile latency
922 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 922 ms · metadata changed · 15 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http l50-data-tools-mcp https://api.l50automation.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add l50-data-tools-mcp --url https://api.l50automation.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable l50-data-tools-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "l50-data-tools-mcp": {
      "url": "https://api.l50automation.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "l50-data-tools-mcp": {
      "type": "streamableHttp",
      "url": "https://api.l50automation.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start l50-data-tools-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "l50-data-tools-mcp": {
      "type": "http",
      "url": "https://api.l50automation.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http l50-data-tools-mcp https://api.l50automation.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://api.l50automation.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "l50-data-tools-mcp": {
      "serverUrl": "https://api.l50automation.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like L50 Data Tools MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.