uk-business-intelligence-mcp
Automatically identifies and retrieves Facebook social media profile links for UK businesses via automated homepage scraping.
Retrieves business ratings and review counts from Google services to provide a comprehensive public reputation profile.
Integrates with the Google Cloud Places API (New) to enrich company profiles with geographic and reputation metadata.
Enriches UK business records with Google Places data, providing ratings, review counts, contact numbers, and direct Google Maps URLs.
Automatically identifies and retrieves Instagram social media profile links for UK businesses via automated homepage scraping.
UK Business Intelligence API & MCP Server
ukbusinessintel.com — Get your free API key
Know everything about any UK business in one API call. Company records, Google reviews, website health, and social profiles — unified into a single JSON response.
Also available as an MCP server for Claude Desktop and Cursor.
Why this over existing Companies House MCP servers?
There are 3 Companies House MCP servers on GitHub — all are thin wrappers around the CH API alone. This is different:
4 data sources in one call — Companies House + Google Places + DNS/SSL + social media
Intelligent matching — automatically links company records to their Google Places listing
Built-in caching — 7-day cache on company data, 24hr on everything else
Production-ready — rate limiting, usage tracking, graceful degradation when sources fail
Quick Start
Option 1: MCP Server (for Claude Desktop / Cursor)
Add this to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"uk-business-intel": {
"command": "npx",
"args": ["-y", "uk-business-intelligence-mcp"],
"env": {
"SUPABASE_URL": "https://your-project.supabase.co",
"SUPABASE_SERVICE_ROLE_KEY": "your-key",
"COMPANIES_HOUSE_API_KEY": "your-key",
"GOOGLE_PLACES_API_KEY": "your-key",
"API_KEY_SALT": "your-random-32-char-string"
}
}
}
}Then ask Claude: "Look up Greggs in Newcastle" — it returns the full enriched profile.
Option 2: REST API
# 1. Create an API key
curl -X POST https://your-domain.com/api/v1/keys \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com"}'
# 2. Enrich a business
curl -X POST https://your-domain.com/api/v1/enrich \
-H "Content-Type: application/json" \
-H "x-api-key: ukb_your_key_here" \
-d '{"business_name": "Greggs", "location": "Newcastle"}'Related MCP server: Explorium AgentSource MCP Server
Data Sources
Source | Data Returned | Cache TTL |
Companies House API | Company number, status, directors, SIC codes, registered address | 7 days |
Google Places API (New) | Rating, review count, phone, website, Google Maps link | 24 hours |
DNS/HTTP Check | Website live status, SSL certificate, HTTP status | 24 hours |
Homepage Scraper | Facebook, Instagram, LinkedIn, Twitter links | 24 hours |
MCP Server
The MCP server exposes a single tool: enrich_uk_business.
Tool parameters:
Parameter | Required | Description |
| Yes | Business name to look up |
| Yes | City, town, or area in the UK |
| No | 8-digit Companies House number |
| No | Business website domain |
How it works: The MCP server calls the enrichment orchestrator directly (no HTTP round-trip). It runs locally on your machine via stdio transport.
Supported clients: Claude Desktop, Cursor, any MCP-compatible client.
API Reference
POST /api/v1/keys
Create an API key. No authentication required. Max 3 active keys per email.
Request:
{
"email": "developer@example.com",
"plan": "free"
}Response (201):
{
"success": true,
"data": {
"api_key": "ukb_a3f8b2c1d4e5f6a7b8c9d0e1f2a3b4c5",
"key_prefix": "ukb_a3f8b2c1...",
"plan": "free",
"message": "Store this API key securely. It will not be shown again."
}
}POST /api/v1/enrich
Enrich a UK business. Requires x-api-key header.
Request:
{
"business_name": "Greggs",
"location": "Newcastle",
"company_number": "00502851",
"domain": "greggs.co.uk"
}Only business_name and location are required. company_number and domain are optional — if omitted, they'll be discovered automatically.
Response (200):
{
"success": true,
"data": {
"query": {
"business_name": "Greggs",
"location": "Newcastle",
"company_number": null,
"domain": null
},
"companies_house": {
"company_number": "00502851",
"company_name": "GREGGS PLC",
"company_status": "active",
"incorporation_date": "1951-09-22",
"company_type": "plc",
"sic_codes": ["10710", "47240"],
"registered_address": {
"address_line_1": "Greggs House",
"address_line_2": "Quorum Business Park",
"locality": "Newcastle Upon Tyne",
"region": "Tyne and Wear",
"postal_code": "NE12 8BU",
"country": "England"
},
"directors": [
{
"name": "SHERWOOD, Roisin",
"role": "director",
"appointed_on": "2019-05-01",
"resigned_on": null
}
]
},
"google_places": {
"place_id": "ChIJx9k5WQ1yfkgRnx-XPkd9DGw",
"display_name": "Greggs",
"formatted_address": "Northumberland St, Newcastle upon Tyne NE1 7DE",
"rating": 4.1,
"review_count": 1847,
"phone": "0191 232 7749",
"website": "https://www.greggs.co.uk",
"google_maps_url": "https://maps.google.com/?cid=7771234567890"
},
"website": {
"domain": "greggs.co.uk",
"is_live": true,
"http_status": 200,
"ssl_valid": true,
"ssl_expiry": "2027-01-15T00:00:00Z"
},
"social": {
"facebook": "https://facebook.com/GreggsFans",
"instagram": null,
"linkedin": "https://linkedin.com/company/greggs",
"twitter": "https://twitter.com/GreggsOfficial"
},
"meta": {
"sources_successful": ["companies_house", "google_places", "dns", "scrape"],
"sources_failed": [],
"sources_skipped": [],
"cached_sources": [],
"enriched_at": "2026-03-21T14:30:00.000Z",
"duration_ms": 1247
}
}
}GET /api/v1/usage
Check your current month's usage. Requires x-api-key header.
Response (200):
{
"success": true,
"data": {
"plan": "free",
"month": "2026-03",
"lookups_used": 47,
"lookups_limit": 100,
"lookups_remaining": 53,
"overage_count": 0,
"rate_limit_per_minute": 10
}
}DELETE /api/v1/keys
Revoke your API key. Requires x-api-key header (the key being revoked).
GET /api/v1/health
Service health check. No authentication required.
Error Responses
Status | Meaning |
400 | Invalid request body |
401 | Missing or invalid API key |
403 | Monthly quota exceeded |
429 | Rate limit exceeded (retry after 60s) |
500 | Internal server error |
All errors return:
{ "success": false, "error": "Description of the error" }Pricing
Plan | Lookups/Month | Rate Limit | Price |
Free | 100 | 10/min | Free |
Starter | 1,000 | 60/min | £29/mo |
Growth | 5,000 | 120/min | £79/mo |
Scale | 20,000 | 120/min | £199/mo |
Paid plans allow overage at £0.03 per additional lookup. Free tier hard-stops at 100.
Self-Hosting Setup
Prerequisites
Node.js 18+
Supabase project (free tier works)
Companies House API key (free — register at developer.company-information.service.gov.uk)
Google Cloud project with Places API (New) enabled
Installation
git clone https://github.com/Fluke-Studio/uk-business-intelligence-mcp.git
cd uk-business-intelligence-mcp
npm install
cp .env.example .env.local
# Fill in your API keys in .env.localDatabase Setup
Go to your Supabase dashboard > SQL Editor
Paste the contents of
supabase/migrations/001_initial_schema.sqlClick "Run"
This creates all tables, indexes, RPC functions, and cleanup jobs.
Environment Variables
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
SUPABASE_ANON_KEY=your-anon-key
COMPANIES_HOUSE_API_KEY=your-ch-api-key
GOOGLE_PLACES_API_KEY=your-google-api-key
API_KEY_SALT=random-32-character-stringLocal Development
npm run dev # Start Next.js dev server (http://localhost:3000)
npm run build # Production build (Next.js)
npm run build:mcp # Build MCP server to dist/
npm start # Production serverDeploy to Vercel
Push repo to GitHub
Import in Vercel — it auto-detects Next.js
Add environment variables in Vercel dashboard (Settings > Environment Variables)
Deploy — Vercel handles the rest
Publish MCP Server to npm
# Update package.json with your GitHub username in repository/bugs/homepage URLs
npm run build:mcp # Builds to dist/
npm publish # Publishes to npm (prepublishOnly auto-runs build:mcp)After publishing, anyone can use your MCP server with:
npx uk-business-intelligence-mcpArchitecture
POST /api/v1/enrich
→ Validate body (Zod)
→ Authenticate (x-api-key → SHA-256 hash → DB lookup)
→ Rate limit (fixed-window, DB-backed)
→ Quota check (monthly counter)
→ Enrichment orchestrator
Round 1 (parallel): Companies House + Google Places
Round 2 (parallel, if domain found): DNS/SSL Check + Social Scraper
→ Return merged JSON profile
MCP Server (stdio)
→ Receives enrich_uk_business tool call
→ Calls enrichment orchestrator directly (no HTTP)
→ Returns JSON profile to MCP clientPartial results: If one source fails, the rest still return data
Smart caching: Supabase-backed with per-source TTLs
Rate limiting: Atomic Postgres RPC functions (no Redis needed)
Security: API keys SHA-256 hashed with salt, never stored raw
Tech Stack
Next.js 14 (App Router, API routes)
TypeScript (strict mode)
Supabase (Postgres, auth, caching)
MCP SDK (Model Context Protocol server)
Vercel (serverless deployment, London region)
Zod (request validation)
Tailwind CSS (landing page)
License
MIT — see LICENSE.
Available Tools
1 toolenrich_uk_businessEnrich UK BusinessA
Get a comprehensive profile of any UK business. Returns Companies House data (company status, directors, SIC codes), Google Places ratings and reviews, website/SSL status, and social media links — all from a single lookup. Provide a business name and location (city or town). Optionally include a Companies House number or website domain for more precise results.
| Name | Required | Description | Default |
|---|---|---|---|
| business_name | Yes | The business name to look up (e.g. "Greggs", "Nando's") | |
| location | Yes | City, town, or area in the UK (e.g. "Manchester", "Bristol") | |
| company_number | No | Companies House number — 8 digits or 2 letters + 6 digits. Optional. | |
| domain | No | Business website domain without protocol (e.g. "greggs.co.uk"). Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what data is returned and the lookup mechanism, but does not disclose behavioral traits such as rate limits, authentication needs, error handling, or whether it's a read-only or mutative operation. The description adds some context (e.g., 'from a single lookup') but misses key operational details that would help an agent use it correctly.
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 appropriately sized and front-loaded, starting with the core purpose and then detailing the returned data and parameters. Every sentence earns its place by adding necessary information without redundancy, making it efficient and easy to parse for an AI agent.
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 complexity (a tool that aggregates multiple data sources), lack of annotations, and no output schema, the description is incomplete. It covers the purpose and parameters well but does not describe the return format, error conditions, or other behavioral aspects needed for full contextual understanding. This leaves gaps that could hinder correct tool invocation by an agent.
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 schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds value by explaining the optional parameters ('Optionally include a Companies House number or website domain for more precise results') and providing high-level context for their use, but does not add significant semantic details beyond what the schema provides. With high coverage, the baseline is 3, and the description slightly enhances this with usage hints.
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's purpose with a specific verb ('Get') and resource ('comprehensive profile of any UK business'), detailing what data is returned (Companies House data, Google Places ratings, website/SSL status, social media links) and how it's obtained ('from a single lookup'). It distinguishes itself by aggregating multiple data sources into one operation, which is explicit even without sibling tools.
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 when to use this tool by stating it's for getting a comprehensive business profile from multiple sources, but it does not provide explicit guidance on when to use it versus alternatives (e.g., other lookup tools) or any exclusions. Since no sibling tools are listed, the lack of comparative guidance is less critical, but it still lacks explicit usage context beyond the basic purpose.
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. Dates show when Glama detected each change.
1 tool update
v0.1.0- First observed
enrich_uk_business
TDQS
With only one tool, there is no possibility of ambiguity or overlap between tools. The tool has a single, clearly defined purpose: enriching UK business data from multiple sources.
The single tool follows a clear verb_noun pattern (enrich_uk_business), and with only one tool, consistency is inherently perfect as there are no other tools to compare against.
One tool is too few for a server labeled 'uk-business-intelligence-mcp', which suggests a broader domain of business intelligence operations. The tool provides comprehensive data but lacks related operations like searching, filtering, or updating business profiles.
The server is severely incomplete for business intelligence; it only offers a single lookup tool without supporting operations such as search, analytics, trend analysis, or data management, leaving significant gaps in the expected functionality.
Related MCP Connectors
Companies House MCP — UK statutory company registry (BYO key)
Company intelligence via UK Companies House and risk screening across 386 risk data sources.
Remote MCP server to enrich company profiles with structured B2B data and confidence scores.
CompanyLens is a remote MCP server giving AI agents instant access to official company registry data across 19 jurisdictions in Europe, the Americas, and Asia-Pacific. Eighteen read-only tools let you search companies and people, look up officers and beneficial owners, map corporate networks through shared directors, screen names against the UK disqualified directors register, find every company at a registered address, and pull filing history — all from a single connector. Visit our website: https://companylens.io
Related MCP Servers
- AlicenseAqualityBmaintenanceA production-ready Model Context Protocol server that enables language models to leverage AI-powered web scraping capabilities, offering tools for transforming webpages to markdown, extracting structured data, and executing AI-powered web searches.899MIT
- AlicenseAqualityDmaintenanceExplorium AgentSource MCP Server empowers every agent to become an AI-driven, Go-To-Market specialized agent! With over 20 specialized endpoints designed for prospecting, sales, and lead generation, agents can effortlessly generate and enrich accounts and prospects, access deep business insights, an2321MIT

Bright Data MCPofficial
AlicenseAqualityAmaintenanceOfficial Bright Data server for the Model Context Protocol that enables AI assistants like Claude Desktop to reference and make decisions based on real-time public web data.58,7542,618MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Fluke-Studio/uk-business-intelligence-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server