Skip to content

BenjaminFourmaux/downdetector-mcp

Repository files navigation

downdetector-mcp

Static Badge

HTTP based MCP server to get online services status via Downdector.

Providing data on the status of online services for agentic AI applications.

Tools πŸ› 

List of tools available in this MCP server

Important

Due to the recent change of Downdetector website, it is becoming increasingly defficult to recover data. Some data may be missing.

SearchServiceName

Used to retrieve the correct service name same as named in Downdetector (also name TechnicalServiceName in the MCP).

Tip

This must be called in first, for the AI get the correct name for use the GetServiceStatus tool and avoid error when retrieve data with wrong service name.

Input parameters

param description
serviceName Service name to search
country Alpha-2 country code for a search in the right country instanceof Downdetector website

Output example

Tool calling with params :

  • serviceName : google
  • country : us
SearchWord: google
Results[4]{ServiceName,TechnicalName,Url,Category}:
  Google,google,https://downdetector.com/status/google
  Google Cloud,google-cloud,https://downdetector.com/status/google-cloud,search portals
  Google Gemini,googlegemini,https://downdetector.com/status/googlegemini,ai platforms
  Google Nest,google-nest,https://downdetector.com/status/google-nest,home automation security

GetServiceStatus

Get data about the status of the online service. Like the most reported issues, the last number of report and the baseline.

Input parameters

param description
technicalServiceName Technical service name to getting data
country Alpha-2 country code for a search in the right country instanceof Downdetector website
includeHistoricalReportData Boolean to retrieve chart points historic of the last 24 hours. By default false

Output example

Tool calling with params :

  • technicalServiceName : googlegemini
  • country : us
ServiceName: Google Gemini
Status: WARNING
MostReportedIssues[3]{Issue,Percentage}:
  AI Generation,57
  Website,24
  App,20
ReportData[96]{Time,Report,Baseline}:
  14:05 07/02/2026,8,2
  15:05 07/02/2026,4,2
  16:05 07/02/2026,3,1
  ...
LastReportData:
  Time: 14:05 08/02/2026
  Report: 25
  Baseline: 5

Using πŸš€

Docker (recommended)

From Docker Hub

docker run -d -p 8080:8080 --name downdetector-mcp benjaminfourmauxb/downdetector-mcp:latest

Build from source

docker build -t downdetector-mcp .

Run the container

docker run -d -p 8080:8080 --name downdetector-mcp downdetector-mcp

The server will be available on http://localhost:8080.

From source code

Prerequisites

Build

dotnet build

Install Playwright Chromium

After building, install the Chromium browser used by Playwright :

pwsh DowdetectorMCP.Server/bin/Debug/net10.0/playwright.ps1 install chromium

Note

This command also installs the required OS-level dependencies for Chromium. You only need to run it once (or after a Playwright version update).

Run

dotnet run --project DowdetectorMCP.Server

The server starts on http://localhost:5057 by default.

Test in Visual Studio Copilot

On "Configure tools" page of GitHub Copilot, add a MCP server.

In the file mcp.json that configure custom MCP's in your VS Code env, enter the following settings:

{
	"servers": {
		"downdetector-mcp": {
			"url": "http://localhost:5057/mcp",
			"type": "http",
			"trusted": true
		}
	},
	"inputs": []
}

Et voilΓ  you can use this MCP server directly on your Copilot.

How it works πŸ—

This app is build in C# .Net 10 and use the SDK ModelContextProtocol to implement the MCP protocol.

The Project DowndetectorMCP.API.csproj is used to query data from Downdetector websites.

The only easier way to get data from Downdetector is to simulate a web browser.
For that, DowndetectorMCP.API use Playwright a End-to-End testing framework diverted to browse DOM page via a Chronium Headless browser.

Downdetector use Cloudflare to protect their websites against robot or DDoS attack. Request multi times the website can cause rate limit error or blocked with the famous page "βœ… Are you a Human".

To reduce the number of request sent to Donwdetector, a cache system is set for tool SearchServiceName. This cache save the couple <serviceName, country> => result.
The lifetime of a cache record is 24 Hours.

Is not viable to save all technicalServiceName, because there is not a finite number of services ("Tomorrow a new AI company can spawn..."). That's why there are a dedicated tool for search service.

All tools ouput use the Token Oriented Object Notation (Toon) format to represent data. This CSV-like format can reduce the number of input token (and inference input time) by remove redundant field names (like JSON).

Error messages are very verbose and human like error explication for indicate the the agent what somthing wrong append (Cloudflare rate limit reach, service not found...).

Contributing πŸ‘¨β€πŸ‘¨β€πŸ‘§

Contributions are appreciate !
Don't hesitate if you want to add a new feature.

Please also let me know if you use my MCP and in which project. I'd appreciate it.

About

A HTTP based MCP server to get service status via Downdetector

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors