supplemental.pl — EU/PL food law
EU/PL food law for supplement firms: health claims, novel food, GIS, C.L.A.I.M.S. Not legal advice.
作者による説明(英語の原文)
Find air-quality stations and read pollutant observations from government monitors via OpenAQ v3.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
OPENAQ_API_KEY, OPENAQ_API_BASE_URL, CANVAS_PROVIDER_TYPE, OPENAQ_ENABLE_CANVAS_DROP, MCP_LOG_LEVEL「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
ウェブ、デスクトップ、モバイルのClaudeで使えます:
https://openaq.caseyjhand.com/mcpClaude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"openaq": {
"command": "npx",
"args": [
"-y",
"@cyanheads/openaq-mcp-server",
"run",
"start:stdio"
],
"env": {
"OPENAQ_API_KEY": "your-value",
"OPENAQ_API_BASE_URL": "your-value",
"CANVAS_PROVIDER_TYPE": "your-value",
"OPENAQ_ENABLE_CANVAS_DROP": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add --transport http openaq https://openaq.caseyjhand.com/mcpclaude mcp add openaq --env OPENAQ_API_KEY=your-value --env OPENAQ_API_BASE_URL=your-value --env CANVAS_PROVIDER_TYPE=your-value --env OPENAQ_ENABLE_CANVAS_DROP=your-value --env MCP_LOG_LEVEL=your-value -- npx -y @cyanheads/openaq-mcp-server run start:stdio動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"openaq": {
"url": "https://openaq.caseyjhand.com/mcp"
}
}
}プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"openaq": {
"command": "npx",
"args": [
"-y",
"@cyanheads/openaq-mcp-server",
"run",
"start:stdio"
],
"env": {
"OPENAQ_API_KEY": "your-value",
"OPENAQ_API_BASE_URL": "your-value",
"CANVAS_PROVIDER_TYPE": "your-value",
"OPENAQ_ENABLE_CANVAS_DROP": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"openaq": {
"type": "http",
"url": "https://openaq.caseyjhand.com/mcp"
}
}
}プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"openaq": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/openaq-mcp-server",
"run",
"start:stdio"
],
"env": {
"OPENAQ_API_KEY": "your-value",
"OPENAQ_API_BASE_URL": "your-value",
"CANVAS_PROVIDER_TYPE": "your-value",
"OPENAQ_ENABLE_CANVAS_DROP": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ChatGPTがつなげるのは、インターネット上のサーバーだけです:
https://openaq.caseyjhand.com/mcpメニューの名前は、プランや時期によって少し違うことがあります。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
OPENAQ_API_BASE_URL envCANVAS_PROVIDER_TYPE envOPENAQ_ENABLE_CANVAS_DROP envMCP_LOG_LEVEL envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
前回チェックしたときにサーバーが応答しなかったため、ツールを読み取れませんでした。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月9日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント cyanheads で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
チェックしたとき、6秒以内に応答がありませんでした
チェックしたとき、6秒以内に応答がありませんでした
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック2項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:OPENAQ_API_KEY
どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。
GitHubリポジトリの最終更新は–、最新バージョン(0.4.1)がレジストリに届いたのは44 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:supplemental.pl — EU/PL food law, Sanctions Screening, Empresas BR (CNPJ due diligence)
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
EU/PL food law for supplement firms: health claims, novel food, GIS, C.L.A.I.M.S. Not legal advice.
Screen company names against OFAC, UN, EU and UK sanctions and US export control lists.
Brazilian company checks by CNPJ: registry, sanctions, federal contracts and CVM, with sources.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
@cyanheads/openaq-mcp-server Find air-quality monitoring stations, read latest sensor values, and pull historical pollutant series via MCP. STDIO or Streamable HTTP. 8 Tools (7 enabled by default) • 2 Resources
Public Hosted Server: https://openaq.caseyjhand.com/mcp
Measured air quality from the OpenAQ v3 API: physical-sensor observations from government reference monitors and research-grade sensors worldwide. Find monitoring stations, read current values, and pull historical pollutant series from any MCP client. Runs as a stdio process, a local Streamable HTTP server, or the public hosted endpoint above.
| Tool | Description |
|---|---|
openaq_find_locations | Find monitoring stations near a point, in a bounding box, or by country; the location ids the other tools take |
openaq_get_readings | Latest value for every sensor at a station, labeled with its pollutant and unit |
openaq_get_measurements | Historical series for one pollutant at one station, raw or rolled up hourly/daily |
openaq_list_parameters | Pollutant catalog with canonical units; maps a pollutant and unit to its parameter id |
openaq_list_countries | Country coverage: data span and the parameters measured in each |
openaq_dataframe_describe | List the tables and columns staged on a DataCanvas |
openaq_dataframe_query | Run a read-only SQL SELECT over staged measurement series |
openaq_dataframe_drop | Delete a complete staged canvas; opt-in with OPENAQ_ENABLE_CANVAS_DROP=true |
| Resource | Description |
|---|---|
openaq://location/{locationId} | Metadata for one station: coordinates, provider, sensors with units, data span |
openaq://parameters | Full pollutant and unit catalog |
Both resources mirror tool output, so tool-only clients lose nothing.
openaq_find_locations toolcoordinates with radius (metres, 1–25000, default 12000), bbox, and/or iso (a code from openaq_list_countries); at least one is required, and coordinates and bbox exclude each other. parametersId, monitor, mobile, and providersId narrow further; up to 100 stations per page (limit, default 20), 1-based pageid, distanceMeters (coordinate search only), provider/providerId, isMonitor/isMobile, its parameters with units, and the datetimeFirst/datetimeLast span; coordinates, country, and provider are null when OpenAQ lists nonetotalCount counts stations through the current page and is a floor when totalCountIsLowerBound is set; no match fails as no_locations_found, a page past the end as page_exhaustedopenaq_get_readings toollocationId, or coordinates plus parametersId to resolve the nearest station within 25 km that measures it (compared across up to 1,000 matching stations; a full 1,000 adds a notice); with locationId, parametersId optionally filters to one parametervalue, unit, sensorId, and datetimeUtc/datetimeLocal, plus the station's provider, providerId, timezone, and datetimeLastlocation_not_found, parameter_not_at_location (with the station's available ids), no_station_near_coordinates, no_recent_valuesopenaq_get_measurements toollocationId and parametersId; datetimeFrom/datetimeTo accept UTC timestamps or station-local YYYY-MM-DD dates (UTC days when the station has no timezone). aggregation is raw (default), hourly, or daily; up to 5,000 rows per callseries, sensorId, pulledCount, pullComplete, effectiveRange, and station provider, providerId, and timezone. totalCount is a floor when totalCountIsLowerBound is set; rollups add summary statistics, gapCount, the first 20 missing intervals as gaps, and a notice when edge buckets are clippedseries is a preview (truncated) and the pulled rows stage on a DataCanvas as measurements_ (canvasId, tableName) when CANVAS_PROVIDER_TYPE=duckdb; a supplied canvas_id stages onto that canvas at any size. One table per sensor: a second sensor adds a table to join against, and re-staging the same sensor overwrites its earlier seriesopenaq_list_parameters toolquery over code, display name, and description; pollutantsOnly drops meteorological and particle-count channelsid, name, displayName, unit, and description; one pollutant can appear under several ids by unit (CO is 4 in µg/m³, 8 in ppm, 102 in ppb)openaq_list_countries toolquery (a two-letter value matches an ISO 3166-1 alpha-2 code first; otherwise code or name substrings match) and parametersId; up to 100 per page (limit, default 20), 1-based pagecode (the iso value for openaq_find_locations), name, the datetimeFirst/datetimeLast span, and the parameters measured anywhere in the country; totalCount is the full filtered countopenaq_dataframe_describe toolcanvas_id from openaq_get_measurements and returns each staged table's name, rowCount, and columns. Call it before openaq_dataframe_query: the staged table is flat (min, sd) while the inline series nests those under summarycanvas_unavailable unless CANVAS_PROVIDER_TYPE=duckdb, or canvas_not_found for an unknown or expired idopenaq_dataframe_query toolcanvas_id and one read-only SELECT; writes, DDL, and file/network table functions are rejectedtruncated set when the cap cut the result; page with ORDER BY plus LIMIT/OFFSETcanvas_unavailable, canvas_not_found, or missing_tableopenaq_dataframe_drop toolOPENAQ_ENABLE_CANVAS_DROP=true; calls fail as canvas_unavailable unless CANVAS_PROVIDER_TYPE=duckdb. When disabled, the HTTP landing page shows the enable hint and tools/list omits the toolcanvas_id and deletes that whole canvas, including all staged tables. Other agents sharing the id lose access; OpenAQ's source data is unaffectedcanvasId and dropped: true when deleted, false when no reachable canvas exists. With authentication off, callers share a tenant: anyone holding an id can delete its canvas when enabledopenaq://location/{locationId} resourceapplication/json: name, locality, timezone, country, provider, isMonitor/isMobile, coordinates, sensors (each with parameterId and unit), and the datetimeFirst/datetimeLast spanlocationId comes from openaq_find_locations; cached 5 minutesopenaq://parameters resourceapplication/json catalog, the same rows as an unfiltered openaq_list_parametersBuilt on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.
OpenAQ-specific:
X-API-Key auth, retry with backoff, and typed upstream failures (invalid_api_key, rate_limited, upstream_timeout, upstream_error) on every OpenAQ callcanvas_id can be joinedAgent-friendly output:
no_locations_found or no_station_near_coordinates, stated as no coverage rather than clean airparametersId selects pollutant and unit togetherdatetimeLast, and totalCount / truncated / notice on capped resultsA public instance is available at https://openaq.caseyjhand.com/mcp — no installation required. Point any MCP client at it via Streamable HTTP:
{
"mcpServers": { "openaq-mcp-server": { "type": "streamable-http", "url": "https://openaq.caseyjhand.com/mcp" } } }
Add the following to your MCP client configuration file.
{
"mcpServers": { "openaq-mcp-server": { "type": "stdio", "command": "bunx", "args": ["@cyanheads/openaq-mcp-server@latest"], "env": { "MCP_TRANSPORT_TYPE": "stdio", "OPENAQ_API_KEY": "your-api-key" } } } }
Or with npx (no Bun required):
{
"mcpServers": { "openaq-mcp-server": { "type": "stdio", "command": "npx", "args": ["-y", "@cyanheads/openaq-mcp-server@latest"], "env": { "MCP_TRANSPORT_TYPE": "stdio", "OPENAQ_API_KEY": "your-api-key" } } } }
Or with Docker:
{
"mcpServers": { "openaq-mcp-server": { "type": "stdio", "command": "docker", "args": [ "run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "-e", "OPENAQ_API_KEY=your-api-key", "ghcr.io/cyanheads/openaq-mcp-server:latest" ] } } }
Add `"CANVAS_PROVIDER_TYPE": "du
冒頭だけを表示しています。続きはリポジトリで読めます